Skip to main content

Project code lines counter program

Project description

Конечно! Твой проект написан очень аккуратно, имеет строгую структуру, логирование, CLI-интерфейс на Typer и автоматический инкремент сборок.

Ниже представлен современный, стильный и структурированный файл README.md, адаптированный под твою кодовую базу.


# 🔍 LineInspector

[![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-Private-red.svg)](#)
[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

**LineInspector** — утилита командной строки (CLI) для быстрого анализа и подсчета строк кода, комментариев и пустых строк в текстовых файлах вашего проекта. 

Программа автоматически ведет учет внутренних сборок, поддерживает гибкую фильтрацию через блек-листы и умеет сохранять детализированные логи результатов.

---

## ✨ Особенности

* 🚀 **CLI на базе Typer:** Полноценный консольный интерфейс с интуитивными флагами и автодокументацией.
* 📊 **Прогресс-бар:** Визуализация процесса сканирования большого количества файлов в реальном времени с помощью `rich`.
* 🛡️ **Безопасный пропуск ошибок:** Файлы с неподдерживаемой кодировкой автоматически игнорируются, не прерывая общую работу утилиты.
* 🏷️ **Автоматический инкремент сборок:** В режиме разработки (`DEVELOPMENT_BUILD = True`) утилита автоматически увеличивает номер релиза в JSON-счетчике.
* 📦 **Поддержка PyInstaller:** Полная совместимость путей при сборке приложения в единый исполняемый `.exe` файл (используется `sys._MEIPASS`).

---

## 🛠️ Архитектура кодовой базы

Программа спроектирована по модульному принципу:

└── core/ ├── util/ │ ├── pyinstaller_path.py # Разрешение путей для скомпилированного .exe │ └── run_counter.py # Логика работы со счетчиком версий (counter.json) ├── log.py # Инициализация Stream и File логгеров └── meta.py # Single Source of Truth для метаданных проекта └── main.py # Точка входа, парсинг CLI и логика подсчета строк


---

## 🚀 Установка и запуск

### Из исходного кода

1. Клонируйте репозиторий:
   ```bash
   git clone [https://gogs.bormart.ru/akato-the-dragon/LineInspector.git](https://gogs.bormart.ru/akato-the-dragon/LineInspector.git)
   cd LineInspector

  1. Установите необходимые зависимости (typer, rich):
pip install -r requirements.txt
  1. Запустите программу:
python main.py --help

📖 Использование

Основные аргументы командной строки

Флаг Альтернатива Тип Описание Default
--path -p PATH Один или несколько путей (файлы/папки) для анализа . (текущая папка)
--blacklist -b TEXT Имена файлов или директорий, которые нужно пропустить None
--output -o PATH Путь к файлу для сохранения отчета (логов) None
--recursive -r FLAG Рекурсивный поиск файлов внутри директорий False
--version -v FLAG Показать автора, версию приложения и выйти False

Примеры использования

  • Базовый анализ текущей директории (без вложенных папок):
python main.py
  • Рекурсивный анализ проекта с игнорированием виртуального окружения и кэша:
python main.py -p . --recursive -b .git -b .venv -b __pycache__ -b node_modules
  • Анализ конкретных файлов и папок с записью результатов в лог-файл:
python main.py -p core/ -p main.py -r -o reports/report.txt
  • Проверка текущей версии программы:
python main.py --version

📊 Пример вывода результатов

После сканирования утилита выведет в терминал детализированную сводку:

Inspecting lines  [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 100%
[2026-06-07 16:56:00][INFO] - =============================================
[2026-06-07 16:56:00][INFO] - LINE INSPECTOR RESULTS
[2026-06-07 16:56:00][INFO] - =============================================
[2026-06-07 16:56:00][INFO] - Content lines (code):  142
[2026-06-07 16:56:00][INFO] - Commented lines:       24
[2026-06-07 16:56:00][INFO] - Empty lines:           32
[2026-06-07 16:56:00][INFO] - ---------------------------------------------
[2026-06-07 16:56:00][INFO] - Total Lines:           198
[2026-06-07 16:56:00][INFO] - Total Files Processed: 5
[2026-06-07 16:56:00][INFO] - =============================================

📝 Спецификация логики подсчета

  • Пустая строка: Строка, которая после удаления пробельных символов (.strip()) имеет нулевую длину.
  • Строка комментария: Строка, которая после удаления пробелов начинается строго с символа #.
  • Строка кода: Любая другая непустая строка, не являющаяся однострочным комментарием.

👤 Разработчик


© 2026 AkatoDevStudio. Все права защищены. Лицензия: Private.

---

### 💡 Пару советов по оформлению твоего репозитория:
1. Замени блок `[![Code Style](...)]`, если ты форматируешь код не через **Black** (например, через Ruff или autopep8).
2. Таблица аргументов полностью синхронизирована с твоими декораторами `typer.Option()` из файла `main.py`. Если добавишь новые фичи — просто допиши новые строки в Markdown-таблицу.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

line_inspector-1.0.3.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

line_inspector-1.0.3-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file line_inspector-1.0.3.tar.gz.

File metadata

  • Download URL: line_inspector-1.0.3.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for line_inspector-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b6fb76febcb29dc5b75d06c13a9443d32e758b30f7abacfd754c8d0ff25a7ea4
MD5 8facac64d1891fd7313a4dfe497f37c5
BLAKE2b-256 3b2dccea91749cad6ed6fe153d0e3974cd3125a434000076fd9d95cc9d9c3a9a

See more details on using hashes here.

File details

Details for the file line_inspector-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: line_inspector-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for line_inspector-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3df25426d767e90924e06ec8148923075f7cf4261a859e440380e26368b15d8e
MD5 7401d817c4a7155a683d2991d79525db
BLAKE2b-256 56ad8b4c14a0afb6279058137ab6098534817f2dd38015e274fe89828cefa951

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page