opensportslib 0.3.1.dev5__tar.gz → 0.3.1.dev6__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 (203) hide show
  1. {opensportslib-0.3.1.dev5/opensportslib.egg-info → opensportslib-0.3.1.dev6}/PKG-INFO +1 -1
  2. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6/opensportslib.egg-info}/PKG-INFO +1 -1
  3. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib.egg-info/SOURCES.txt +2 -0
  4. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/pyproject.toml +1 -1
  5. opensportslib-0.3.1.dev6/scripts/release_versions.py +84 -0
  6. opensportslib-0.3.1.dev6/tests/test_release_versions.py +56 -0
  7. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/LICENSE +0 -0
  8. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/LICENSE-COMMERCIAL +0 -0
  9. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/MANIFEST.in +0 -0
  10. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/README.md +0 -0
  11. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/examples/quickstart/basic_classification.py +0 -0
  12. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/examples/quickstart/basic_localization.py +0 -0
  13. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/examples/quickstart/basic_vqa.py +0 -0
  14. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/__init__.py +0 -0
  15. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/adaptation/__init__.py +0 -0
  16. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/adaptation/spotta.py +0 -0
  17. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/apis/__init__.py +0 -0
  18. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/apis/base_task_model.py +0 -0
  19. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/apis/classification.py +0 -0
  20. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/apis/config.py +0 -0
  21. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/apis/configuration.py +0 -0
  22. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/apis/localization.py +0 -0
  23. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/apis/vqa.py +0 -0
  24. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/cli.py +0 -0
  25. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/classification/default.yaml +0 -0
  26. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/classification/sngar_frames.yaml +0 -0
  27. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/classification/sngar_tracking.yaml +0 -0
  28. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/classification/video.yaml +0 -0
  29. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/default.yaml +0 -0
  30. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/calf_resnetpca512.yaml +0 -0
  31. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/default.yaml +0 -0
  32. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/e2e_spotta.yaml +0 -0
  33. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/h5_header_distance.yaml +0 -0
  34. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/h5_header_skeleton.yaml +0 -0
  35. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/netvladpp_resnetpca512.yaml +0 -0
  36. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/tracking_action_spotting.yaml +0 -0
  37. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/video_dali.yaml +0 -0
  38. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/localization/video_ocv.yaml +0 -0
  39. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/vqa/default.yaml +0 -0
  40. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/vqa/qwen.yaml +0 -0
  41. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/vqa/qwen3_vl_native.yaml +0 -0
  42. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/vqa/qwen_lora.yaml +0 -0
  43. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/vqa/qwen_sngar_frames.yaml +0 -0
  44. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/configs/vqa/xvars.yaml +0 -0
  45. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/__init__.py +0 -0
  46. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/__init__.py +0 -0
  47. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/accessors.py +0 -0
  48. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/conflicts.py +0 -0
  49. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/editable.py +0 -0
  50. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/loader.py +0 -0
  51. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/migrate.py +0 -0
  52. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/migrations/__init__.py +0 -0
  53. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/migrations/legacy_to_canonical.py +0 -0
  54. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/rule_variants.py +0 -0
  55. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/runtime_adapter.py +0 -0
  56. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/schema.py +0 -0
  57. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/schemas/__init__.py +0 -0
  58. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/schemas/schema_canonical.py +0 -0
  59. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/schemas/schema_legacy.py +0 -0
  60. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/config/validate.py +0 -0
  61. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/loss/__init__.py +0 -0
  62. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/loss/builder.py +0 -0
  63. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/loss/calf.py +0 -0
  64. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/loss/ce.py +0 -0
  65. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/loss/combine.py +0 -0
  66. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/loss/nll.py +0 -0
  67. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/optimizer/__init__.py +0 -0
  68. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/optimizer/builder.py +0 -0
  69. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/sampler/weighted_sampler.py +0 -0
  70. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/scheduler/__init__.py +0 -0
  71. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/scheduler/builder.py +0 -0
  72. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/trainer/__init__.py +0 -0
  73. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/trainer/classification_trainer.py +0 -0
  74. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/trainer/localization_trainer.py +0 -0
  75. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/trainer/vqa_trainer.py +0 -0
  76. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/checkpoint.py +0 -0
  77. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/config.py +0 -0
  78. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/config_normalize.py +0 -0
  79. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/data.py +0 -0
  80. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/ddp.py +0 -0
  81. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/default_args.py +0 -0
  82. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/direct_video.py +0 -0
  83. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/hf_runtime.py +0 -0
  84. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/lightning.py +0 -0
  85. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/load_annotations.py +0 -0
  86. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/seed.py +0 -0
  87. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/video_processing.py +0 -0
  88. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/core/utils/wandb.py +0 -0
  89. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/datasets/__init__.py +0 -0
  90. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/datasets/builder.py +0 -0
  91. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/datasets/classification_dataset.py +0 -0
  92. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/datasets/localization_dataset.py +0 -0
  93. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/datasets/utils/__init__.py +0 -0
  94. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/datasets/utils/h5_tracking.py +0 -0
  95. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/datasets/utils/tracking.py +0 -0
  96. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/datasets/vqa_dataset.py +0 -0
  97. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/legacy_config/classification.yaml +0 -0
  98. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/legacy_config/localization-e2e-ocv.yaml +0 -0
  99. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/legacy_config/localization-json_calf_resnetpca512.yaml +0 -0
  100. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/legacy_config/localization-json_netvlad++_resnetpca512.yaml +0 -0
  101. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/legacy_config/localization.yaml +0 -0
  102. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/legacy_config/sngar-frames.yaml +0 -0
  103. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/legacy_config/sngar-tracking.yaml +0 -0
  104. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/metrics/classification_metric.py +0 -0
  105. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/metrics/localization_metric.py +0 -0
  106. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/metrics/vqa_metric.py +0 -0
  107. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/__init__.py +0 -0
  108. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/backbones/builder.py +0 -0
  109. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/contextaware.py +0 -0
  110. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/e2e.py +0 -0
  111. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/learnablepooling.py +0 -0
  112. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/qwen_vl_native.py +0 -0
  113. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/qwen_xvars.py +0 -0
  114. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/rule_based.py +0 -0
  115. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/tracking.py +0 -0
  116. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/vars.py +0 -0
  117. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/video.py +0 -0
  118. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/video_chatgpt_compat.py +0 -0
  119. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/video_mae.py +0 -0
  120. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/base/xvars_videochatgpt.py +0 -0
  121. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/builder.py +0 -0
  122. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/heads/builder.py +0 -0
  123. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/neck/builder.py +0 -0
  124. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/common.py +0 -0
  125. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/impl/__init__.py +0 -0
  126. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/impl/asformer.py +0 -0
  127. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/impl/calf.py +0 -0
  128. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/impl/gsm.py +0 -0
  129. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/impl/gtad.py +0 -0
  130. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/impl/tsm.py +0 -0
  131. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/litebase.py +0 -0
  132. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/modules.py +0 -0
  133. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/shift.py +0 -0
  134. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/utils.py +0 -0
  135. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/vqa_prediction_priors.py +0 -0
  136. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/vqa_prompting.py +0 -0
  137. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/models/utils/xvars_clip_index.py +0 -0
  138. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/setup/setup.py +0 -0
  139. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/tools/__init__.py +0 -0
  140. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/tools/_common.py +0 -0
  141. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/tools/hf_transfer.py +0 -0
  142. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/tools/osl_json_to_parquet.py +0 -0
  143. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib/tools/parquet_to_osl_json.py +0 -0
  144. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib.egg-info/dependency_links.txt +0 -0
  145. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib.egg-info/entry_points.txt +0 -0
  146. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib.egg-info/requires.txt +0 -0
  147. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/opensportslib.egg-info/top_level.txt +0 -0
  148. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/scripts/run_h5_header_rule_inference.py +0 -0
  149. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/setup.cfg +0 -0
  150. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/conftest.py +0 -0
  151. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/release/__init__.py +0 -0
  152. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/release/_release_common.py +0 -0
  153. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/release/test_classification_release.py +0 -0
  154. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/release/test_localization_release.py +0 -0
  155. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/release/test_vqa_release.py +0 -0
  156. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_classification_dataset_paths.py +0 -0
  157. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_classification_trainer_dataloader.py +0 -0
  158. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_config_architecture.py +0 -0
  159. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_config_split_override_sync.py +0 -0
  160. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_config_utils_smoke.py +0 -0
  161. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_conversion_tools.py +0 -0
  162. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_editable_config.py +0 -0
  163. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_extract_xvars_features.py +0 -0
  164. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_h5_header_rule_spotter.py +0 -0
  165. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_h5_header_skeleton_spotter.py +0 -0
  166. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_h5_tracking_dataset.py +0 -0
  167. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_hf_transfer_tools.py +0 -0
  168. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_localization_dali_filenames.py +0 -0
  169. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_localization_hf_backend_override.py +0 -0
  170. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_localization_intervals.py +0 -0
  171. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_optional_hf_config.py +0 -0
  172. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_package_smoke.py +0 -0
  173. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_pretrained_config_merge_policy.py +0 -0
  174. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_public_apis_smoke.py +0 -0
  175. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_setup_cli.py +0 -0
  176. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_spotta_e2e.py +0 -0
  177. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_subset_train_infer_integration.py +0 -0
  178. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_task_model_api_contract.py +0 -0
  179. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_vqa_api.py +0 -0
  180. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_vqa_metrics_semantic.py +0 -0
  181. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_vqa_qwen_xvars.py +0 -0
  182. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_vqa_training_lora.py +0 -0
  183. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tests/test_vqa_xvars_videochatgpt.py +0 -0
  184. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/build_sn_vqa_2026_vqa.py +0 -0
  185. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/build_sngar_spotting.py +0 -0
  186. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/build_soccernet_gar.py +0 -0
  187. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/build_soccernet_gar_action_spotting.py +0 -0
  188. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/build_soccernet_gar_vqa.py +0 -0
  189. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/build_xvars_indexes.py +0 -0
  190. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/extract_xvars_clip_features.py +0 -0
  191. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/osl_json_to_parquet_webdataset.py +0 -0
  192. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/parquet_webdataset_to_osl_json.py +0 -0
  193. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/sngar_dataset_card.py +0 -0
  194. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/sngar_events.py +0 -0
  195. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/convert/verify_sngar_spotting.py +0 -0
  196. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/download/download_hf_repo.py +0 -0
  197. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/download/download_osl_hf.py +0 -0
  198. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/download/push_sngar_spotting.py +0 -0
  199. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/download/upload_osl_hf.py +0 -0
  200. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/training/classification.py +0 -0
  201. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/training/localization.py +0 -0
  202. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/tools/training/vqa.py +0 -0
  203. {opensportslib-0.3.1.dev5 → opensportslib-0.3.1.dev6}/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.1.dev5
