fix(generative): честные типы в dxf-экспортёре — strict mypy проходит (#2316) #2319

Merged
bot-backend merged 1 commit from fix/dxf-mypy-strict into main 2026-07-03 21:40:49 +00:00
Collaborator

Что

Issue #2316: 3 пред-существующие strict-ошибки в exporters/dxf.py ломали локальные mypy-прогоны generative-пакета.

  • _ring_points/_add_polygon были аннотированы object «оборонительно» → strict падал (list(object) без overload; object без add_lwpolyline). Аннотированы реальными типами shapely/ezdxf (CoordinateSequence, Modelspace) — оба резолвятся в Any под существующим ignore_missing_imports: конфиг не ослаблялся, type: ignore не понадобился.
  • Modelspace импортирован из модуля-определителя ezdxf.layouts.layout (no_implicit_reexport, тот же приём, что для ezdxf_new).
  • Попутно isinstance-кортежи → X | Y (UP038 пиненного pre-commit ruff — файл впервые тронут после пина).
  • Поведение DXF-экспорта не менялось.

Проверки

mypy app/services/generative/0 ошибок (было 3) · pytest -k dxf: 2 passed / 1 skipped · ruff+UP clean.

Closes #2316

## Что Issue #2316: 3 пред-существующие strict-ошибки в `exporters/dxf.py` ломали локальные mypy-прогоны generative-пакета. - `_ring_points`/`_add_polygon` были аннотированы `object` «оборонительно» → strict падал (`list(object)` без overload; `object` без `add_lwpolyline`). Аннотированы реальными типами shapely/ezdxf (`CoordinateSequence`, `Modelspace`) — оба резолвятся в Any под существующим `ignore_missing_imports`: конфиг не ослаблялся, `type: ignore` не понадобился. - `Modelspace` импортирован из модуля-определителя `ezdxf.layouts.layout` (no_implicit_reexport, тот же приём, что для ezdxf_new). - Попутно isinstance-кортежи → `X | Y` (UP038 пиненного pre-commit ruff — файл впервые тронут после пина). - Поведение DXF-экспорта не менялось. ## Проверки `mypy app/services/generative/` → **0 ошибок** (было 3) · pytest -k dxf: 2 passed / 1 skipped · ruff+UP clean. Closes #2316
bot-backend added 1 commit 2026-07-03 21:25:02 +00:00
fix(generative): честные типы в dxf-экспортёре — strict mypy проходит
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 8s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m55s
CI / frontend-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Successful in 14m38s
4159590d01
_ring_points/_add_polygon были аннотированы object «оборонительно» —
strict падал (list(object) без overload; object без add_lwpolyline).
Аннотированы реальными типами shapely/ezdxf (CoordinateSequence,
Modelspace) — оба резолвятся в Any под существующим
ignore_missing_imports, конфиг не ослаблялся, type: ignore не нужен.
Modelspace импортирован из модуля-определителя (no_implicit_reexport).
Попутно isinstance-кортежи → int | float (UP038 пиненного pre-commit
ruff, файл впервые тронут после пина). DXF-выход не изменён.

Closes #2316
bot-backend merged commit 7a113273f4 into main 2026-07-03 21:40:49 +00:00
bot-backend deleted branch fix/dxf-mypy-strict 2026-07-03 21:40:49 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2319
No description provided.