|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m0s
CI / backend-tests (pull_request) Successful in 17m12s
get_features_in_bbox_grid глушил ЛЮБОЕ исключение ячейки (warning + continue) и возвращал []. Бан IP по WAF или падение слоя целиком становились неотличимы от честного пустого ответа. Замер на проде: nspd_quarter_dumps — 669 строк, у 124 territorial_zones_count=0, и у 50 из них соседний legacy-слой данные всё-таки нашёл. То есть это не «зон нет», а «мы не узнали». Правка — зеркало уже исправленного близнеца в app/scrapers/nspd_bulk_client.get_features_in_bbox_grid (Issue #252-mirror): - NspdBulkWafError → немедленный re-raise (продолжать обход = углублять бан); - NspdBulkServerError считаем отдельно; если 5xx были И ни одна ячейка не прошла — бросаем вместо ложного пустого; - прочие (сетевые/parse) ошибки ячейки по-прежнему не валят обход. get_riasurt_sverdl_in_bbox ловит NspdBulkServerError и сохраняет прежний контракт («пустой list если слой пуст / упал»), но НЕ ловит WafError. Ограничение записано в коде честно: наружу оттуда «упал» и «пусто» по-прежнему неразличимы — у функции нет канала для флага. Докстрока search_by_quarter обещала атомарность, которой не было; теперь описывает, что бросается и где partial-success ВОЗМОЖЕН (#2464-H). Тесты двусторонние: против main 2 из 3 падают (waf_403_aborts_grid, all_cells_5xx_raises), третий — контроль partial_5xx_keeps_data — зелёный с обеих сторон. Один хунк форматирования — не мой: pre-commit ruff v0.7.4 против 0.15.12 (#2864). Refs #2464 |
||
|---|---|---|
| .. | ||
| analysis_runs | ||
| analytics | ||
| cadastre | ||
| chat | ||
| etl | ||
| exporters | ||
| forecasting | ||
| generative | ||
| llm | ||
| photos | ||
| scrapers | ||
| site_finder | ||
| __init__.py | ||
| analytics_queries.py | ||
| analytics_refresh.py | ||
| auth_session.py | ||
| dadata_client.py | ||
| forecast_request_cache.py | ||
| insights.py | ||
| job_settings.py | ||
| objective_etl.py | ||
| objective_sync_config.py | ||
| own_projects.py | ||
| weather_cache.py | ||