mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-23 15:21:13 +00:00
f925af9de3
Freezes the c6_tile_cache Public API per
_docs/02_document/contracts/c6_tile_cache/{tile_store,tile_metadata_store,
descriptor_index}.md v1.0.0:
- Three runtime_checkable Protocols (TileStore 4-method, TileMetadataStore
9-method, DescriptorIndex 5-method) in components/c6_tile_cache/interface.py.
- Frozen DTOs + enums (TileId, TileMetadata, TileMetadataPersistent,
TileQualityMetadata, Bbox, SectorBoundary, HnswParams, IndexMetadata,
TileSource, FreshnessLabel, VotingStatus, SectorClassification) in
components/c6_tile_cache/_types.py. Constructor-time validation rejects
out-of-range zoom_level / lat / lon and inverted Bbox.
- TilePixelHandle ABC for read-only mmap access (Invariant I-4).
- TileCacheError family (6 subtypes) + IndexBuildError (deliberately
outside the family) in components/c6_tile_cache/errors.py.
- C6TileCacheConfig per-component config block, registered on package
import; validates known runtime labels at construction time.
- Composition-root factories build_tile_store / build_tile_metadata_store /
build_descriptor_index in runtime_root/storage_factory.py, with lazy
concrete-impl imports gated by BUILD_FAISS_INDEX (AC-5 / Risk 2:
no module-level FAISS import when the flag is OFF).
- RuntimeNotAvailableError defined in runtime_root/errors.py to be shared
with AZ-297 (composition-time error, distinct from per-component
runtime errors).
51 conformance tests cover all 10 ACs + NFR-perf-factory (p99 build_*
under 50 ms across 1000 calls) + NFR-reliability-error-family. AC-9
introspects each contract file's Shape table and asserts method
parity against the runtime Protocol.
Retired the AZ-263 scaffolding SectorClassification (dataclass) and
TileQualityMetadata from _types/tile.py since their canonical home is
now c6_tile_cache._types; Tile and TileRecord remain in _types/tile.py
until c3_matcher (AZ-344) and c11_tile_manager (AZ-316/319) retire
their interface stubs.
Full unit-test sweep: 791 passed, 2 pre-existing environment skips.
Co-authored-by: Cursor <cursoragent@cursor.com>
25 lines
925 B
Python
25 lines
925 B
Python
"""Composition-root errors shared across runtime factories.
|
|
|
|
These are raised at composition time (``build_*`` factory entry) and
|
|
NOT during the running flight. Components own their per-runtime error
|
|
families; this module owns the cross-component selection error.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
class RuntimeNotAvailableError(RuntimeError):
|
|
"""Raised when ``build_*`` is asked for a runtime whose compile-time
|
|
``BUILD_*`` flag is OFF.
|
|
|
|
Used by:
|
|
- ``runtime_root.storage_factory.build_descriptor_index`` (AZ-303 / E-C6,
|
|
``BUILD_FAISS_INDEX`` gate)
|
|
- ``runtime_root.inference_factory.build_inference_runtime`` (AZ-297 / E-C7,
|
|
``BUILD_TENSORRT_RUNTIME`` / ``BUILD_ONNX_TRT_EP_RUNTIME`` /
|
|
``BUILD_PYTORCH_FP16_RUNTIME`` gates)
|
|
|
|
The message MUST name the requested runtime label so the operator can
|
|
correlate against ``.env``'s ``BUILD_*`` matrix without guessing.
|
|
"""
|