superb-ai-onprem 0.5.21__tar.gz → 0.6.0__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.
Potentially problematic release.
This version of superb-ai-onprem might be problematic. Click here for more details.
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/PKG-INFO +1 -1
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/__init__.py +40 -27
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/_version.py +3 -3
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/__init__.py +42 -4
- superb_ai_onprem-0.6.0/spb_onprem/data/params/data_list.py +215 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/queries.py +9 -1
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/service.py +4 -1
- superb_ai_onprem-0.6.0/spb_onprem/searches.py +76 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/service.py +3 -3
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/superb_ai_onprem.egg-info/PKG-INFO +1 -1
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/data/test_data_service.py +1 -1
- superb_ai_onprem-0.5.21/spb_onprem/data/params/data_list.py +0 -226
- superb_ai_onprem-0.5.21/spb_onprem/searches.py +0 -64
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/.claude/settings.local.json +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/.github/workflows/publish.yml +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/.github/workflows/tests.yml +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/.gitignore +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/LICENSE +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/Pipfile +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/Pipfile.lock +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/README.md +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/pyproject.toml +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/requirements-test.txt +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/setup.cfg +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/setup.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/entities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/entities/activity.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/entities/activity_history.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/activities.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/activity.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/create_activity.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/delete_activity.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/get_activity_history.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/start_activity.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/update_activity.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/params/update_activity_history.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/queries.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/activities/service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/base_model.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/base_service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/base_types.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/entities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/entities/base_content.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/entities/content.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/params/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/params/create.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/params/delete_content.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/params/get_download_url.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/queries.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/contents/service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/entities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/entities/annotation.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/entities/data.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/entities/data_meta.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/entities/data_slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/entities/frame.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/entities/prediction.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/entities/scene.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/enums/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/enums/data_meta_type.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/enums/data_status.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/enums/data_type.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/enums/scene_type.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/change_data_labeler.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/change_data_reviewer.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/change_data_status.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/create_data.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/data.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/delete_annotation_version.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/delete_data.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/delete_prediction.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/delete_scene.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/delete_slice_annotation_version.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/get_data_detail.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/get_evaluation_value_list.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/insert_annotation_version.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/insert_data_to_slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/insert_prediction.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/insert_scene.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/insert_slice_annotation_version.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/remove_data_from_slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/remove_data_meta.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/update_annotation.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/update_data.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/update_data_slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/update_frames.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/update_scene.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/update_slice_annotation.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/update_slice_annotation_version.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/data/params/upsert_data_meta.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/entities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/entities/dataset.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/params/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/params/create_dataset.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/params/dataset.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/params/datasets.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/params/delete_dataset.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/params/update_dataset.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/queries.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/datasets/service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/entities.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exceptions.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/entities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/entities/export.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/params/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/params/create_export.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/params/delete_export.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/params/export.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/params/exports.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/params/update_export.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/queries/get_exports.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/queries.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/exports/service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/inferences/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/inferences/service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/models/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/models/entities.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/models/params/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/models/params/delete_model.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/models/params/get_models.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/models/queries.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/models/service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/entities.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/params/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/params/create_prediction_set.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/params/delete_prediction_from_data.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/params/delete_prediction_set.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/params/get_prediction_set.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/params/get_prediction_sets.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/params/update_prediction_set_data_info.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/queries.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/predictions/service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/entities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/entities/slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/params/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/params/create_slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/params/delete_slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/params/slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/params/slices.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/params/update_slice.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/slices/queries.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/users/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/users/entities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/spb_onprem/users/entities/auth.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/superb_ai_onprem.egg-info/SOURCES.txt +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/superb_ai_onprem.egg-info/dependency_links.txt +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/superb_ai_onprem.egg-info/requires.txt +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/superb_ai_onprem.egg-info/top_level.txt +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/activities/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/activities/real_test.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/activities/test_get_activity_history.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/activities/test_params.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/activities/test_service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/contents/test_content_service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/data/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/datasets/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/datasets/test_dataset_service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/exports/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/exports/real_test.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/exports/test_entities.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/exports/test_integration.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/exports/test_params.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/exports/test_service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/models/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/models/test_model_service.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/predictions/__init__.py +0 -0
- {superb_ai_onprem-0.5.21 → superb_ai_onprem-0.6.0}/tests/predictions/test_prediction_service.py +0 -0
|
@@ -46,23 +46,29 @@ from .entities import (
|
|
|
46
46
|
|
|
47
47
|
# Filters
|
|
48
48
|
from .searches import (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
DateTimeRangeFilter,
|
|
54
|
-
UserFilter,
|
|
55
|
-
StringMetaFilter,
|
|
49
|
+
DateTimeRangeFilterOption,
|
|
50
|
+
UserFilterOption,
|
|
51
|
+
NumericRangeFilter,
|
|
52
|
+
GeoLocationFilter,
|
|
56
53
|
NumberMetaFilter,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
54
|
+
KeywordMetaFilter,
|
|
55
|
+
DateMetaFilter,
|
|
56
|
+
MiscMetaFilter,
|
|
57
|
+
MetaFilter,
|
|
58
|
+
CountFilter,
|
|
59
|
+
DistanceCountFilter,
|
|
60
|
+
FrameCountsFilter,
|
|
61
|
+
FrameFilterOptions,
|
|
62
|
+
DataFilterOptions,
|
|
63
|
+
DataSliceStatusFilterOption,
|
|
64
|
+
DataSliceUserFilterOption,
|
|
65
|
+
DataSliceTagsFilterOption,
|
|
66
|
+
DataSliceCommentFilterOption,
|
|
63
67
|
DataSlicePropertiesFilter,
|
|
64
68
|
DataSliceFilter,
|
|
65
|
-
|
|
69
|
+
FrameFilter,
|
|
70
|
+
DataFilter,
|
|
71
|
+
DataListFilter,
|
|
66
72
|
DatasetsFilter,
|
|
67
73
|
DatasetsFilterOptions,
|
|
68
74
|
SlicesFilter,
|
|
@@ -115,22 +121,29 @@ __all__ = (
|
|
|
115
121
|
"CommentStatus",
|
|
116
122
|
|
|
117
123
|
# Filters
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"DateTimeRangeFilter",
|
|
123
|
-
"UserFilter",
|
|
124
|
-
"StringMetaFilter",
|
|
124
|
+
"DateTimeRangeFilterOption",
|
|
125
|
+
"UserFilterOption",
|
|
126
|
+
"NumericRangeFilter",
|
|
127
|
+
"GeoLocationFilter",
|
|
125
128
|
"NumberMetaFilter",
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
"
|
|
129
|
+
"KeywordMetaFilter",
|
|
130
|
+
"DateMetaFilter",
|
|
131
|
+
"MiscMetaFilter",
|
|
132
|
+
"MetaFilter",
|
|
133
|
+
"CountFilter",
|
|
134
|
+
"DistanceCountFilter",
|
|
135
|
+
"FrameCountsFilter",
|
|
136
|
+
"FrameFilterOptions",
|
|
137
|
+
"DataFilterOptions",
|
|
138
|
+
"DataSliceStatusFilterOption",
|
|
139
|
+
"DataSliceUserFilterOption",
|
|
140
|
+
"DataSliceTagsFilterOption",
|
|
141
|
+
"DataSliceCommentFilterOption",
|
|
132
142
|
"DataSlicePropertiesFilter",
|
|
133
143
|
"DataSliceFilter",
|
|
144
|
+
"FrameFilter",
|
|
145
|
+
"DataFilter",
|
|
146
|
+
"DataListFilter",
|
|
134
147
|
"DatasetsFilter",
|
|
135
148
|
"DatasetsFilterOptions",
|
|
136
149
|
"SlicesFilter",
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.
|
|
32
|
-
__version_tuple__ = version_tuple = (0,
|
|
31
|
+
__version__ = version = '0.6.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 6, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g3b30fcc9c'
|
|
@@ -10,9 +10,28 @@ from .data import (
|
|
|
10
10
|
from .data_list import (
|
|
11
11
|
get_data_id_list_params,
|
|
12
12
|
get_data_list_params,
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
DateTimeRangeFilterOption,
|
|
14
|
+
UserFilterOption,
|
|
15
|
+
NumericRangeFilter,
|
|
16
|
+
GeoLocationFilter,
|
|
17
|
+
NumberMetaFilter,
|
|
18
|
+
KeywordMetaFilter,
|
|
19
|
+
DateMetaFilter,
|
|
20
|
+
MiscMetaFilter,
|
|
21
|
+
MetaFilter,
|
|
22
|
+
CountFilter,
|
|
23
|
+
DistanceCountFilter,
|
|
24
|
+
FrameCountsFilter,
|
|
25
|
+
FrameFilterOptions,
|
|
15
26
|
DataFilterOptions,
|
|
27
|
+
DataSliceStatusFilterOption,
|
|
28
|
+
DataSliceUserFilterOption,
|
|
29
|
+
DataSliceTagsFilterOption,
|
|
30
|
+
DataSliceCommentFilterOption,
|
|
31
|
+
DataSlicePropertiesFilter,
|
|
32
|
+
DataSliceFilter,
|
|
33
|
+
FrameFilter,
|
|
34
|
+
DataFilter,
|
|
16
35
|
DataListFilter,
|
|
17
36
|
)
|
|
18
37
|
from .get_data_detail import (
|
|
@@ -81,9 +100,28 @@ __all__ = [
|
|
|
81
100
|
"get_data_list_params",
|
|
82
101
|
"get_data_detail_params",
|
|
83
102
|
"get_evaluation_value_list_params",
|
|
84
|
-
"
|
|
85
|
-
"
|
|
103
|
+
"DateTimeRangeFilterOption",
|
|
104
|
+
"UserFilterOption",
|
|
105
|
+
"NumericRangeFilter",
|
|
106
|
+
"GeoLocationFilter",
|
|
107
|
+
"NumberMetaFilter",
|
|
108
|
+
"KeywordMetaFilter",
|
|
109
|
+
"DateMetaFilter",
|
|
110
|
+
"MiscMetaFilter",
|
|
111
|
+
"MetaFilter",
|
|
112
|
+
"CountFilter",
|
|
113
|
+
"DistanceCountFilter",
|
|
114
|
+
"FrameCountsFilter",
|
|
115
|
+
"FrameFilterOptions",
|
|
86
116
|
"DataFilterOptions",
|
|
117
|
+
"DataSliceStatusFilterOption",
|
|
118
|
+
"DataSliceUserFilterOption",
|
|
119
|
+
"DataSliceTagsFilterOption",
|
|
120
|
+
"DataSliceCommentFilterOption",
|
|
121
|
+
"DataSlicePropertiesFilter",
|
|
122
|
+
"DataSliceFilter",
|
|
123
|
+
"FrameFilter",
|
|
124
|
+
"DataFilter",
|
|
87
125
|
"DataListFilter",
|
|
88
126
|
"remove_data_from_slice_params",
|
|
89
127
|
"insert_data_to_slice_params",
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
from typing import Optional, List, Union, Literal
|
|
2
|
+
from spb_onprem.base_model import CustomBaseModel, Field
|
|
3
|
+
from spb_onprem.data.enums import DataType, DataStatus
|
|
4
|
+
from spb_onprem.exceptions import BadParameterError
|
|
5
|
+
|
|
6
|
+
# === 기본 필터 ===
|
|
7
|
+
class DateTimeRangeFilterOption(CustomBaseModel):
|
|
8
|
+
datetime_from: Optional[str] = Field(None, alias="from")
|
|
9
|
+
to: Optional[str] = None
|
|
10
|
+
equals: Optional[str] = None
|
|
11
|
+
|
|
12
|
+
class UserFilterOption(CustomBaseModel):
|
|
13
|
+
equals: Optional[str] = None
|
|
14
|
+
contains: Optional[str] = None
|
|
15
|
+
user_in: Optional[List[str]] = Field(None, alias="in")
|
|
16
|
+
exists: Optional[bool] = None
|
|
17
|
+
|
|
18
|
+
class NumericRangeFilter(CustomBaseModel):
|
|
19
|
+
gt: Optional[float] = None
|
|
20
|
+
gte: Optional[float] = None
|
|
21
|
+
lt: Optional[float] = None
|
|
22
|
+
lte: Optional[float] = None
|
|
23
|
+
equals: Optional[float] = None
|
|
24
|
+
|
|
25
|
+
class GeoLocationFilter(CustomBaseModel):
|
|
26
|
+
latitude: float
|
|
27
|
+
longitude: float
|
|
28
|
+
radius_in_meters: float = Field(..., alias="radiusInMeters")
|
|
29
|
+
|
|
30
|
+
# === Meta 필터 ===
|
|
31
|
+
class NumberMetaFilter(CustomBaseModel):
|
|
32
|
+
key: str
|
|
33
|
+
range: Optional[NumericRangeFilter] = None
|
|
34
|
+
|
|
35
|
+
class KeywordMetaFilter(CustomBaseModel):
|
|
36
|
+
key: str
|
|
37
|
+
equals: Optional[str] = None
|
|
38
|
+
contains: Optional[str] = None
|
|
39
|
+
keyword_in: Optional[List[str]] = Field(None, alias="in")
|
|
40
|
+
|
|
41
|
+
class DateMetaFilter(CustomBaseModel):
|
|
42
|
+
key: str
|
|
43
|
+
range: Optional[DateTimeRangeFilterOption] = None
|
|
44
|
+
|
|
45
|
+
class MiscMetaFilter(CustomBaseModel):
|
|
46
|
+
key: str
|
|
47
|
+
equals: str
|
|
48
|
+
|
|
49
|
+
class MetaFilter(CustomBaseModel):
|
|
50
|
+
num: Optional[List[NumberMetaFilter]] = None
|
|
51
|
+
keyword: Optional[List[KeywordMetaFilter]] = None
|
|
52
|
+
date: Optional[List[DateMetaFilter]] = None
|
|
53
|
+
misc: Optional[List[MiscMetaFilter]] = None
|
|
54
|
+
|
|
55
|
+
# === Count 필터 ===
|
|
56
|
+
class CountFilter(CustomBaseModel):
|
|
57
|
+
key: str
|
|
58
|
+
range: Optional[NumericRangeFilter] = None
|
|
59
|
+
|
|
60
|
+
class DistanceCountFilter(CustomBaseModel):
|
|
61
|
+
key: str
|
|
62
|
+
distance_range: NumericRangeFilter = Field(..., alias="distanceRange")
|
|
63
|
+
count_range: NumericRangeFilter = Field(..., alias="countRange")
|
|
64
|
+
|
|
65
|
+
class FrameCountsFilter(CustomBaseModel):
|
|
66
|
+
annotation_class: Optional[List[CountFilter]] = Field(None, alias="class")
|
|
67
|
+
group: Optional[List[CountFilter]] = None
|
|
68
|
+
sub_class: Optional[List[CountFilter]] = Field(None, alias="subClass")
|
|
69
|
+
distance: Optional[List[DistanceCountFilter]] = None
|
|
70
|
+
|
|
71
|
+
# === Frame 필터 ===
|
|
72
|
+
class FrameFilterOptions(CustomBaseModel):
|
|
73
|
+
index: Optional[NumericRangeFilter] = None
|
|
74
|
+
version_contains: Optional[str] = Field(None, alias="versionContains")
|
|
75
|
+
channels_in: Optional[List[str]] = Field(None, alias="channelsIn")
|
|
76
|
+
timestamp: Optional[DateTimeRangeFilterOption] = None
|
|
77
|
+
location: Optional[GeoLocationFilter] = None
|
|
78
|
+
meta: Optional[MetaFilter] = None
|
|
79
|
+
counts: Optional[FrameCountsFilter] = None
|
|
80
|
+
|
|
81
|
+
# === Data 필터 ===
|
|
82
|
+
class DataFilterOptions(CustomBaseModel):
|
|
83
|
+
id_in: Optional[List[str]] = Field(None, alias="idIn")
|
|
84
|
+
slice_id_in: Optional[List[str]] = Field(None, alias="sliceIdIn")
|
|
85
|
+
key_contains: Optional[str] = Field(None, alias="keyContains")
|
|
86
|
+
key_matches: Optional[str] = Field(None, alias="keyMatches")
|
|
87
|
+
sub_type_contains: Optional[str] = Field(None, alias="subTypeContains")
|
|
88
|
+
sub_type_matches: Optional[str] = Field(None, alias="subTypeMatches")
|
|
89
|
+
type_in: Optional[List[str]] = Field(None, alias="typeIn")
|
|
90
|
+
created_at: Optional[DateTimeRangeFilterOption] = Field(None, alias="createdAt")
|
|
91
|
+
updated_at: Optional[DateTimeRangeFilterOption] = Field(None, alias="updatedAt")
|
|
92
|
+
created_by: Optional[UserFilterOption] = Field(None, alias="createdBy")
|
|
93
|
+
updated_by: Optional[UserFilterOption] = Field(None, alias="updatedBy")
|
|
94
|
+
meta: Optional[MetaFilter] = None
|
|
95
|
+
assigned_to_user: Optional[str] = Field(None, alias="assignedToUser")
|
|
96
|
+
|
|
97
|
+
class DataSliceStatusFilterOption(CustomBaseModel):
|
|
98
|
+
status_in: Optional[List[str]] = Field(None, alias="in")
|
|
99
|
+
equals: Optional[str] = None
|
|
100
|
+
status_not_in: Optional[List[str]] = Field(None, alias="notIn")
|
|
101
|
+
|
|
102
|
+
class DataSliceUserFilterOption(CustomBaseModel):
|
|
103
|
+
equals: Optional[str] = None
|
|
104
|
+
user_in: Optional[List[str]] = Field(None, alias="in")
|
|
105
|
+
exists: Optional[bool] = None
|
|
106
|
+
|
|
107
|
+
class DataSliceTagsFilterOption(CustomBaseModel):
|
|
108
|
+
contains: Optional[str] = None
|
|
109
|
+
has_any: Optional[List[str]] = Field(None, alias="hasAny")
|
|
110
|
+
has_all: Optional[List[str]] = Field(None, alias="hasAll")
|
|
111
|
+
exists: Optional[bool] = None
|
|
112
|
+
|
|
113
|
+
class DataSliceCommentFilterOption(CustomBaseModel):
|
|
114
|
+
comment_contains: Optional[str] = Field(None, alias="commentContains")
|
|
115
|
+
category: Optional[str] = None
|
|
116
|
+
status: Optional[str] = None
|
|
117
|
+
created_by: Optional[UserFilterOption] = Field(None, alias="createdBy")
|
|
118
|
+
created_at: Optional[DateTimeRangeFilterOption] = Field(None, alias="createdAt")
|
|
119
|
+
exists: Optional[bool] = None
|
|
120
|
+
|
|
121
|
+
class DataSlicePropertiesFilter(CustomBaseModel):
|
|
122
|
+
status: Optional[DataSliceStatusFilterOption] = None
|
|
123
|
+
labeler: Optional[DataSliceUserFilterOption] = None
|
|
124
|
+
reviewer: Optional[DataSliceUserFilterOption] = None
|
|
125
|
+
tags: Optional[DataSliceTagsFilterOption] = None
|
|
126
|
+
status_changed_at: Optional[DateTimeRangeFilterOption] = Field(None, alias="statusChangedAt")
|
|
127
|
+
comments: Optional[DataSliceCommentFilterOption] = None
|
|
128
|
+
meta: Optional[MetaFilter] = None
|
|
129
|
+
assigned_to_user: Optional[str] = Field(None, alias="assignedToUser")
|
|
130
|
+
|
|
131
|
+
class DataSliceFilter(CustomBaseModel):
|
|
132
|
+
id: str
|
|
133
|
+
must_filter: Optional[DataSlicePropertiesFilter] = Field(None, alias="must")
|
|
134
|
+
not_filter: Optional[DataSlicePropertiesFilter] = Field(None, alias="not")
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class FrameFilter(CustomBaseModel):
|
|
138
|
+
conditions: Optional[FrameFilterOptions] = None
|
|
139
|
+
mode: Optional[Union[str, Literal["INDIVIDUAL_FRAMES", "DATA_SUMMARY"]]] = "INDIVIDUAL_FRAMES"
|
|
140
|
+
matching_frame_count: Optional[NumericRangeFilter] = Field(None, alias="matchingFrameCount")
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
class DataFilter(CustomBaseModel):
|
|
144
|
+
must_filter: Optional[DataFilterOptions] = Field(None, alias="must")
|
|
145
|
+
not_filter: Optional[DataFilterOptions] = Field(None, alias="not")
|
|
146
|
+
frames: Optional[List[FrameFilter]] = None
|
|
147
|
+
slice: Optional[DataSliceFilter] = None
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
class DataListFilter(CustomBaseModel):
|
|
151
|
+
must_filter: Optional[DataFilterOptions] = Field(None, alias="must")
|
|
152
|
+
not_filter: Optional[DataFilterOptions] = Field(None, alias="not")
|
|
153
|
+
slice: Optional[DataSliceFilter] = Field(None, alias="slice")
|
|
154
|
+
frames: Optional[List[FrameFilter]] = Field(None, alias="frames")
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def get_data_id_list_params(
|
|
158
|
+
dataset_id: str,
|
|
159
|
+
data_filter: Optional[DataListFilter] = None,
|
|
160
|
+
cursor: Optional[str] = None,
|
|
161
|
+
length: Optional[int] = 50,
|
|
162
|
+
):
|
|
163
|
+
"""Make the variables for the dataIdList query.
|
|
164
|
+
|
|
165
|
+
Args:
|
|
166
|
+
dataset_id (str): The dataset id.
|
|
167
|
+
data_filter (Optional[DataListFilter], optional): The filter for the data list. Defaults to None.
|
|
168
|
+
cursor (Optional[str], optional): The cursor for the data list. Defaults to None.
|
|
169
|
+
length (Optional[int], optional): The length of the data list. Defaults to 50.
|
|
170
|
+
|
|
171
|
+
Raises:
|
|
172
|
+
BadParameterError: The maximum length is 200.
|
|
173
|
+
|
|
174
|
+
Returns:
|
|
175
|
+
dict: The variables for the dataIdList query.
|
|
176
|
+
"""
|
|
177
|
+
if length > 200:
|
|
178
|
+
raise BadParameterError("The maximum length is 200.")
|
|
179
|
+
return {
|
|
180
|
+
"dataset_id": dataset_id,
|
|
181
|
+
"filter": data_filter.model_dump(by_alias=True, exclude_unset=True) if data_filter else None,
|
|
182
|
+
"cursor": cursor,
|
|
183
|
+
"length": length
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
def get_data_list_params(
|
|
188
|
+
dataset_id: str,
|
|
189
|
+
data_filter: Optional[DataListFilter] = None,
|
|
190
|
+
cursor: Optional[str] = None,
|
|
191
|
+
length: Optional[int] = 10,
|
|
192
|
+
):
|
|
193
|
+
"""Make the variables for the dataList query.
|
|
194
|
+
|
|
195
|
+
Args:
|
|
196
|
+
dataset_id (str): The dataset id.
|
|
197
|
+
data_filter (Optional[DataListFilter], optional): The filter for the data list. Defaults to None.
|
|
198
|
+
cursor (Optional[str], optional): The cursor for the data list. Defaults to None.
|
|
199
|
+
length (Optional[int], optional): The length of the data list. Defaults to 10.
|
|
200
|
+
|
|
201
|
+
Raises:
|
|
202
|
+
BadParameterError: The maximum length is 50.
|
|
203
|
+
|
|
204
|
+
Returns:
|
|
205
|
+
dict: The variables for the dataList query.
|
|
206
|
+
"""
|
|
207
|
+
|
|
208
|
+
if length > 50:
|
|
209
|
+
raise BadParameterError("The maximum length is 50.")
|
|
210
|
+
return {
|
|
211
|
+
"dataset_id": dataset_id,
|
|
212
|
+
"filter": data_filter.model_dump(by_alias=True, exclude_unset=True) if data_filter else None,
|
|
213
|
+
"cursor": cursor,
|
|
214
|
+
"length": length
|
|
215
|
+
}
|
|
@@ -31,6 +31,10 @@ class Schemas:
|
|
|
31
31
|
data {
|
|
32
32
|
id
|
|
33
33
|
}
|
|
34
|
+
selectedFrames {
|
|
35
|
+
id
|
|
36
|
+
selectedFrameIndex
|
|
37
|
+
}
|
|
34
38
|
next
|
|
35
39
|
totalCount
|
|
36
40
|
'''
|
|
@@ -254,6 +258,10 @@ class Queries():
|
|
|
254
258
|
length: $length
|
|
255
259
|
) {{
|
|
256
260
|
{Schemas.DATA_PAGE}
|
|
261
|
+
selectedFrames {{
|
|
262
|
+
dataId
|
|
263
|
+
selectedFrameIndex
|
|
264
|
+
}}
|
|
257
265
|
next
|
|
258
266
|
totalCount
|
|
259
267
|
}}
|
|
@@ -623,7 +631,7 @@ class Queries():
|
|
|
623
631
|
GET_DETAIL = {
|
|
624
632
|
"name": "data",
|
|
625
633
|
"query": f'''
|
|
626
|
-
query GetDataDetail($datasetId:
|
|
634
|
+
query GetDataDetail($datasetId: ID!, $id: ID!) {{
|
|
627
635
|
data(datasetId: $datasetId, id: $id) {{
|
|
628
636
|
{Schemas.DATA_DETAIL}
|
|
629
637
|
}}
|
|
@@ -121,10 +121,13 @@ class DataService(BaseService):
|
|
|
121
121
|
)
|
|
122
122
|
data_list = response.get("data", [])
|
|
123
123
|
data = [Data.model_validate(data_dict) for data_dict in data_list]
|
|
124
|
+
|
|
125
|
+
selected_frames = response.get("selectedFrames", [])
|
|
126
|
+
|
|
124
127
|
return (
|
|
125
128
|
data,
|
|
126
129
|
response.get("next", None),
|
|
127
|
-
response.get("totalCount", 0)
|
|
130
|
+
response.get("totalCount", 0),
|
|
128
131
|
)
|
|
129
132
|
|
|
130
133
|
def get_data_id_list(
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Filters
|
|
2
|
+
from .data.params.data_list import (
|
|
3
|
+
DateTimeRangeFilterOption,
|
|
4
|
+
UserFilterOption,
|
|
5
|
+
NumericRangeFilter,
|
|
6
|
+
GeoLocationFilter,
|
|
7
|
+
NumberMetaFilter,
|
|
8
|
+
KeywordMetaFilter,
|
|
9
|
+
DateMetaFilter,
|
|
10
|
+
MiscMetaFilter,
|
|
11
|
+
MetaFilter,
|
|
12
|
+
CountFilter,
|
|
13
|
+
DistanceCountFilter,
|
|
14
|
+
FrameCountsFilter,
|
|
15
|
+
FrameFilterOptions,
|
|
16
|
+
DataFilterOptions,
|
|
17
|
+
DataSliceStatusFilterOption,
|
|
18
|
+
DataSliceUserFilterOption,
|
|
19
|
+
DataSliceTagsFilterOption,
|
|
20
|
+
DataSliceCommentFilterOption,
|
|
21
|
+
DataSlicePropertiesFilter,
|
|
22
|
+
DataSliceFilter,
|
|
23
|
+
FrameFilter,
|
|
24
|
+
DataFilter,
|
|
25
|
+
DataListFilter,
|
|
26
|
+
)
|
|
27
|
+
from .datasets.params.datasets import (
|
|
28
|
+
DatasetsFilter,
|
|
29
|
+
DatasetsFilterOptions,
|
|
30
|
+
)
|
|
31
|
+
from .slices.params.slices import (
|
|
32
|
+
SlicesFilterOptions,
|
|
33
|
+
SlicesFilter,
|
|
34
|
+
)
|
|
35
|
+
from .activities.params.activities import (
|
|
36
|
+
ActivitiesFilter,
|
|
37
|
+
ActivitiesFilterOptions,
|
|
38
|
+
)
|
|
39
|
+
from .exports.params.exports import (
|
|
40
|
+
ExportFilter,
|
|
41
|
+
ExportFilterOptions,
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
__all__ = [
|
|
45
|
+
"DateTimeRangeFilterOption",
|
|
46
|
+
"UserFilterOption",
|
|
47
|
+
"NumericRangeFilter",
|
|
48
|
+
"GeoLocationFilter",
|
|
49
|
+
"NumberMetaFilter",
|
|
50
|
+
"KeywordMetaFilter",
|
|
51
|
+
"DateMetaFilter",
|
|
52
|
+
"MiscMetaFilter",
|
|
53
|
+
"MetaFilter",
|
|
54
|
+
"CountFilter",
|
|
55
|
+
"DistanceCountFilter",
|
|
56
|
+
"FrameCountsFilter",
|
|
57
|
+
"FrameFilterOptions",
|
|
58
|
+
"DataFilterOptions",
|
|
59
|
+
"DataSliceStatusFilterOption",
|
|
60
|
+
"DataSliceUserFilterOption",
|
|
61
|
+
"DataSliceTagsFilterOption",
|
|
62
|
+
"DataSliceCommentFilterOption",
|
|
63
|
+
"DataSlicePropertiesFilter",
|
|
64
|
+
"DataSliceFilter",
|
|
65
|
+
"FrameFilter",
|
|
66
|
+
"DataFilter",
|
|
67
|
+
"DataListFilter",
|
|
68
|
+
"DatasetsFilter",
|
|
69
|
+
"DatasetsFilterOptions",
|
|
70
|
+
"SlicesFilter",
|
|
71
|
+
"SlicesFilterOptions",
|
|
72
|
+
"ActivitiesFilter",
|
|
73
|
+
"ActivitiesFilterOptions",
|
|
74
|
+
"ExportFilter",
|
|
75
|
+
"ExportFilterOptions",
|
|
76
|
+
]
|
|
@@ -61,9 +61,9 @@ class SliceService(BaseService):
|
|
|
61
61
|
print(f"[DEBUG] Response type: {type(response)}")
|
|
62
62
|
print(f"[DEBUG] Response keys: {response.keys() if isinstance(response, dict) else 'Not a dict'}")
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
print(f"[DEBUG]
|
|
66
|
-
return Slice.model_validate(
|
|
64
|
+
# response는 이미 createSlice 객체 자체 (request_gql이 data.createSlice를 추출함)
|
|
65
|
+
print(f"[DEBUG] Using response directly as slice_dict: {response}")
|
|
66
|
+
return Slice.model_validate(response)
|
|
67
67
|
|
|
68
68
|
def get_slices(
|
|
69
69
|
self,
|
|
@@ -125,7 +125,7 @@ class TestDataService:
|
|
|
125
125
|
query_structure = Queries.GET_DETAIL
|
|
126
126
|
|
|
127
127
|
# Assert
|
|
128
|
-
assert query_structure["name"] == "
|
|
128
|
+
assert query_structure["name"] == "data"
|
|
129
129
|
assert "query GetDataDetail($datasetId: ID!, $id: ID!)" in query_structure["query"]
|
|
130
130
|
assert "data(datasetId: $datasetId, id: $id)" in query_structure["query"]
|
|
131
131
|
assert callable(query_structure["variables"])
|