Add get_features_in_bbox_grid(layer_id, bbox, *, grid_n=7, step_m=50) to NSPDClient: delegates grid_n×grid_n WMS GetFeatureInfo calls via NSPDBulkClient.wms_feature_info (async httpx + Semaphore(3)), deduplicates by feature_id/cad_num/reg_numb_border. Deprecate get_features_in_bbox (single-pixel, 0-3 results) in docstring — not removed, used by search_by_quarter (Sub-PR B). Add classify_engineering_kind(properties) in nspd_denorm.py — regex classifier for layer 36328 structures: water/sewage/gas/heat/electric/other. Tests: 31 unit tests (mock-based, no live HTTP), 1 integration skip placeholder. Foundation only — no behaviour change in harvest_quarter (Sub-PR B). |
||
|---|---|---|
| .. | ||
| api | ||
| integration | ||
| scrapers | ||
| services | ||
| smoke | ||
| workers | ||
| __init__.py | ||
| test_admin_weight_profiles.py | ||
| test_concepts_stub.py | ||
| test_gate_verdict.py | ||
| test_health.py | ||
| test_layout_signature.py | ||
| test_layout_tz_pdf.py | ||
| test_nspd_client.py | ||
| test_nspd_sync.py | ||
| test_quarter_dump_lookup.py | ||
| test_sentry_init.py | ||
| test_velocity.py | ||
| test_weight_profiles.py | ||