From 5832dfae21a1028e9c1e722c0751e26cd5b34d39 Mon Sep 17 00:00:00 2001 From: lekss361 Date: Tue, 12 May 2026 01:15:37 +0300 Subject: [PATCH] =?UTF-8?q?fix(site-finder):=20P1=20#45=20=E2=80=94=20extr?= =?UTF-8?q?act=200.3=20ha=20to=20=5FGEOM=5FAREA=5FCOMFORT=5FHA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Auto-review нашёл: recommendation упоминала "от 0.3 га" но в constants block не было 0.3 — magic literal в строке. Тот же класс проблемы что 30/40м inconsistency из прошлого review, только в другом поле. Fix: новая константа `_GEOM_AREA_COMFORT_HA = 0.3` с комментарием "рекомендуемая комфортная площадь МКД (recommendation)". Размещена между _GEOM_MIN_AREA_HA (физический минимум) и _GEOM_AREA_SCORE_FULL_HA (premium) — третий semantic threshold. Recommendation теперь f-string использует константу. Per auto-review on ae5e8de. --- backend/app/api/v1/parcels.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/app/api/v1/parcels.py b/backend/app/api/v1/parcels.py index bceef1e2..c05c1134 100644 --- a/backend/app/api/v1/parcels.py +++ b/backend/app/api/v1/parcels.py @@ -278,8 +278,9 @@ GEOTECH_BY_REGION: dict[int, dict[str, Any]] = { # P1 (#45) — constants for polygon suitability (строительные нормы Свердл/общие # для ЖК; будут править — храним в одном месте) -_GEOM_MIN_AREA_HA = 0.2 # ниже → area_subscore = 0 -_GEOM_AREA_SCORE_FULL_HA = 0.5 # ≥ → area_subscore = 1.0 +_GEOM_MIN_AREA_HA = 0.2 # ниже → area_subscore = 0 (физический минимум) +_GEOM_AREA_COMFORT_HA = 0.3 # рекомендуемая комфортная площадь МКД (recommendation) +_GEOM_AREA_SCORE_FULL_HA = 0.5 # ≥ → area_subscore = 1.0 (premium) _GEOM_ASPECT_PENALTY_THRESHOLD = 5.0 # выше → вытянутый _GEOM_ASPECT_PENALTY = 0.3 _GEOM_CONVEX_PENALTY_THRESHOLD = 0.65 # ниже → изрезанный @@ -419,7 +420,7 @@ def _polygon_suitability(geom_wkt: str) -> dict[str, Any]: "recommendation": ( f"Строительный минимум короткой стороны — {_GEOM_MIN_WIDTH_PHYSICAL_M}м, " f"комфорт типового МКД 12-16 этажей — от {_GEOM_MIN_WIDTH_COMFORT_M}м " - f"и площадь от 0.3 га." + f"и площадь от {_GEOM_AREA_COMFORT_HA} га." ), "note": ( "Оценка по форме участка (Shapely). Учитывает площадь, "