x4d-devkit 0.55.0rc2__tar.gz → 0.55.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {x4d_devkit-0.55.0rc2/x4d_devkit.egg-info → x4d_devkit-0.55.1}/PKG-INFO +1 -1
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/pyproject.toml +1 -1
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_sdk_api.py +1 -1
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_work_session.py +21 -1
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/materialize.py +8 -1
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1/x4d_devkit.egg-info}/PKG-INFO +1 -1
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/LICENSE +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/README.md +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/setup.cfg +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_accounts.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_annotation_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_annotation_document_hash.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_annotation_reference.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_assets_client.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_boundary.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_box.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_build_info.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_category_audit.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_clean_basemap.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_clean_basemap_client.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_cli_auth.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_client_json_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_client_projects.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_clip_archives.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_contract_validation.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_coordinate_frames.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_current_state.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_current_state_identity_consumers_example.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_dataset_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_dataset_identity.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_detection_eval.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_evaluate.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_export_bundle.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_clip.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_conditional_rules.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_enum_set.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_export.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_geometry.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_groups.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_preannotation.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_reference.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_review.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_schema_migration.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_schema_registry_client.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_schema_upgrade.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_source.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_image_work_session.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_inference_input.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_inference_schemas.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_inference_service.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_label_schemas.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_lidar_materialization.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_loader.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_matching.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_metrics.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_models.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_parse_equivalence.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_platform_pose.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_preannotation_client.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_project_discovery.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_reconstruction_client.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_release_gate.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_roadmark_preview.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_semantic_scene_authoring.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_semantic_scene_client.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_semantic_scene_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_semantic_scene_independent.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_semantic_scene_native_clip.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_source_attributes.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_source_content.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_time_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_token.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_tracking_eval.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_training_identity.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_transform.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_transform_chain.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_validation.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_vector_map.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_vector_map_geometry.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_vector_map_session.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_work_session_validation_reuse.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/__init__.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/_image_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/accounts.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/annotation_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/annotation_reference.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/audit.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/build_info.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/clean_basemap.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/cli.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/__init__.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/_origin.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/accounts.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/annotation_reference.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/assets.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/bags.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/capabilities.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/checkpoints.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/clean_basemap.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/client.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/clip_work_sessions.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/clips.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/dataset_identity.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/image_clips.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/image_exports.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/image_preannotations.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/image_review.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/image_schemas.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/image_work_sessions.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/label_schemas.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/preannotation.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/projects.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/reconstruction.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/semantic_scene.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/semantic_scene_authoring.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/services.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/client/test_sets.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/consumer_identity.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/coordinate_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/core/__init__.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/core/loader.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/core/models.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/core/token.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/core/transform.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/current_state.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/dataset_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/dataset_identity.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/eval/__init__.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/eval/api.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/eval/box.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/eval/detection.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/eval/matching.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/eval/metrics.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/eval/tracking.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/export_bundle.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_clip.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_export.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_geometry.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_groups.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_preannotation.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_reference.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_review.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_schema.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_schema_migration.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_schema_upgrade.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_source.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/image_work_session.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/inference/__init__.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/inference/input.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/inference/models.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/inference/schemas.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/inference/service.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/inference/tasks.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/json_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/label_schema.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/lidar_materialization.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/project_discovery.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/roadmark_preview.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/semantic_scene_authoring.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/semantic_scene_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/source_content.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/time_contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/training_identity.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/validation/__init__.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/validation/contract.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/validation/platform_pose.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/validation/report.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/validation/validator.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/vector_map.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/vector_map_geometry.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit/work_session.py +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit.egg-info/SOURCES.txt +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit.egg-info/dependency_links.txt +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit.egg-info/entry_points.txt +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit.egg-info/requires.txt +0 -0
- {x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/x4d_devkit.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "x4d-devkit"
|
|
7
|
-
version = "0.55.
|
|
7
|
+
version = "0.55.1"
|
|
8
8
|
description = "Official X-4D external SDK and CLI for datasets, platform APIs, training bridges, and automation"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -11,7 +11,7 @@ from x4d_devkit.eval.matching import MetricData
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def test_package_version_is_current_release():
|
|
14
|
-
assert x4d_devkit.__version__ == "0.55.
|
|
14
|
+
assert x4d_devkit.__version__ == "0.55.1"
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
def test_loader_exposes_and_enforces_only_current_schema(tmp_path):
|
|
@@ -723,11 +723,12 @@ def test_invalid_native_projection_never_publishes_cache_identity(
|
|
|
723
723
|
):
|
|
724
724
|
original = materialize_module._write_component_tables
|
|
725
725
|
|
|
726
|
-
def write_invalid_projection(clip_dir, tables, *, selected_components):
|
|
726
|
+
def write_invalid_projection(clip_dir, tables, *, selected_components, complete):
|
|
727
727
|
original(
|
|
728
728
|
clip_dir,
|
|
729
729
|
tables,
|
|
730
730
|
selected_components=selected_components,
|
|
731
|
+
complete=complete,
|
|
731
732
|
)
|
|
732
733
|
(clip_dir / "ego_pose.json").write_text("[]", encoding="utf-8")
|
|
733
734
|
|
|
@@ -756,6 +757,25 @@ def test_materialize_rejects_malformed_completed_cache_identity(tmp_path):
|
|
|
756
757
|
materialize_work_session_clip(_manifest(), output_dir=tmp_path)
|
|
757
758
|
|
|
758
759
|
|
|
760
|
+
def test_complete_materialization_replaces_older_contract_meta(tmp_path):
|
|
761
|
+
# An older cache keeps retired meta fields (Dataset 0.17 vehicle_id).
|
|
762
|
+
(tmp_path / "meta.json").write_text(
|
|
763
|
+
json.dumps({"clip_id": "stale", "schema_version": "0.17", "vehicle_id": "G150"})
|
|
764
|
+
)
|
|
765
|
+
result = materialize_work_session_clip(
|
|
766
|
+
_manifest(),
|
|
767
|
+
output_dir=tmp_path,
|
|
768
|
+
api_url="http://x4d.local",
|
|
769
|
+
client=_FakeX4DClient(),
|
|
770
|
+
workers=1,
|
|
771
|
+
)
|
|
772
|
+
assert result["errors"] == []
|
|
773
|
+
meta = json.loads((tmp_path / "meta.json").read_text())
|
|
774
|
+
assert "vehicle_id" not in meta
|
|
775
|
+
assert meta["schema_version"] != "0.17"
|
|
776
|
+
assert validate_clip(tmp_path).ok
|
|
777
|
+
|
|
778
|
+
|
|
759
779
|
def test_materialize_rejects_legacy_root_occ(tmp_path):
|
|
760
780
|
(tmp_path / "occ").mkdir()
|
|
761
781
|
|
|
@@ -428,6 +428,7 @@ def materialize_work_session_clip(
|
|
|
428
428
|
clip_dir,
|
|
429
429
|
tables,
|
|
430
430
|
selected_components=selected_components,
|
|
431
|
+
complete=complete_request,
|
|
431
432
|
)
|
|
432
433
|
|
|
433
434
|
selected_sample_data = tables["sample_data.json"]
|
|
@@ -929,11 +930,17 @@ def _write_component_tables(
|
|
|
929
930
|
tables: dict[str, Any],
|
|
930
931
|
*,
|
|
931
932
|
selected_components: frozenset[str],
|
|
933
|
+
complete: bool = False,
|
|
932
934
|
) -> None:
|
|
933
935
|
target_meta = tables["meta.json"]
|
|
934
936
|
source_components = {"samples", "sweeps"}
|
|
935
937
|
meta_components = {*source_components, "label_schema", "business_metadata"}
|
|
936
|
-
if
|
|
938
|
+
if complete:
|
|
939
|
+
# A complete materialization owns every metadata field: write the
|
|
940
|
+
# target projection and never parse a previous (possibly older
|
|
941
|
+
# contract) meta.json, whose retired fields would fail validation.
|
|
942
|
+
_write_json(clip_dir / "meta.json", dict(target_meta))
|
|
943
|
+
elif selected_components & meta_components:
|
|
937
944
|
meta_path = clip_dir / "meta.json"
|
|
938
945
|
if meta_path.exists():
|
|
939
946
|
current_meta = load_i_json(meta_path)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{x4d_devkit-0.55.0rc2 → x4d_devkit-0.55.1}/tests/test_current_state_identity_consumers_example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|