3
+ Version: 0.3.1.dev6
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opensportslib
3
- Version: 0.3.1.dev5
3
+ Version: 0.3.1.dev6
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
@@ -142,6 +142,7 @@ opensportslib/tools/_common.py
142
142
  opensportslib/tools/hf_transfer.py
143
143
  opensportslib/tools/osl_json_to_parquet.py
144
144
  opensportslib/tools/parquet_to_osl_json.py
145
+ scripts/release_versions.py
145
146
  scripts/run_h5_header_rule_inference.py
146
147
  tests/conftest.py
147
148
  tests/test_classification_dataset_paths.py
@@ -163,6 +164,7 @@ tests/test_optional_hf_config.py
163
164
  tests/test_package_smoke.py
164
165
  tests/test_pretrained_config_merge_policy.py
165
166
  tests/test_public_apis_smoke.py
167
+ tests/test_release_versions.py
166
168
  tests/test_setup_cli.py
167
169
  tests/test_spotta_e2e.py
168
170
  tests/test_subset_train_infer_integration.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "opensportslib"
7
- version = "0.3.1.dev5"
7
+ version = "0.3.1.dev6"
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"
@@ -0,0 +1,84 @@
1
+ """Keep the library version and the server's library pin in sync."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import argparse
6
+ import re
7
+ from pathlib import Path
8
+
9
+
10
+ STABLE_VERSION = re.compile(r"^(?P<version>\d+\.\d+\.\d+)$")
11
+ DEV_VERSION = re.compile(r"^(?P<base>\d+\.\d+\.\d+)\.dev(?P<number>\d+)$")
12
+ PROJECT_VERSION = re.compile(
13
+ r'(?ms)(^\[project\]\s*.*?^version\s*=\s*")[^"]+("\s*$)'
14
+ )
15
+ SERVER_PIN = re.compile(r'("opensportslib==)[^"]+("[,\s]*$)', re.MULTILINE)
16
+
17
+
18
+ def next_dev_version(current: str) -> str:
19
+ """Return the next development release for an existing dev version."""
20
+ match = DEV_VERSION.fullmatch(current)
21
+ if not match:
22
+ raise ValueError(f"expected X.Y.Z.devN, got {current!r}")
23
+ return f"{match.group('base')}.dev{int(match.group('number')) + 1}"
24
+
25
+
26
+ def stable_version(tag: str) -> str:
27
+ """Return a stable version from a vX.Y.Z release tag."""
28
+ if not tag.startswith("v"):
29
+ raise ValueError(f"release tag must start with 'v', got {tag!r}")
30
+ version = tag[1:]
31
+ if not STABLE_VERSION.fullmatch(version):
32
+ raise ValueError(f"release tag must have the form vX.Y.Z, got {tag!r}")
33
+ return version
34
+
35
+
36
+ def read_project_version(pyproject: Path) -> str:
37
+ text = pyproject.read_text()
38
+ match = PROJECT_VERSION.search(text)
39
+ if not match:
40
+ raise ValueError(f"project.version not found in {pyproject}")
41
+ return text[match.start(0) + len(match.group(1)) : match.end(0) - len(match.group(2))]
42
+
43
+
44
+ def synchronize(version: str, root_pyproject: Path, server_pyproject: Path) -> None:
45
+ """Write one OpenSportsLib version to both release metadata files."""
46
+ if not (STABLE_VERSION.fullmatch(version) or DEV_VERSION.fullmatch(version)):
47
+ raise ValueError(f"unsupported release version {version!r}")
48
+
49
+ root_text = root_pyproject.read_text()
50
+ server_text = server_pyproject.read_text()
51
+ if len(PROJECT_VERSION.findall(root_text)) != 1:
52
+ raise ValueError(f"expected one project.version in {root_pyproject}")
53
+ if len(SERVER_PIN.findall(server_text)) != 1:
54
+ raise ValueError(f"expected one opensportslib dependency pin in {server_pyproject}")
55
+
56
+ root_updated = PROJECT_VERSION.sub(rf"\g<1>{version}\g<2>", root_text)
57
+ server_updated = SERVER_PIN.sub(rf"\g<1>{version}\g<2>", server_text)
58
+ root_pyproject.write_text(root_updated)
59
+ server_pyproject.write_text(server_updated)
60
+
61
+
62
+ def main() -> None:
63
+ parser = argparse.ArgumentParser()
64
+ parser.add_argument("command", choices=("bump-dev", "set-stable"))
65
+ parser.add_argument("value", nargs="?", help="vX.Y.Z tag for set-stable")
66
+ parser.add_argument("--root", type=Path, default=Path("pyproject.toml"))
67
+ parser.add_argument("--server", type=Path, default=Path("server/pyproject.toml"))
68
+ args = parser.parse_args()
69
+
70
+ if args.command == "bump-dev":
71
+ if args.value is not None:
72
+ parser.error("bump-dev does not accept a value")
73
+ version = next_dev_version(read_project_version(args.root))
74
+ else:
75
+ if args.value is None:
76
+ parser.error("set-stable requires a vX.Y.Z tag")
77
+ version = stable_version(args.value)
78
+
79
+ synchronize(version, args.root, args.server)
80
+ print(version)
81
+
82
+
83
+ if __name__ == "__main__":
84
+ main()
@@ -0,0 +1,56 @@
1
+ import importlib.util
2
+ from pathlib import Path
3
+
4
+ import pytest
5
+
6
+
7
+ SCRIPT = Path(__file__).parents[1] / "scripts" / "release_versions.py"
8
+ SPEC = importlib.util.spec_from_file_location("release_versions", SCRIPT)
9
+ release_versions = importlib.util.module_from_spec(SPEC)
10
+ assert SPEC.loader is not None
11
+ SPEC.loader.exec_module(release_versions)
12
+
13
+
14
+ def test_next_dev_version_increments_counter():
15
+ assert release_versions.next_dev_version("0.3.1.dev5") == "0.3.1.dev6"
16
+
17
+
18
+ @pytest.mark.parametrize("version", ["0.3.1", "0.3.1rc1", "invalid"])
19
+ def test_next_dev_version_rejects_non_dev_versions(version):
20
+ with pytest.raises(ValueError, match="expected X.Y.Z.devN"):
21
+ release_versions.next_dev_version(version)
22
+
23
+
24
+ def test_stable_version_requires_stable_v_tag():
25
+ assert release_versions.stable_version("v0.3.1") == "0.3.1"
26
+ with pytest.raises(ValueError, match="vX.Y.Z"):
27
+ release_versions.stable_version("v0.3.1.dev1")
28
+
29
+
30
+ def test_synchronize_updates_root_and_server_pin_only(tmp_path):
31
+ root = tmp_path / "pyproject.toml"
32
+ server = tmp_path / "server.toml"
33
+ root.write_text('[project]\nname = "opensportslib"\nversion = "0.3.1.dev5"\n')
34
+ server.write_text(
35
+ '[project]\nname = "opensportslib-server"\nversion = "0.1.0"\n'
36
+ 'dependencies = [\n "opensportslib==0.3.1.dev5",\n "fastapi",\n]\n'
37
+ )
38
+
39
+ release_versions.synchronize("0.3.1.dev6", root, server)
40
+
41
+ assert 'version = "0.3.1.dev6"' in root.read_text()
42
+ assert 'version = "0.1.0"' in server.read_text()
43
+ assert '"opensportslib==0.3.1.dev6"' in server.read_text()
44
+
45
+
46
+ def test_synchronize_fails_before_writing_when_server_pin_is_missing(tmp_path):
47
+ root = tmp_path / "pyproject.toml"
48
+ server = tmp_path / "server.toml"
49
+ original = '[project]\nversion = "0.3.1.dev5"\n'
50
+ root.write_text(original)
51
+ server.write_text('[project]\nversion = "0.1.0"\n')
52
+
53
+ with pytest.raises(ValueError, match="dependency pin"):
54
+ release_versions.synchronize("0.3.1.dev6", root, server)
55
+
56
+ assert root.read_text() == original