Metadata-Version: 2.4
Name: line_inspector
Version: 1.0.3
Summary: Project code lines counter program
Author-email: akato-the-dragon <e-stepanov-ig@yandex.ru>
License: MIT License
        
        Copyright (c) 2026 akato-the-dragon
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN self._connection WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: rich>=13.0.0
Requires-Dist: typer>=0.9.0
Description-Content-Type: text/markdown

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

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

---

```markdown
# 🔍 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

```

2. Установите необходимые зависимости (`typer`, `rich`):
```bash
pip install -r requirements.txt

```


3. Запустите программу:
```bash
python main.py --help

```



---

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

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

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

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

* **Базовый анализ текущей директории (без вложенных папок):**
```bash
python main.py

```


* **Рекурсивный анализ проекта с игнорированием виртуального окружения и кэша:**
```bash
python main.py -p . --recursive -b .git -b .venv -b __pycache__ -b node_modules

```


* **Анализ конкретных файлов и папок с записью результатов в лог-файл:**
```bash
python main.py -p core/ -p main.py -r -o reports/report.txt

```


* **Проверка текущей версии программы:**
```bash
python main.py --version

```



---

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

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

```text
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()`) имеет нулевую длину.
* **Строка комментария:** Строка, которая после удаления пробелов начинается строго с символа `#`.
* **Строка кода:** Любая другая непустая строка, не являющаяся однострочным комментарием.

---

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

* **Автор:** [akato-the-dragon](https://www.google.com/search?q=https://gogs.bormart.ru/akato-the-dragon)
* **Студия:** AkatoDevStudio
* **Email:** e-stepanov-ig@yandex.ru

---

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

```
---

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

```