navi/backend/services/navi_geo
malice 4180d3513c shared: promote dem.py to shared/ (prep for navi-offroute) (#9)
Pure refactor, no behavior change. Moves services/navi_geo/dem.py to
shared/dem.py (verbatim logic + env override; only docstring + location
changed) and re-points navi-geo's two imports (geo_route.py, admin.py) to
`from shared.dem import ...`.

Per extraction-8-phase-a.md §5/§13.1: navi-offroute (#18) needs the same
DEMReader, so a single source of truth in shared/ beats a third copy. Second
shared/ promotion after PR #7 round-2's shared/git_sha.py; navi-offroute will
`from shared.dem import DEMReader` directly.

Adds shared/tests/test_dem.py (dem_path default + NAVI_DEM_PMTILES override).
navi-geo behavior unchanged (test_reverse_bundle mocks geo_route._DEM, agnostic
to DEMReader's location). Full suite: 104 passed / 1 skipped (+2).

Co-authored-by: zvx-echo6 <mj@k7zvx.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 22:42:47 -06:00
..
tests navi-geo: revert netsyms.health() wiring — was a cold-start footgun (#8) 2026-05-22 21:38:40 -06:00
__init__.py Add navi-geo service (extraction #6) (#6) 2026-05-22 20:29:22 -06:00
address_book.py Add navi-geo service (extraction #6) (#6) 2026-05-22 20:29:22 -06:00
admin.py shared: promote dem.py to shared/ (prep for navi-offroute) (#9) 2026-05-22 22:42:47 -06:00
app.py Add navi-admin service (extraction #7) (#7) 2026-05-22 21:21:00 -06:00
geo_route.py shared: promote dem.py to shared/ (prep for navi-offroute) (#9) 2026-05-22 22:42:47 -06:00
geocode.py Add navi-geo service (extraction #6) (#6) 2026-05-22 20:29:22 -06:00
landclass_client.py Add navi-geo service (extraction #6) (#6) 2026-05-22 20:29:22 -06:00
netsyms.py navi-geo: revert netsyms.health() wiring — was a cold-start footgun (#8) 2026-05-22 21:38:40 -06:00