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.
Files changed (179) hide show
  1. {opensportslib-0.3.0.dev2/opensportslib.egg-info → opensportslib-0.3.0.dev3}/PKG-INFO +1 -1
  2. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/loader.py +42 -0
  3. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3/opensportslib.egg-info}/PKG-INFO +1 -1
  4. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/pyproject.toml +1 -1
  5. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_config_architecture.py +15 -1
  6. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_config_split_override_sync.py +8 -0
  7. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/LICENSE +0 -0
  8. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/LICENSE-COMMERCIAL +0 -0
  9. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/MANIFEST.in +0 -0
  10. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/README.md +0 -0
  11. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/examples/quickstart/basic_classification.py +0 -0
  12. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/examples/quickstart/basic_localization.py +0 -0
  13. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/examples/quickstart/basic_vqa.py +0 -0
  14. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/__init__.py +0 -0
  15. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/__init__.py +0 -0
  16. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/base_task_model.py +0 -0
  17. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/classification.py +0 -0
  18. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/localization.py +0 -0
  19. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/apis/vqa.py +0 -0
  20. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/cli.py +0 -0
  21. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/classification/default.yaml +0 -0
  22. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/classification/sngar_frames.yaml +0 -0
  23. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/classification/sngar_tracking.yaml +0 -0
  24. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/classification/video.yaml +0 -0
  25. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/default.yaml +0 -0
  26. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/calf_resnetpca512.yaml +0 -0
  27. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/default.yaml +0 -0
  28. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_distance.yaml +0 -0
  29. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_distance_angle.yaml +0 -0
  30. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_distance_speed.yaml +0 -0
  31. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_distance_speed_angle.yaml +0 -0
  32. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/h5_header_rule.yaml +0 -0
  33. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/netvladpp_resnetpca512.yaml +0 -0
  34. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/video_dali.yaml +0 -0
  35. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/localization/video_ocv.yaml +0 -0
  36. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/default.yaml +0 -0
  37. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen.yaml +0 -0
  38. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen3_vl_native.yaml +0 -0
  39. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen_lora.yaml +0 -0
  40. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/qwen_sngar_frames.yaml +0 -0
  41. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/configs/vqa/xvars.yaml +0 -0
  42. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/__init__.py +0 -0
  43. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/__init__.py +0 -0
  44. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/accessors.py +0 -0
  45. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/conflicts.py +0 -0
  46. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/migrate.py +0 -0
  47. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/migrations/__init__.py +0 -0
  48. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/migrations/legacy_to_canonical.py +0 -0
  49. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/runtime_adapter.py +0 -0
  50. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schema.py +0 -0
  51. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schemas/__init__.py +0 -0
  52. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schemas/schema_canonical.py +0 -0
  53. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/schemas/schema_legacy.py +0 -0
  54. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/config/validate.py +0 -0
  55. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/__init__.py +0 -0
  56. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/builder.py +0 -0
  57. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/calf.py +0 -0
  58. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/ce.py +0 -0
  59. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/combine.py +0 -0
  60. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/loss/nll.py +0 -0
  61. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/optimizer/__init__.py +0 -0
  62. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/optimizer/builder.py +0 -0
  63. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/sampler/weighted_sampler.py +0 -0
  64. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/scheduler/__init__.py +0 -0
  65. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/scheduler/builder.py +0 -0
  66. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/__init__.py +0 -0
  67. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/classification_trainer.py +0 -0
  68. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/localization_trainer.py +0 -0
  69. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/trainer/vqa_trainer.py +0 -0
  70. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/checkpoint.py +0 -0
  71. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/config.py +0 -0
  72. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/config_normalize.py +0 -0
  73. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/data.py +0 -0
  74. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/ddp.py +0 -0
  75. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/default_args.py +0 -0
  76. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/hf_runtime.py +0 -0
  77. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/lightning.py +0 -0
  78. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/load_annotations.py +0 -0
  79. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/seed.py +0 -0
  80. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/video_processing.py +0 -0
  81. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/core/utils/wandb.py +0 -0
  82. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/__init__.py +0 -0
  83. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/builder.py +0 -0
  84. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/classification_dataset.py +0 -0
  85. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/localization_dataset.py +0 -0
  86. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/__init__.py +0 -0
  87. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/h5_tracking.py +0 -0
  88. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/utils/tracking.py +0 -0
  89. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/datasets/vqa_dataset.py +0 -0
  90. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/classification.yaml +0 -0
  91. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization-e2e-ocv.yaml +0 -0
  92. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization-json_calf_resnetpca512.yaml +0 -0
  93. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization-json_netvlad++_resnetpca512.yaml +0 -0
  94. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/localization.yaml +0 -0
  95. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/sngar-frames.yaml +0 -0
  96. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/legacy_config/sngar-tracking.yaml +0 -0
  97. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/metrics/classification_metric.py +0 -0
  98. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/metrics/localization_metric.py +0 -0
  99. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/metrics/vqa_metric.py +0 -0
  100. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/__init__.py +0 -0
  101. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/backbones/builder.py +0 -0
  102. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/contextaware.py +0 -0
  103. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/e2e.py +0 -0
  104. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/learnablepooling.py +0 -0
  105. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/qwen_vl_native.py +0 -0
  106. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/qwen_xvars.py +0 -0
  107. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/rule_based.py +0 -0
  108. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/tracking.py +0 -0
  109. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/vars.py +0 -0
  110. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/video.py +0 -0
  111. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/video_chatgpt_compat.py +0 -0
  112. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/video_mae.py +0 -0
  113. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/base/xvars_videochatgpt.py +0 -0
  114. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/builder.py +0 -0
  115. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/heads/builder.py +0 -0
  116. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/neck/builder.py +0 -0
  117. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/common.py +0 -0
  118. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/__init__.py +0 -0
  119. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/asformer.py +0 -0
  120. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/calf.py +0 -0
  121. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/gsm.py +0 -0
  122. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/gtad.py +0 -0
  123. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/impl/tsm.py +0 -0
  124. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/litebase.py +0 -0
  125. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/modules.py +0 -0
  126. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/shift.py +0 -0
  127. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/utils.py +0 -0
  128. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/vqa_prediction_priors.py +0 -0
  129. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/vqa_prompting.py +0 -0
  130. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/models/utils/xvars_clip_index.py +0 -0
  131. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/setup/setup.py +0 -0
  132. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/__init__.py +0 -0
  133. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/_common.py +0 -0
  134. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/hf_transfer.py +0 -0
  135. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/osl_json_to_parquet.py +0 -0
  136. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib/tools/parquet_to_osl_json.py +0 -0
  137. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/SOURCES.txt +0 -0
  138. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/dependency_links.txt +0 -0
  139. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/entry_points.txt +0 -0
  140. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/requires.txt +0 -0
  141. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/opensportslib.egg-info/top_level.txt +0 -0
  142. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/scripts/run_h5_header_rule_inference.py +0 -0
  143. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/setup.cfg +0 -0
  144. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/conftest.py +0 -0
  145. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_classification_dataset_paths.py +0 -0
  146. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_classification_trainer_dataloader.py +0 -0
  147. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_config_utils_smoke.py +0 -0
  148. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_conversion_tools.py +0 -0
  149. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_extract_xvars_features.py +0 -0
  150. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_h5_header_rule_spotter.py +0 -0
  151. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_h5_tracking_dataset.py +0 -0
  152. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_hf_transfer_tools.py +0 -0
  153. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_localization_dali_filenames.py +0 -0
  154. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_package_smoke.py +0 -0
  155. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_pretrained_config_merge_policy.py +0 -0
  156. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_public_apis_smoke.py +0 -0
  157. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_setup_cli.py +0 -0
  158. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_subset_train_infer_integration.py +0 -0
  159. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_task_model_api_contract.py +0 -0
  160. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_api.py +0 -0
  161. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_metrics_semantic.py +0 -0
  162. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_qwen_xvars.py +0 -0
  163. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_training_lora.py +0 -0
  164. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tests/test_vqa_xvars_videochatgpt.py +0 -0
  165. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_sn_vqa_2026_vqa.py +0 -0
  166. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_soccernet_gar.py +0 -0
  167. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_soccernet_gar_action_spotting.py +0 -0
  168. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_soccernet_gar_vqa.py +0 -0
  169. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/build_xvars_indexes.py +0 -0
  170. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/extract_xvars_clip_features.py +0 -0
  171. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/osl_json_to_parquet_webdataset.py +0 -0
  172. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/convert/parquet_webdataset_to_osl_json.py +0 -0
  173. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/download/download_hf_repo.py +0 -0
  174. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/download/download_osl_hf.py +0 -0
  175. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/download/upload_osl_hf.py +0 -0
  176. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/training/classification.py +0 -0
  177. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/training/localization.py +0 -0
  178. {opensportslib-0.3.0.dev2 → opensportslib-0.3.0.dev3}/tools/training/vqa.py +0 -0
  179. {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.dev2
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.dev2
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.dev2"
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
 
@@ -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"