Files
core/cleanup_deps.py
Untone c42aeaabe0
Some checks failed
Deploy on push / deploy (push) Failing after 8s
versions
2025-09-01 13:49:34 +03:00

89 lines
3.0 KiB
Python

#!/usr/bin/env python3
"""
Скрипт для очистки неиспользуемых зависимостей
Убирает лишние пакеты и оставляет только необходимые для работы
"""
import subprocess
import sys
from pathlib import Path
def run_command(cmd, check=True):
"""Выполняет команду и возвращает результат"""
try:
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, check=check)
return result.stdout.strip()
except subprocess.CalledProcessError as e:
print(f"❌ Ошибка выполнения команды: {e}")
return None
def get_installed_packages():
"""Получает список установленных пакетов"""
return run_command("uv pip list")
def uninstall_package(package):
"""Удаляет пакет"""
print(f"🗑️ Удаляю {package}...")
return run_command(f"uv pip uninstall {package} -y", check=False)
def main():
print("🧹 Очистка неиспользуемых зависимостей")
print("=" * 50)
# Пакеты которые можно безопасно удалить
packages_to_remove = [
# Google packages (если не используете аналитику)
"google-analytics-data",
"google-api-core",
"google-auth",
"googleapis-common-protos",
# gRPC (если не используете)
"grpcio",
"grpcio-status",
# Лишние type stubs
"types-authlib",
"types-cffi",
"types-cryptography",
"types-orjson",
"types-pyopenssl",
"types-python-dateutil",
"types-pyyaml",
"types-requests",
"types-setuptools",
# Дополнительные ML пакеты (если не нужны)
"scipy",
"scikit-learn",
# Pillow (если не обрабатываете изображения)
"pillow",
# TQDM (если не нужны progress bars)
"tqdm",
]
print("📦 Пакеты для удаления:")
for pkg in packages_to_remove:
print(f" - {pkg}")
response = input("\n❓ Продолжить удаление? (y/N): ")
if response.lower() != 'y':
print("❌ Отменено")
return
print("\n🚀 Начинаю удаление...")
for package in packages_to_remove:
uninstall_package(package)
print("\n✅ Очистка завершена!")
print("\n📋 Рекомендации:")
print("1. Проверьте что приложение работает: uv run python main.py")
print("2. Если что-то сломалось, восстановите: uv pip install -r requirements.txt")
print("3. Для минимальной установки используйте: uv pip install -r requirements.minimal.txt")
if __name__ == "__main__":
main()