Metadata-Version: 2.4
Name: package-maximizer
Version: 0.1.0
Summary: Модульная система для максимизации непротиворечивого множества пакетов
Author-email: Package Maximizer Team <team@package-maximizer.dev>
License: MIT
Project-URL: Homepage, https://github.com/package-maximizer/package-maximizer
Project-URL: Documentation, https://package-maximizer.readthedocs.io/
Project-URL: Repository, https://github.com/package-maximizer/package-maximizer.git
Project-URL: Bug Tracker, https://github.com/package-maximizer/package-maximizer/issues
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: System :: Software Distribution
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: numpy>=1.20.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: matplotlib>=3.5.0
Requires-Dist: seaborn>=0.11.0
Requires-Dist: psutil>=5.8.0
Requires-Dist: requests>=2.25.0
Provides-Extra: web
Requires-Dist: flask>=2.0.0; extra == "web"
Requires-Dist: werkzeug<4,>=2.0; extra == "web"
Requires-Dist: gunicorn>=20.0.0; extra == "web"
Provides-Extra: solvers
Requires-Dist: z3-solver>=4.8.0; extra == "solvers"
Requires-Dist: pulp>=2.5.0; extra == "solvers"
Requires-Dist: ortools>=9.0.0; extra == "solvers"
Provides-Extra: all
Requires-Dist: package-maximizer[solvers,web]; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=6.2.0; extra == "dev"
Requires-Dist: pytest-cov>=3.0.0; extra == "dev"
Requires-Dist: black>=21.0.0; extra == "dev"
Requires-Dist: flake8>=4.0.0; extra == "dev"
Requires-Dist: mypy>=0.910; extra == "dev"
Requires-Dist: isort>=5.0.0; extra == "dev"
Requires-Dist: pre-commit>=2.15.0; extra == "dev"
Dynamic: license-file

# Package Maximizer 📦🔍

[![CI/CD](https://github.com/dominicusin/package-maximizer/workflows/Package%20Maximizer%20CI/CD/badge.svg)](https://github.com/dominicusin/package-maximizer/actions)
[![codecov](https://codecov.io/gh/dominicusin/package-maximizer/branch/main/graph/badge.svg)](https://codecov.io/gh/dominicusin/package-maximizer)
[![PyPI version](https://badge.fury.io/py/package-maximizer.svg)](https://badge.fury.io/py/package-maximizer)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Модульная система для решения задачи максимизации непротиворечивого множества пакетов с использованием различных SAT/ILP/SMT солверов для множественных пакетных менеджеров.

## 🚀 Возможности

- **Поддержка множественных пакетных менеджеров**: pacman, apt, dnf, zypper, brew, Spack и другие
- **Различные солверы**: Z3, PuLP, OR-Tools, MaxSAT, MiniSat
- **Параллельное решение**: одновременный запуск нескольких солверов
- **Веб-интерфейс**: интуитивный веб-интерфейс с визуализацией
- **CLI инструменты**: мощный командный интерфейс
- **Бенчмаркинг**: сравнение производительности солверов
- **Модульная архитектура**: легко расширяемая система

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

- Python 3.8+
- Один или несколько поддерживаемых солверов

## 🔧 Установка
```bash
# Из исходного кода
git clone https://github.com/dominicusin/package-maximizer.git
cd package-maximizer
pip install -e ".[all]"

---

🔄 **Mirrors:** [![GitLab](https://img.shields.io/badge/GitLab-dominicusin-orange?logo=gitlab)](https://gitlab.com/dominicusin/package-maximizer) · GitHub is canonical.

## 📊 Solvers & Benchmarks

| Solver | Тип | Установка | Статус |
|---|---|---|---|
| **Z3** | SMT | `pip install package-maximizer[solvers]` (z3-solver) | ✅ основной |
| **PuLP** | ILP/MIP | входит в `[solvers]` | ✅ основной |
| **OR-Tools** | CP-SAT | входит в `[solvers]` | ✅ опционально |
| **MaxSAT / MiniSat** | SAT | через `[all]` / python-sat | 🔬 экспериментально |

Запуск бенчмарков: `python -m package_maximizer.bench --solvers z3,pulp --packages 500`
(сравнение времени решения и качества множества на синтетических зависимостных графах).
