mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 07:01:14 +00:00
7d53cef0cf
ci/woodpecker/push/02-build-push Pipeline failed
New replay_api component: FastAPI service wrapping the offline
gps-denied-replay pipeline. POST tlog+video (multipart) → either
sync 200 with result/map/report URLs, or async 202 + job id with
/jobs/{id} polling. Magic-byte validation, bearer auth, in-memory
JobRegistry with concurrency + queue caps (429 on overflow).
Helper accuracy_report.py promoted from tests/ to src/ because the
API needs the Markdown report writer at runtime; all AZ-699 imports
re-pointed. OpenAPI spec exported to docs.
18/18 unit tests pass (AC-1 sync, AC-2 async, AC-3 state machine,
AC-5 auth, AC-6 health, AC-8 concurrency, AC-9 magic-byte). Full
unit suite: 2251 pass, 86 skip, 1 pre-existing C12 cold-start flake
(unchanged). mypy --strict clean on the new surface.
Co-authored-by: Cursor <cursoragent@cursor.com>
125 lines
3.0 KiB
Python
125 lines
3.0 KiB
Python
"""Shared utilities (E-CC-HELPERS / AZ-264).
|
|
|
|
Each helper has its own task (AZ-276..AZ-283). This package exposes the
|
|
ones that have landed so consumers can depend on a stable public surface
|
|
without reaching into the helper modules directly.
|
|
"""
|
|
|
|
from gps_denied_onboard.helpers.descriptor_normaliser import (
|
|
ALLOWED_DTYPES,
|
|
DescriptorNormaliser,
|
|
DescriptorNormaliserError,
|
|
)
|
|
from gps_denied_onboard.helpers.engine_filename_schema import (
|
|
ALLOWED_PRECISIONS,
|
|
ENGINE_SUFFIX,
|
|
EngineFilenameSchema,
|
|
EngineFilenameSchemaError,
|
|
)
|
|
from gps_denied_onboard.helpers.accuracy_report import (
|
|
AC3_GATE_PCT,
|
|
AC3_GATE_THRESHOLD_M,
|
|
ReportContext,
|
|
format_failure_message,
|
|
render_report,
|
|
verdict_passes_ac3,
|
|
)
|
|
from gps_denied_onboard.helpers.gps_compare import (
|
|
GroundTruthRow,
|
|
HorizontalErrorDistribution,
|
|
horizontal_error_distribution,
|
|
l2_horizontal_m,
|
|
match_percentage,
|
|
percentile_sorted,
|
|
)
|
|
from gps_denied_onboard.helpers.imu_preintegrator import (
|
|
CombinedImuFactor,
|
|
ImuPreintegrationError,
|
|
ImuPreintegrator,
|
|
make_imu_preintegrator,
|
|
)
|
|
from gps_denied_onboard.helpers.iso_timestamps import (
|
|
iso_ts_from_clock,
|
|
iso_ts_now,
|
|
)
|
|
from gps_denied_onboard.helpers.lightglue_runtime import (
|
|
LightGlueConcurrentAccessError,
|
|
LightGlueRuntime,
|
|
LightGlueRuntimeError,
|
|
)
|
|
from gps_denied_onboard.helpers.ransac_filter import (
|
|
RansacFilter,
|
|
RansacFilterError,
|
|
RansacResult,
|
|
)
|
|
from gps_denied_onboard.helpers.se3_utils import (
|
|
SE3,
|
|
Se3InvalidMatrixError,
|
|
adjoint,
|
|
exp_map,
|
|
is_valid_rotation,
|
|
log_map,
|
|
matrix_to_se3,
|
|
se3_to_matrix,
|
|
)
|
|
from gps_denied_onboard.helpers.sha256_sidecar import (
|
|
SIDECAR_SUFFIX,
|
|
Sha256Sidecar,
|
|
Sha256SidecarError,
|
|
)
|
|
from gps_denied_onboard.helpers.wgs_converter import (
|
|
MAX_ZOOM,
|
|
WEB_MERCATOR_MAX_LAT_DEG,
|
|
WgsConversionError,
|
|
WgsConverter,
|
|
)
|
|
|
|
__all__ = [
|
|
"AC3_GATE_PCT",
|
|
"AC3_GATE_THRESHOLD_M",
|
|
"ALLOWED_DTYPES",
|
|
"ALLOWED_PRECISIONS",
|
|
"ENGINE_SUFFIX",
|
|
"MAX_ZOOM",
|
|
"ReportContext",
|
|
"SE3",
|
|
"SIDECAR_SUFFIX",
|
|
"WEB_MERCATOR_MAX_LAT_DEG",
|
|
"CombinedImuFactor",
|
|
"DescriptorNormaliser",
|
|
"DescriptorNormaliserError",
|
|
"EngineFilenameSchema",
|
|
"EngineFilenameSchemaError",
|
|
"GroundTruthRow",
|
|
"HorizontalErrorDistribution",
|
|
"ImuPreintegrationError",
|
|
"ImuPreintegrator",
|
|
"LightGlueConcurrentAccessError",
|
|
"LightGlueRuntime",
|
|
"LightGlueRuntimeError",
|
|
"RansacFilter",
|
|
"RansacFilterError",
|
|
"RansacResult",
|
|
"Se3InvalidMatrixError",
|
|
"Sha256Sidecar",
|
|
"Sha256SidecarError",
|
|
"WgsConversionError",
|
|
"WgsConverter",
|
|
"adjoint",
|
|
"exp_map",
|
|
"format_failure_message",
|
|
"horizontal_error_distribution",
|
|
"is_valid_rotation",
|
|
"iso_ts_from_clock",
|
|
"iso_ts_now",
|
|
"l2_horizontal_m",
|
|
"log_map",
|
|
"match_percentage",
|
|
"make_imu_preintegrator",
|
|
"matrix_to_se3",
|
|
"percentile_sorted",
|
|
"render_report",
|
|
"se3_to_matrix",
|
|
"verdict_passes_ac3",
|
|
]
|