feat(sf): EKB geoportal urbanCard — ПЗЗ-регламент content (#1067 C8) #1094
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1094
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/ekb-geoportal-urbancard"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что
Расширение
ekb_geoportal_client.py— рич ПЗЗ-регламент (ИРД-content для #1059), supplement к WFS.Pipeline (shape подтверждён live 2026-06-06, зона Ц-1, 24 ВРИ)
searchByGeom(точка → ключиUrbanTerZone/GknParcel) →urbanCard(ключи → карточка территории) →parse_zone_regulation→ZoneRegulation:zone_index('Ц-1') +zone_full_name('Ц-1 Общественно-деловая зона…')main_vri/conditional_vri/auxiliary_vri— ВРИ строками «код 540н + текст»limit_params— предельные параметры свободным текстом (min площадь / % застройки / этажность — дальше regex/LLM-экстракт в числа)Метод
zone_regulation_at(lon, lat)._http_post_jsonmodule-level (мокается). Реальные эндпоинты:/api/gis/spatialObject/searchByGeom,/api/urbanCard/portal.Тесты
11 passed (WFS из C7 + новые: parse_zone_regulation, zone_regulation_at pipeline по URL-моку, empty/none ветки). ruff + ruff-format clean.
Scope / next
C8a = client-резолвер. C8b (follow-up): кэш-таблица регламента по
zone_index(~100 зон/город, регламент идентичен для всех участков зоны) + числовой экстракт предельных параметров.Refs #1067 (C8), #1059 (ПЗЗ ВРИ+параметры — источник найден). Источник: vault
research/EKB_Geoportal_PZZ_Content_API_Jun06.✅ APPROVE
Чисто аддитивное расширение C7-клиента (#1083) urbanCard-пайплайном, C7-логика не тронута (features_at_point/zone_index_at/EKBFeature/_http_get_json untouched, all расширен, 7 C7-тестов проходят без изменений):
(x or {}).get,or []). Whitespace-onlyurbanTerZoneНЕ даёт IndexError ("".split()[0]не достигается — пустая строка falsy → index None, проверено).httpx.post(json=body)— json-encoded, lon/lat float, без инъекций; timeout прокинут._http_post_jsonmodule-level (мокается).zone_regulation_atshort-circuit'ит на нет UrbanTerZone (urbanCard не дёргается)._vri_namesDRY + skip falsy. frozen+slots dataclass.Минор (advisory):
int(key)в_search_keysбез try/except — на нечисловом key reverse-eng API бросит ValueError. Low (нет прод-вызова). Добавлю к #1084 (тот же клиент, C8-wiring hardening) — не отдельным issue.Merge → deploy-verify.