Показаны сообщения с ярлыком UV. Показать все сообщения
Показаны сообщения с ярлыком UV. Показать все сообщения

понедельник, 2 июня 2025 г.

uv, Giga, Python. Code Format, Tools

uv, Giga, Python. Code Format, Tools

https://giga.chat/link/gcsObBTGeV

UV — это высокопроизводительный установщик и решатель зависимостей для Python,

написанный на языке Rust и представленный компанией Astral.

Он позиционируется как замена традиционным инструментам pip и pip-tools,

предлагая значительное ускорение процессов установки и разрешения зависимостей.

Особенности UV:

  1. Высокая производительность:
    • Благодаря использованию Rust, UV демонстрирует огромную скорость обработки зависимостей:
    • до 8–10 раз быстрее, чем pip, и до 80–115 раз быстрее, если выполняется с тёплым кешем.
    • Использует глобальный кэш модулей,
    • уменьшая необходимость повторного скачивания и сборки зависимостей.
  2. Обратная совместимость с pip:
    • Разработан как прямое замещение для команд pip install, pip-compile и pip-sync,
    • сохраняя привычный пользователям интерфейс.
    • Поддерживает обычные сценарии использования,
    • такие как инсталляция зависимостей из файлов requirements.txt или pyproject.toml.
  3. Единая бинарная сборка:
    • UV поставляется в виде единого статичного двоичного файла,
    • независимого от установленной версии Python,
    • что устраняет необходимость в отдельной установке pip для каждой версии Python.
  4. Дополнительные возможности:
    • Возможность переопределения разрешений зависимостей (Overrides),
    • позволяющая решать конфликты между пакетами.
    • Генерирует lock-файлы (зафиксированную версию зависимостей),
    • похожие на файлы, создаваемые pip-tools.
    • Обеспечивает быстрое создание виртуальных сред, примерно в 80 раз быстрее,
    • чем стандартная команда python -m venv.
  5. Поддерживаемые платформы:
    • Работает на Linux, Windows и macOS, проверен на публичном индексе PyPI.

Отличия от традиционных инструментов:

  • Отсутствие поддержки legacy-функций:
  • UV нацелен на самые актуальные стандарты и методы работы с зависимостями,
  • отказываясь от некоторых устаревших функций, присутствующих в pip.
  • Проблемы с обратной совместимостью:
  • Возможны ситуации,
  • когда проект с редкими сценариями использования зависимостей столкнётся с ограничениями UV.

Перспективы развития:

Компания Astral планирует дальнейшее развитие UV,

стремясь превратить его в полноценный инструмент управления проектами и пакетами,

аналогичный Cargo для Rust или npm для Node.js.

Цель — создать универсальный инструмент,

который объединит лучшие практики и обеспечит комфортную интеграцию в существующие пайплайны.

Заключение:

UV представляет собой перспективный инструмент для ускорения и повышения удобства работы с зависимостями в Python.

Несмотря на свою молодость,

он уже показал впечатляющие результаты производительности и обещает стать серьёзным конкурентом традиционному pip.

В ближайшем будущем ожидается расширение функциональных возможностей и

интеграция с дополнительными инструментами Python-экосистемы.

воскресенье, 1 июня 2025 г.

UV, Giga

UV, Giga

https://giga.chat/link/gcsJhXtnzn Python, Project Structure

https://giga.chat/link/gcsJhXtnzn

UV — это новый быстрый установщик и разрешатель Python-пакетов, созданный на языке Rust.

Основная цель UV — заменить существующие инструменты типа pip и pip-tools,

предоставляя пользователям высокую скорость и надежность.

Основные особенности UV:

  • Высокая производительность:
  • UV значительно быстрее традиционных решений (pip и pip-tools):
    • Без кеша — примерно в 8-10 раз быстрее.
    • С теплым кешем — до 80-115 раз быстрее.
  • Оптимизация для адаптации:
  • Проект нацелен на полную совместимость с существующими инструментами,
  • такими как pip, позволяя легко интегрироваться в текущие рабочие процессы.
  • Упрощенная цепочка инструментов:
  • UV распространяется как единый бинарник,
  • способный заменить сразу несколько стандартных инструментов (pip, pip-tools, virtualenv и др.).
  • Таким образом, вам больше не придется управлять несколькими зависимыми инструментами отдельно.
  • Поддержка большинства форматов зависимостей:
  • UV поддерживает широкий спектр источников зависимостей,
  • включая локальные пути, URL, git-ресурсы и многое другое.
  • Интеграция с будущим развитием экосистемы:
  • Команда разработчиков стремится сделать
  • UV основой будущего единого инструмента для управления Python-проектами ("Cargo для Python").

Использование UV:

Установка и базовая работа с UV предельно просты:

  • Чтобы установить зависимости из requirements.txt:
uv pip install .
Генерация фиксированных зависимостей:  
uv pip compile
Синхронизация зависимостей с виртуальным окружением:  
uv pip sync

Кроме того, UV предлагает возможность создавать и управлять виртуальными окружениями:

  • Создание виртуального окружения:
uv venv create my_venv

План развития:

Разработчики планируют развивать UV дальше, превращая его в полноценный аналог Cargo для Python.

В будущем UV станет универсальным инструментом для:

  • Управления проектами.
  • Запуска приложений.
  • Компиляции и деплоинга.

Также команда планирует продолжать развитие экспериментального проекта Rye,

постепенно перенося его функциональность в UV.

Заключение:

UV уже доступен для широкого круга пользователей и готов стать частью повседневного рабочего процесса любого Python-разработчика.

Благодаря высокой скорости и простой интеграции,

он способен существенно повысить продуктивность и удобство работы с Python-зависимостями.

Попробуйте UV, чтобы оценить разницу!