Spaces:
Paused
Paused
Download sensorflow/platform/entities.py from whassan/SensorflowStudio: direct link, hf CLI and curl.
- Browser
- Download file 8.99 kB
-
https://huggingface.co/spaces/whassan/SensorflowStudio/resolve/main/sensorflow/platform/entities.py
- Command line
-
hf download hf://spaces/whassan/SensorflowStudio/sensorflow/platform/entities.py
-
curl -L -o entities.py https://huggingface.co/spaces/whassan/SensorflowStudio/resolve/main/sensorflow/platform/entities.py
8.99 kB
| """Platform entity schemas with versioning / provenance. | |
| Prefer these as the shared vocabulary across LabelEval + MegaEval. | |
| Existing store models in evaluation.records remain the persistence layer for | |
| label QA; MegaEval continues to use npz cubes. These Pydantic models are the | |
| contract for APIs, evidence packages, and later lakehouse rows. | |
| """ | |
| from __future__ import annotations | |
| from datetime import datetime, timezone | |
| from typing import Any, Dict, List, Literal, Optional | |
| from uuid import uuid4 | |
| from pydantic import BaseModel, Field | |
| def _now() -> str: | |
| return datetime.now(timezone.utc).isoformat() | |
| def _id(prefix: str) -> str: | |
| return f"{prefix}-{uuid4().hex[:10]}" | |
| class Provenance(BaseModel): | |
| """Lineage fields required on durable evaluation artifacts.""" | |
| created_at: str = Field(default_factory=_now) | |
| created_by: str = "system" | |
| schema_version: str = "platform-1.0" | |
| parent_ids: List[str] = Field(default_factory=list) | |
| source_system: str = "sensorflow" # labeleval | megaeval | pipeline | platform | |
| seed: Optional[int] = None | |
| code_version: str = "phase1" | |
| notes: str = "" | |
| class VersionedEntity(BaseModel): | |
| version: str = "v1" | |
| provenance: Provenance = Field(default_factory=Provenance) | |
| # ------------------------------------------------------------------ hierarchy | |
| class DatasetEntity(VersionedEntity): | |
| dataset_id: str | |
| name: str = "" | |
| population_id: Optional[str] = None # MegaEval link | |
| num_frames: int = 0 | |
| gt_type: Optional[str] = None | |
| class Container(VersionedEntity): | |
| """Scene/segment holding related objects (MegaEval container_id).""" | |
| container_id: str | |
| dataset_id: Optional[str] = None | |
| run_id: Optional[str] = None | |
| mega_container_id: Optional[int] = None | |
| drive_id: Optional[str] = None | |
| scene_id: Optional[str] = None | |
| dims: Dict[str, str] = Field(default_factory=dict) | |
| n_objects: int = 0 | |
| class Group(VersionedEntity): | |
| """Logical grouping: verification bucket OR cohort alias.""" | |
| group_id: str | |
| kind: Literal["verification", "cohort", "custom"] = "custom" | |
| dataset_id: Optional[str] = None | |
| member_ids: List[str] = Field(default_factory=list) | |
| label: str = "" | |
| class Drive(VersionedEntity): | |
| drive_id: str | |
| dataset_id: Optional[str] = None | |
| scene_ids: List[str] = Field(default_factory=list) | |
| container_ids: List[str] = Field(default_factory=list) | |
| description: str = "" | |
| class SceneEntity(VersionedEntity): | |
| scene_id: str | |
| dataset_id: Optional[str] = None | |
| drive_id: Optional[str] = None | |
| sequence_ids: List[str] = Field(default_factory=list) | |
| description: str = "" | |
| class ScenarioEntity(VersionedEntity): | |
| scenario_id: str | |
| scenario_type: str | |
| dataset_id: Optional[str] = None | |
| frame_ids: List[str] = Field(default_factory=list) | |
| description: str = "" | |
| class FrameEntity(VersionedEntity): | |
| frame_id: str | |
| dataset_id: Optional[str] = None | |
| scene_id: Optional[str] = None | |
| sequence_id: Optional[str] = None | |
| container_id: Optional[str] = None | |
| index: int = 0 | |
| timestamp_us: int = 0 | |
| class Sensor(VersionedEntity): | |
| sensor_id: str | |
| modality: Literal["lidar", "camera", "radar", "ultrasonic", "other"] = "lidar" | |
| frame_id: Optional[str] = None | |
| calibration_ref: Optional[str] = None | |
| class ObjectEntity(VersionedEntity): | |
| object_id: str | |
| class_name: str = "vehicle" | |
| frame_id: Optional[str] = None | |
| container_id: Optional[str] = None | |
| track_id: Optional[str] = None | |
| bbox_3d: Optional[List[float]] = None | |
| class Trajectory(VersionedEntity): | |
| trajectory_id: str | |
| track_id: Optional[str] = None | |
| object_ids: List[str] = Field(default_factory=list) | |
| frame_ids: List[str] = Field(default_factory=list) | |
| class Label(VersionedEntity): | |
| """Alias contract for Annotation — hypothesis, never assumed correct.""" | |
| label_id: str | |
| annotation_id: Optional[str] = None | |
| frame_id: Optional[str] = None | |
| object_id: Optional[str] = None | |
| class_name: str = "" | |
| confidence: float = 0.0 | |
| status: str = "PENDING" | |
| model_version: Optional[str] = None | |
| class AnnotationEntity(Label): | |
| """Explicit Annotation mirror for API clarity.""" | |
| pass | |
| # ------------------------------------------------------------------ models / eval | |
| class ModelEntity(VersionedEntity): | |
| model_id: str | |
| name: str = "" | |
| status: str = "ready" | |
| class ModelVersion(VersionedEntity): | |
| model_version_id: str | |
| model_id: str | |
| model_version: str | |
| checkpoint_ref: Optional[str] = None | |
| trained_on_dataset: Optional[str] = None | |
| metrics: Dict[str, Any] = Field(default_factory=dict) | |
| class Metric(VersionedEntity): | |
| metric_id: str | |
| name: str | |
| value: Optional[float] = None | |
| unit: str = "ratio" | |
| higher_is_better: bool = True | |
| support: Optional[int] = None | |
| level: str = "container" # AggregateLevel value | |
| exact: bool = True | |
| class Evaluation(VersionedEntity): | |
| evaluation_id: str | |
| level: str | |
| dataset_id: Optional[str] = None | |
| population_id: Optional[str] = None | |
| run_id: Optional[str] = None | |
| model_version: Optional[str] = None | |
| label_version: Optional[str] = None | |
| scope_ref: Optional[str] = None # container/cohort/drive id | |
| metrics: List[Metric] = Field(default_factory=list) | |
| status: str = "created" | |
| class Cohort(VersionedEntity): | |
| cohort_id: str | |
| filters: Dict[str, List[str]] = Field(default_factory=dict) | |
| group_by: List[str] = Field(default_factory=list) | |
| n: int = 0 | |
| run_id: Optional[str] = None | |
| class Embedding(VersionedEntity): | |
| embedding_id: str | |
| ref_type: str = "container" # container | object | frame | |
| ref_id: str | |
| dim: int = 0 | |
| # TODO(Phase 3): vector payload / external vector-DB handle | |
| vector_ref: Optional[str] = None | |
| class Anomaly(VersionedEntity): | |
| anomaly_id: str | |
| annotation_id: Optional[str] = None | |
| container_id: Optional[str] = None | |
| score: float = 0.0 | |
| is_anomaly: bool = False | |
| detector_scores: Dict[str, float] = Field(default_factory=dict) | |
| class Conflict(VersionedEntity): | |
| """Safety / label conflict placeholder — Phase 4 fills SSAM DRAC/DeltaS.""" | |
| conflict_id: str | |
| kind: str = "label" # label | trajectory | ssam_drac | ssam_deltas | |
| entity_ids: List[str] = Field(default_factory=list) | |
| severity: str = "medium" | |
| # TODO(Phase 4): full SSAM conflict engine fields | |
| detail: Dict[str, Any] = Field(default_factory=dict) | |
| class ODDDefinition(VersionedEntity): | |
| odd_id: str | |
| name: str | |
| axes: Dict[str, List[str]] = Field(default_factory=dict) | |
| # TODO(Phase 5): combinatorial coverage rules | |
| description: str = "" | |
| class ODDObservation(VersionedEntity): | |
| observation_id: str | |
| odd_id: str | |
| observed_axes: Dict[str, str] = Field(default_factory=dict) | |
| covered: bool = False | |
| support: int = 0 | |
| run_id: Optional[str] = None | |
| class QualityGateDef(VersionedEntity): | |
| gate_id: str | |
| name: str | |
| gate_type: Literal[ | |
| "scenario", "coverage", "regression", "safety", "release", "quality", "launch" | |
| ] | |
| thresholds: Dict[str, float] = Field(default_factory=dict) | |
| config_path: Optional[str] = None | |
| enabled: bool = True | |
| class GateResult(VersionedEntity): | |
| result_id: str | |
| gate_id: str | |
| gate_type: str | |
| passed: Optional[bool] = None # None = not yet evaluated (skeleton) | |
| failures: List[Dict[str, Any]] = Field(default_factory=list) | |
| metrics: Dict[str, Any] = Field(default_factory=dict) | |
| thresholds: Dict[str, float] = Field(default_factory=dict) | |
| scope_ref: Optional[str] = None | |
| ready: bool = False # False until Phase N wires real checks | |
| message: str = "" | |
| class HumanReviewEntity(VersionedEntity): | |
| review_id: str | |
| task_id: Optional[str] = None | |
| annotation_id: Optional[str] = None | |
| reviewer: str = "human-reviewer" | |
| action: Dict[str, Any] = Field(default_factory=dict) | |
| class ComputeUsage(VersionedEntity): | |
| usage_id: str = Field(default_factory=lambda: _id("compute")) | |
| stage: str = "" | |
| units: int = 0 | |
| run_id: str = "" | |
| evaluation_id: Optional[str] = None | |
| hardware: str = "cpu" | |
| class EvidencePackage(VersionedEntity): | |
| """Exportable evaluation artifact — Phase 1 stub with real fields when available.""" | |
| package_id: str = Field(default_factory=lambda: _id("evidence")) | |
| evaluation_id: str | |
| dataset_id: Optional[str] = None | |
| dataset_version: Optional[str] = None | |
| population_id: Optional[str] = None | |
| model_versions: List[str] = Field(default_factory=list) | |
| label_version: Optional[str] = None | |
| metrics: Dict[str, Any] = Field(default_factory=dict) | |
| thresholds: Dict[str, Any] = Field(default_factory=dict) | |
| gate_results: List[Dict[str, Any]] = Field(default_factory=list) | |
| compute_usage: List[Dict[str, Any]] = Field(default_factory=list) | |
| drill_down_ids: Dict[str, List[str]] = Field(default_factory=dict) | |
| placeholders: List[str] = Field(default_factory=list) | |