# 🧹 Project Cleaner

Скрипт для очистки проекта от временных файлов, папок виртуальных окружений и прочего мусора.

## Установка

```bash
# Установка из PyPI
pip install project-cleaner

# Установка из репозитория (для разработки)
pip install -e .
```

## Что удаляет

- Виртуальные окружения: `venv`, `env`, `.env`, `.venv`
- Кэши Python: `__pycache__`, `.pytest_cache`, `.mypy_cache`, `.ruff_cache`
- Временные файлы: `.pyc`, `.pyo`, `.log`, `.tmp`, `.temp`, `.swp`, `.swo`
- Сборки и дистрибутивы: `build`, `dist`, `.egg-info`, `.eggs`
- Скрытые системные файлы: `.DS_Store`, `Thumbs.db`
- Зависимости Node.js: `node_modules`
- Скомпилированные файлы: `.o`, `.a`, `.so`, `.dll`

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

```bash
# Базовое использование (очистка текущей директории)
project-cleaner

# Тестовый режим (показывает что будет удалено, но реально ничего не удаляет)
project-cleaner --dry-run

# Подробный вывод (показывает каждый удаляемый файл)
project-cleaner -v

# Указание конкретной директории для очистки
project-cleaner /путь/к/вашему/проекту

# Игнорирование определенных паттернов
project-cleaner --ignore "venv$" "node_modules$"

# Вывод отчета в JSON формате (для CI/CD и DevOps задач)
project-cleaner --dry-run --json > report.json

# Создание резервной копии перед удалением
project-cleaner --backup
```

## Расширенные функции

### JSON-отчет

Для использования в CI/CD пайплайнах и автоматизации:

```bash
project-cleaner --dry-run --json > report.json
```

Отчет содержит детальную информацию о найденных файлах, их размерах и статусе удаления.

### Резервное копирование

Если вы беспокоитесь о случайном удалении важных файлов:

```bash
project-cleaner --backup
```

Создает ZIP-архив всех удаляемых файлов в `.trash_backup.zip` перед их удалением.

### Файл .cleanignore

Аналог `.gitignore`, позволяет указать файлы и папки, которые не должны удаляться:

1. Создайте файл `.cleanignore` в корне проекта
2. Добавьте в него пути (относительно корня проекта), которые не нужно удалять:

```
# Это комментарий
node_modules/important-module
venv/specific-package
temp/important-file.log
```

## Требования

- Python 3.6+
- Не требует дополнительных зависимостей

## Безопасность

Перед реальной очисткой рекомендуется запустить скрипт с флагом `--dry-run`, чтобы увидеть, какие файлы будут удалены.

## Разработка

```bash
# Клонирование репозитория
git clone https://github.com/admin/project-cleaner.git
cd project-cleaner

# Установка в режиме разработки
pip install -e .

# Запуск тестов
pytest

# Сборка пакета
python setup.py sdist bdist_wheel

# Публикация на PyPI
twine upload dist/*
``` 