opensportslib 0.3.0.dev2__tar.gz → 0.3.0.dev3__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.
- {opensportslib-0.3.0.dev2/opensportslib.egg-info → opensportslib-0.3.0.dev3}/PKG-INFO +1 -1
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/loader.py +42 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3/opensportslib.egg-info}/PKG-INFO +1 -1
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/pyproject.toml +1 -1
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_config_architecture.py +15 -1
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_config_split_override_sync.py +8 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/LICENSE +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/LICENSE-COMMERCIAL +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/MANIFEST.in +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/README.md +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/examples/quickstart/basic_classification.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/examples/quickstart/basic_localization.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/examples/quickstart/basic_vqa.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/base_task_model.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/classification.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/localization.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/vqa.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/cli.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/classification/default.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/classification/sngar_frames.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/classification/sngar_tracking.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/classification/video.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/default.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/calf_resnetpca512.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/default.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_distance.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_distance_angle.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_distance_speed.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_distance_speed_angle.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_rule.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/netvladpp_resnetpca512.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/video_dali.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/video_ocv.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/default.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen3_vl_native.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen_lora.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen_sngar_frames.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/xvars.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/accessors.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/conflicts.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/migrate.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/migrations/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/migrations/legacy_to_canonical.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/runtime_adapter.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schema.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schemas/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schemas/schema_canonical.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schemas/schema_legacy.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/validate.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/builder.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/calf.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/ce.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/combine.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/nll.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/optimizer/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/optimizer/builder.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/sampler/weighted_sampler.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/scheduler/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/scheduler/builder.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/classification_trainer.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/localization_trainer.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/vqa_trainer.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/checkpoint.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/config.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/config_normalize.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/data.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/ddp.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/default_args.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/hf_runtime.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/lightning.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/load_annotations.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/seed.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/video_processing.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/wandb.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/builder.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/classification_dataset.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/localization_dataset.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/h5_tracking.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/tracking.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/vqa_dataset.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/classification.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization-e2e-ocv.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization-json_calf_resnetpca512.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization-json_netvlad++_resnetpca512.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/sngar-frames.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/sngar-tracking.yaml +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/metrics/classification_metric.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/metrics/localization_metric.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/metrics/vqa_metric.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/backbones/builder.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/contextaware.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/e2e.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/learnablepooling.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/qwen_vl_native.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/qwen_xvars.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/rule_based.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/tracking.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/vars.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/video.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/video_chatgpt_compat.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/video_mae.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/xvars_videochatgpt.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/builder.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/heads/builder.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/neck/builder.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/common.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/asformer.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/calf.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/gsm.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/gtad.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/tsm.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/litebase.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/modules.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/shift.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/utils.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/vqa_prediction_priors.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/vqa_prompting.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/xvars_clip_index.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/setup/setup.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/__init__.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/_common.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/hf_transfer.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/osl_json_to_parquet.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/parquet_to_osl_json.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/SOURCES.txt +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/dependency_links.txt +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/entry_points.txt +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/requires.txt +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/top_level.txt +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/scripts/run_h5_header_rule_inference.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/setup.cfg +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/conftest.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_classification_dataset_paths.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_classification_trainer_dataloader.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_config_utils_smoke.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_conversion_tools.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_extract_xvars_features.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_h5_header_rule_spotter.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_h5_tracking_dataset.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_hf_transfer_tools.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_localization_dali_filenames.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_package_smoke.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_pretrained_config_merge_policy.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_public_apis_smoke.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_setup_cli.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_subset_train_infer_integration.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_task_model_api_contract.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_api.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_metrics_semantic.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_qwen_xvars.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_training_lora.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_xvars_videochatgpt.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_sn_vqa_2026_vqa.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_soccernet_gar.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_soccernet_gar_action_spotting.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_soccernet_gar_vqa.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_xvars_indexes.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/extract_xvars_clip_features.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/osl_json_to_parquet_webdataset.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/parquet_webdataset_to_osl_json.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/download/download_hf_repo.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/download/download_osl_hf.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/download/upload_osl_hf.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/training/classification.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/training/localization.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/training/vqa.py +0 -0
- {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/upload/upload_model_hf.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opensportslib
|
|
3
|
-
Version: 0.3.0.
|
|
3
|
+
Version: 0.3.0.dev3
|
|
4
4
|
Summary: OpenSportsLib is the professional library, designed for advanced video understanding in sports. It provides state-of-the-art tools for action recognition, spotting, retrieval, and captioning, making it ideal for researchers, analysts, and developers working with sports video data.
|
|
5
5
|
Author: Jeet Vora
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -20,6 +20,10 @@ from .runtime_adapter import maybe_namespace, namespace_to_plain_dict
|
|
|
20
20
|
_YAML_SUFFIXES = {".yaml", ".yml"}
|
|
21
21
|
_TASK_DIRS = {"classification", "localization", "vqa"}
|
|
22
22
|
_INTERPOLATION_RE = re.compile(r"\$\{([^}]+)\}")
|
|
23
|
+
_CPU_OPENCV_SPLIT_TYPES = {
|
|
24
|
+
"VideoGameWithDali": "VideoGameWithOpencv",
|
|
25
|
+
"VideoGameWithDaliVideo": "VideoGameWithOpencvVideo",
|
|
26
|
+
}
|
|
23
27
|
|
|
24
28
|
|
|
25
29
|
def _load_single_yaml(path: str | Path) -> Any:
|
|
@@ -131,6 +135,42 @@ def load_raw_config(path: str | Path) -> dict[str, Any]:
|
|
|
131
135
|
raise ValueError("Unsupported config format. Use YAML or JSON.")
|
|
132
136
|
|
|
133
137
|
|
|
138
|
+
def _normalize_cpu_loader_backend(payload: dict[str, Any]) -> dict[str, Any]:
|
|
139
|
+
system = payload.get("SYSTEM", {})
|
|
140
|
+
if not isinstance(system, dict):
|
|
141
|
+
return payload
|
|
142
|
+
|
|
143
|
+
if str(system.get("device", "auto")).lower() != "cpu":
|
|
144
|
+
return payload
|
|
145
|
+
|
|
146
|
+
data = payload.get("DATA", {})
|
|
147
|
+
if not isinstance(data, dict):
|
|
148
|
+
return payload
|
|
149
|
+
|
|
150
|
+
common = data.get("common", {})
|
|
151
|
+
if not isinstance(common, dict):
|
|
152
|
+
return payload
|
|
153
|
+
|
|
154
|
+
runtime = common.get("runtime", {})
|
|
155
|
+
if not isinstance(runtime, dict):
|
|
156
|
+
runtime = {}
|
|
157
|
+
common["runtime"] = runtime
|
|
158
|
+
runtime["loader_backend"] = "opencv"
|
|
159
|
+
|
|
160
|
+
splits = common.get("splits", {})
|
|
161
|
+
if not isinstance(splits, dict):
|
|
162
|
+
return payload
|
|
163
|
+
|
|
164
|
+
for split_cfg in splits.values():
|
|
165
|
+
if not isinstance(split_cfg, dict):
|
|
166
|
+
continue
|
|
167
|
+
split_type = split_cfg.get("type")
|
|
168
|
+
if split_type in _CPU_OPENCV_SPLIT_TYPES:
|
|
169
|
+
split_cfg["type"] = _CPU_OPENCV_SPLIT_TYPES[split_type]
|
|
170
|
+
|
|
171
|
+
return payload
|
|
172
|
+
|
|
173
|
+
|
|
134
174
|
def load_config(
|
|
135
175
|
config_path: str | Path,
|
|
136
176
|
*,
|
|
@@ -139,6 +179,7 @@ def load_config(
|
|
|
139
179
|
) -> Any:
|
|
140
180
|
raw = load_raw_config(config_path)
|
|
141
181
|
canonical = migrate_config(raw, as_namespace=False)
|
|
182
|
+
canonical = _normalize_cpu_loader_backend(canonical)
|
|
142
183
|
assert_no_legacy_aliases(canonical)
|
|
143
184
|
|
|
144
185
|
if validate:
|
|
@@ -168,6 +209,7 @@ def resolve_config(
|
|
|
168
209
|
) -> Any:
|
|
169
210
|
payload = namespace_to_plain_dict(config)
|
|
170
211
|
canonical = migrate_config(payload, as_namespace=False)
|
|
212
|
+
canonical = _normalize_cpu_loader_backend(canonical)
|
|
171
213
|
assert_no_legacy_aliases(canonical)
|
|
172
214
|
return maybe_namespace(canonical, as_namespace=as_namespace)
|
|
173
215
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opensportslib
|
|
3
|
-
Version: 0.3.0.
|
|
3
|
+
Version: 0.3.0.dev3
|
|
4
4
|
Summary: OpenSportsLib is the professional library, designed for advanced video understanding in sports. It provides state-of-the-art tools for action recognition, spotting, retrieval, and captioning, making it ideal for researchers, analysts, and developers working with sports video data.
|
|
5
5
|
Author: Jeet Vora
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "opensportslib"
|
|
7
|
-
version = "0.3.0.
|
|
7
|
+
version = "0.3.0.dev3"
|
|
8
8
|
description = "OpenSportsLib is the professional library, designed for advanced video understanding in sports. It provides state-of-the-art tools for action recognition, spotting, retrieval, and captioning, making it ideal for researchers, analysts, and developers working with sports video data."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -2,7 +2,7 @@ from pathlib import Path
|
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
4
|
|
|
5
|
-
from opensportslib.core.config import load_config, migrate_config, validate_config
|
|
5
|
+
from opensportslib.core.config import load_config, migrate_config, resolve_config, validate_config
|
|
6
6
|
from opensportslib.core.config.accessors import (
|
|
7
7
|
get_vqa_xvars_feature_mode,
|
|
8
8
|
get_xvars_feature_token_len_for_mode,
|
|
@@ -85,6 +85,20 @@ def test_localization_experiment_composes_all_layers():
|
|
|
85
85
|
assert cfg["MODEL"]["components"]["video_encoder"]["source"]["name"] == "rny008_gsm"
|
|
86
86
|
|
|
87
87
|
|
|
88
|
+
def test_resolve_config_cpu_normalizes_canonical_dali_localization_config():
|
|
89
|
+
cfg = load_config("opensportslib/configs/localization/video_dali.yaml", as_namespace=False)
|
|
90
|
+
cfg["SYSTEM"]["device"] = "cpu"
|
|
91
|
+
|
|
92
|
+
resolved = migrate_config(cfg, as_namespace=False)
|
|
93
|
+
resolved = validate_config(resolved)
|
|
94
|
+
resolved = resolve_config(resolved, as_namespace=False)
|
|
95
|
+
|
|
96
|
+
assert resolved["DATA"]["common"]["runtime"]["loader_backend"] == "opencv"
|
|
97
|
+
assert resolved["DATA"]["common"]["splits"]["train"]["type"] == "VideoGameWithOpencv"
|
|
98
|
+
assert resolved["DATA"]["common"]["splits"]["valid"]["type"] == "VideoGameWithOpencv"
|
|
99
|
+
assert resolved["DATA"]["common"]["splits"]["test"]["type"] == "VideoGameWithOpencvVideo"
|
|
100
|
+
|
|
101
|
+
|
|
88
102
|
def test_vqa_xvars_experiment_composes_all_layers():
|
|
89
103
|
cfg = load_config("opensportslib/configs/vqa/xvars.yaml", as_namespace=False)
|
|
90
104
|
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_config_split_override_sync.py
RENAMED
|
@@ -35,3 +35,11 @@ def test_resolve_config_keeps_canonical_split_sources():
|
|
|
35
35
|
cfg = resolve_config(migrate_config(_legacy_localization_cfg(), as_namespace=False), as_namespace=False)
|
|
36
36
|
assert cfg["DATA"]["common"]["splits"]["valid"]["annotation_path"].endswith("valid.json")
|
|
37
37
|
assert cfg["DATA"]["common"]["splits"]["valid_data_frames"]["annotation_path"].endswith("valid.json")
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def test_resolve_config_cpu_forces_opencv_backend_and_split_types():
|
|
41
|
+
cfg = resolve_config(migrate_config(_legacy_localization_cfg(), as_namespace=False), as_namespace=False)
|
|
42
|
+
assert cfg["DATA"]["common"]["runtime"]["loader_backend"] == "opencv"
|
|
43
|
+
assert cfg["DATA"]["common"]["splits"]["train"]["type"] == "VideoGameWithOpencv"
|
|
44
|
+
assert cfg["DATA"]["common"]["splits"]["valid"]["type"] == "VideoGameWithOpencv"
|
|
45
|
+
assert cfg["DATA"]["common"]["splits"]["valid_data_frames"]["type"] == "VideoGameWithOpencvVideo"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/examples/quickstart/basic_classification.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/examples/quickstart/basic_localization.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
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/default.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen3_vl_native.yaml
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen_lora.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/accessors.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/conflicts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/runtime_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schemas/__init__.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
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/optimizer/__init__.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/optimizer/builder.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/sampler/weighted_sampler.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/scheduler/__init__.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/scheduler/builder.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/vqa_trainer.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/checkpoint.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/config_normalize.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/default_args.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/hf_runtime.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/load_annotations.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/video_processing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/localization_dataset.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/__init__.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/h5_tracking.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/tracking.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization.yaml
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/sngar-frames.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/metrics/classification_metric.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/metrics/localization_metric.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/backbones/builder.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/contextaware.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/learnablepooling.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/qwen_vl_native.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/qwen_xvars.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/rule_based.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/video_mae.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/__init__.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/asformer.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/calf.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/gsm.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/gtad.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/tsm.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/litebase.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/vqa_prompting.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/xvars_clip_index.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/osl_json_to_parquet.py
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/parquet_to_osl_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/scripts/run_h5_header_rule_inference.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_classification_dataset_paths.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
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_localization_dali_filenames.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_pretrained_config_merge_policy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_subset_train_infer_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_sn_vqa_2026_vqa.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_soccernet_gar_vqa.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/extract_xvars_clip_features.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
|