From 237dc041a2609aaf853de3c260e45b7a4c81b259 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Wed, 15 Oct 2025 10:52:20 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BF=D0=BE=20uv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- airflow-greenplum/AGENTS.md | 4 ++-- airflow-greenplum/README.md | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/airflow-greenplum/AGENTS.md b/airflow-greenplum/AGENTS.md index 49f3166..87eea40 100644 --- a/airflow-greenplum/AGENTS.md +++ b/airflow-greenplum/AGENTS.md @@ -18,8 +18,8 @@ Example: `make up && make airflow-init` then open `http://localhost:8080`. ## Локальное Python-окружение -- Окружением управляет `uv`: `uv python install 3.11` и `uv python pin 3.11` скачивают и фиксируют версию Python для проекта. -- `uv sync` (или `make dev-setup` / `make dev-sync`) создаёт `.venv` и ставит dev-зависимости из `pyproject.toml` / `uv.lock`. +- Окружением управляет `uv`: достаточно выполнить `uv sync` (или `make dev-sync`), чтобы подтянуть нужный Python, создать `.venv` и установить зависимости. +- `make dev-setup` пригодится, когда нужно перепинить версию Python или прогреть кэш (вызовет `uv python install` + `uv python pin` перед `uv sync`). - Команды разработчика: `make test`, `make lint`, `make fmt` (под капотом выполняются через `uv run`). - Не используем `pip install --user`; если пакеты попали в user-site, удаляем через `pip uninstall ` и проверяем `pip list --user`. - В IDE выбираем интерпретатор из `.venv` (`.venv\Scripts\python.exe` на Windows, `.venv/bin/python` на Linux/macOS). diff --git a/airflow-greenplum/README.md b/airflow-greenplum/README.md index 54d481e..5b2e791 100644 --- a/airflow-greenplum/README.md +++ b/airflow-greenplum/README.md @@ -15,12 +15,12 @@ Локальным окружением управляет [uv](https://docs.astral.sh/uv/) — он скачивает нужный Python и создаёт `.venv` на основе `pyproject.toml` / `uv.lock`. ```bash -uv python install 3.11 # один раз загружаем CPython 3.11 -uv python pin 3.11 # фиксируем версию для проекта (.python-version) -uv sync # создаём .venv и ставим dev-зависимости +uv sync ``` -Можно короче: `make dev-setup`. После изменения зависимостей запустите `uv sync` (или `make dev-sync`). +`uv sync` сам подтянет версию Python из `.python-version`/`pyproject.toml`, создаст `.venv` и установит зависимости. Для тех же действий можно использовать `make dev-sync`. Цель `make dev-setup` (или вручную `uv python install` + `uv python pin`) нужна только когда вы меняете версию Python или прогреваете кэш. + +> Если требуется «классическое» активированное окружение, после `uv sync` выполните `.\.venv\Scripts\Activate.ps1` в PowerShell или `source .venv/bin/activate` в Unix-терминале. Проверки и форматирование выполняем через uv: @@ -30,6 +30,14 @@ make lint # black/isort в режиме проверки make fmt # автоформатирование black + isort ``` +### Быстрый старт с uv + +```bash +uv sync +uv run pytest -q +uv run black --check airflow tests +``` + > Не устанавливайте пакеты напрямую через `pip install --user ...`. Если что-то уже попало в user-site, удалите `pip uninstall ` и проверьте `pip list --user`. ---