refactor(ruff): линтер стенда говорит на языке дагов, а не младшего образа
- Зачем: - target-version по младшему образу (Superset, 3.10) занижал проверку для дагов: они бегут на 3.13, а ruff предлагал им идиомы старее их рантайма. На учебном стенде это вывернуто наизнанку — менти читает и правит именно даги. - защита от Superset была верна не по устройству, а по сегодняшнему содержимому одного файла настройки. - Что: - target-version в корневом ruff.toml поднят до py313, комментарий переписан. - две находки UP017 в дагах починены: datetime.timezone.utc заменён на datetime.UTC. - из карты проверок убран пункт про разную строгость дверей — с равными версиями он потерял предмет. - Проверка: - make lint; make config-test — зелёные. - make -C generator lint — зелёный; исходники генератора не менялись. - находок ruff в дагах теперь ровно четыре, как обещал тикет: два переформата и два UP017. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -96,7 +96,7 @@ def _assert_tables_absent(client) -> None:
|
|||||||
@dag(
|
@dag(
|
||||||
dag_id="test_clickhouse",
|
dag_id="test_clickhouse",
|
||||||
schedule=None,
|
schedule=None,
|
||||||
start_date=datetime.datetime(2026, 1, 1, tzinfo=datetime.timezone.utc),
|
start_date=datetime.datetime(2026, 1, 1, tzinfo=datetime.UTC),
|
||||||
catchup=False,
|
catchup=False,
|
||||||
tags=["проверка"],
|
tags=["проверка"],
|
||||||
doc_md=__doc__,
|
doc_md=__doc__,
|
||||||
|
|||||||
+1
-1
@@ -77,7 +77,7 @@ class RecordAddress(NamedTuple):
|
|||||||
@dag(
|
@dag(
|
||||||
dag_id="test_kafka",
|
dag_id="test_kafka",
|
||||||
schedule=None,
|
schedule=None,
|
||||||
start_date=datetime.datetime(2026, 1, 1, tzinfo=datetime.timezone.utc),
|
start_date=datetime.datetime(2026, 1, 1, tzinfo=datetime.UTC),
|
||||||
catchup=False,
|
catchup=False,
|
||||||
tags=["проверка"],
|
tags=["проверка"],
|
||||||
doc_md=__doc__,
|
doc_md=__doc__,
|
||||||
|
|||||||
@@ -54,13 +54,8 @@
|
|||||||
генератора, генераторная — ни одного файла стенда. Человек в корне видит
|
генератора, генераторная — ни одного файла стенда. Человек в корне видит
|
||||||
зелёное и может решить, что зелёный весь репозиторий.
|
зелёное и может решить, что зелёный весь репозиторий.
|
||||||
|
|
||||||
Три тонкости, которых не видно из таблицы:
|
Две тонкости, которых не видно из таблицы:
|
||||||
|
|
||||||
- **Список правил у дверей один, а строгость нет.** Правила `UP` предлагают
|
|
||||||
синтаксис настолько новый, насколько позволяет `target-version`: у генератора
|
|
||||||
это 3.14 из `requires-python`, у стенда 3.10 — столько у Superset, младшего из
|
|
||||||
его образов. Один и тот же файл может пройти корневую проверку и не пройти
|
|
||||||
генераторную. Довод и замер — в комментарии `ruff.toml`.
|
|
||||||
- **Версия ruff у корневой цели закреплена в самом вызове** (`uvx ruff@0.16.1`)
|
- **Версия ruff у корневой цели закреплена в самом вызове** (`uvx ruff@0.16.1`)
|
||||||
и равна той, что в `generator/uv.lock`. Равенство держится руками: обновили
|
и равна той, что в `generator/uv.lock`. Равенство держится руками: обновили
|
||||||
лок — поправьте и вызов, сверять их некому.
|
лок — поправьте и вызов, сверять их некому.
|
||||||
|
|||||||
@@ -7,13 +7,13 @@
|
|||||||
|
|
||||||
# На каком Python побежит код, ruff сам не знает: у генератора он берёт ответ
|
# На каком Python побежит код, ruff сам не знает: у генератора он берёт ответ
|
||||||
# из `requires-python`, а у стенда спрашивать некого — даги и Superset живут
|
# из `requires-python`, а у стенда спрашивать некого — даги и Superset живут
|
||||||
# внутри образов. Замер 9 августа 2026 года: `apache/airflow:3.3.0` несёт
|
# внутри образов. Стоит версия дагов: их читают и правят, и идиомы им нужны
|
||||||
# Python 3.13.14, `apache/superset:6.1.0` — 3.10.20. Стоит младшая из двух,
|
# те, на которых они работают. Замер 9 августа 2026 года:
|
||||||
# иначе ruff предложил бы Superset синтаксис, которого его Python не знает.
|
# `apache/airflow:3.3.0` несёт Python 3.13.14, `apache/superset:6.1.0` — 3.10.20.
|
||||||
# Даги за это платят: они бегут на 3.13, и модернизаций, доступных только там,
|
# Настройке Superset от этого пока ни холодно ни жарко: модернизировать в ней
|
||||||
# ruff им не предложит. Значение совпадает с умолчанием ruff, и записано
|
# нечего. Предложит ruff что-то не по её возрасту — заведём исключение тогда,
|
||||||
# именно поэтому: сменится умолчание — проверка не поедет следом молча.
|
# с настоящим поводом.
|
||||||
target-version = "py310"
|
target-version = "py313"
|
||||||
|
|
||||||
[lint]
|
[lint]
|
||||||
select = ["E", "F", "I", "UP", "B"]
|
select = ["E", "F", "I", "UP", "B"]
|
||||||
|
|||||||
Reference in New Issue
Block a user