Skip to main content

Очистка проектов от временных файлов и папок

Project description

🧹 Project Cleaner

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

Установка

# Установка из 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

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

# Базовое использование (очистка текущей директории)
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 пайплайнах и автоматизации:

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

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

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

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

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, чтобы увидеть, какие файлы будут удалены.

Разработка

# Клонирование репозитория
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/*

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

project_cleaner-0.1.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

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

project_cleaner-0.1.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file project_cleaner-0.1.0.tar.gz.

File metadata

  • Download URL: project_cleaner-0.1.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for project_cleaner-0.1.0.tar.gz
Algorithm Hash digest
SHA256 65891eedfa263c9db2f8439fe7c460f1f4cb550751d8c1923933d7ed2266ca69
MD5 45982601e4e4721779b395a1aa70ff94
BLAKE2b-256 fc2133eef7dc4b1da2aff33e0cb7ba3c6c23b2269d85eb3af7bb5d1f4d033431

See more details on using hashes here.

File details

Details for the file project_cleaner-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for project_cleaner-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e0cc67474f7078631e57fa42091bbbc584a1e03cb4e16a72910940db289ba31
MD5 6e97bda27349d48b03ca1d5575f9a0f1
BLAKE2b-256 513f69abb60afcb0435a67d31a0f7f39012f3167c92a54015b88faef8a9500b3

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