UniDep – инструмент, объединяющий пакеты Conda и Pip в единую систему.

Знакомьтесь с UniDep: инструментом, который облегчает управление зависимостями в проектах на Python, объединяя пакеты Conda и Pip в единой системе. Улучшайте процесс разработки и экономьте время с помощью этого удобного инструмента! #UniDep #Python #Conda #Pip

 UniDep - инструмент, объединяющий управление зависимостями проектов Python, объединяя пакеты Conda и Pip в единую систему.

UniDep представляет унифицированный подход к управлению зависимостями Conda и Pip в одном файле, используя requirements.yaml или pyproject.toml. Это устраняет необходимость в поддержке отдельных файлов, таких как requirements.txt и environment.yaml, упрощая всю картину зависимостей.

Одной из заметных особенностей UniDep является безупречная интеграция с Setuptools и Hatchling. Это обеспечивает автоматическое управление зависимостями в процессе установки, делая установку разработочных сред с помощью одной команды легкой:
unidep install ./your-package.

Установка одной командой

Команда `unidep install` UniDep легко обрабатывает зависимости Conda, Pip и локальные, предоставляя полноценное решение для разработчиков, стремящихся к беззаботному процессу установки.

Поддержка монорепозитория

Для проектов в структуре монорепозитория UniDep отлично работает при преобразовании нескольких файлов requirements.yaml или pyproject.toml в один файл среды Conda environment.yaml. Это обеспечивает согласованные глобальные и conda-lock файлы для каждого подпакета, упрощая управление зависимостями взаимосвязанных проектов.

Поддержка платформы

UniDep учитывает разнообразие операционных систем и архитектур, позволяя разработчикам указывать зависимости, адаптированные к различным платформам. Это обеспечивает плавный опыт работы в различных средах.

Интеграция с pip-compile

UniDep интегрируется с pip-compile, позволяя генерировать полностью закрепленные файлы requirements.txt из requirements.yaml или pyproject.toml. Это способствует воспроизводимости и стабильности среды.

Интеграция с conda-lock

UniDep расширяет функциональность conda-lock, позволяя генерировать полностью закрепленные файлы conda-lock.yml из одного или нескольких файлов requirements.yaml или pyproject.toml. Это обеспечивает согласованность версий зависимостей, что крайне важно для воспроизводимых сред.

Статистика

Разработанный на Python, UniDep гордится более чем 99% покрытием тестами, полной поддержкой типов, соблюдением правил Ruff, расширяемостью и минимальными зависимостями.

UniDep особенно полезен при настройке полноценных разработочных сред, требующих как Python, так и не-Python зависимостей, таких как CUDA, компиляторы и т. д. Его установка одной командой и поддержка различных платформ делают его ценным инструментом в областях исследований, науки о данных, робототехники, искусственного интеллекта и машинного обучения.

Применение

UniDep проявляет себя в монорепозиториях с несколькими зависимыми проектами, хотя многие из них являются закрытыми. Публичный пример, home-assistant-streamdeck-yaml, демонстрирует эффективность UniDep в управлении системными зависимостями на различных платформах.

UniDep становится мощным союзником для разработчиков, стремящихся к простоте и эффективности управления зависимостями Python. Независимо от того, предпочитаете ли вы Conda или Pip, UniDep оптимизирует процесс, делая его неотъемлемым инструментом для всех, кто имеет дело с сложными разработочными средами. Попробуйте UniDep сейчас и почувствуйте значительное улучшение в вашем процессе разработки.

Полезные ссылки: