Консольное приложение, позволяющее при помощи SMT/SAT решателей разрешить задачу выборки версий пакетов для установки с учетом их зависимостей.
Склонируйте репозиторий с исходным кодом и тестами:
git clone <URL репозитория>
cd <директория проекта>python -m venv venv
venv\Scripts\activatepip install -r requirements.txtНеобходимо скачать с официального сайта компилятор minizinc и добавить его в PATH
py main.pyВходные данные записываются в текстовый файл dependencies.txt в следующем формате:
root <root version>: <dependency name 1> <dependency version 1> ... <dependency name n> <dependency version n>
<package name> <package version>: <dependency name 1> <dependency version 1> ... <dependency name n> <dependency version n>
...
root 1.0.0: foo ^1.0.0 target ^2.0.0
foo 1.1.0: left ^1.0.0 right ^1.0.0
left 1.0.0: shared >=1.0.0
right 1.0.0: shared <2.0.0
shared 1.0.0: target ^1.0.0
root: 1.0.0
target: 2.0.0
right: any
left: any
foo: 1.0.0
shared: any