Знакомьтесь с 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 сейчас и почувствуйте значительное улучшение в вашем процессе разработки.