opensportslib 0.3.0.dev15__tar.gz → 0.3.0.dev16__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 (194) hide show
  1. {opensportslib-0.3.0.dev15/opensportslib.egg-info → opensportslib-0.3.0.dev16}/PKG-INFO +1 -1
  2. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/setup/setup.py +81 -47
  3. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16/opensportslib.egg-info}/PKG-INFO +1 -1
  4. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/pyproject.toml +1 -1
  5. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_setup_cli.py +12 -0
  6. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/LICENSE +0 -0
  7. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/LICENSE-COMMERCIAL +0 -0
  8. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/MANIFEST.in +0 -0
  9. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/README.md +0 -0
  10. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/examples/quickstart/basic_classification.py +0 -0
  11. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/examples/quickstart/basic_localization.py +0 -0
  12. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/examples/quickstart/basic_vqa.py +0 -0
  13. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/__init__.py +0 -0
  14. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/adaptation/__init__.py +0 -0
  15. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/adaptation/spotta.py +0 -0
  16. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/apis/__init__.py +0 -0
  17. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/apis/base_task_model.py +0 -0
  18. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/apis/classification.py +0 -0
  19. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/apis/localization.py +0 -0
  20. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/apis/vqa.py +0 -0
  21. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/cli.py +0 -0
  22. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/classification/default.yaml +0 -0
  23. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/classification/sngar_frames.yaml +0 -0
  24. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/classification/sngar_tracking.yaml +0 -0
  25. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/classification/video.yaml +0 -0
  26. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/default.yaml +0 -0
  27. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/calf_resnetpca512.yaml +0 -0
  28. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/default.yaml +0 -0
  29. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/e2e_spotta.yaml +0 -0
  30. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/h5_header_distance.yaml +0 -0
  31. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/h5_header_skeleton.yaml +0 -0
  32. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/netvladpp_resnetpca512.yaml +0 -0
  33. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/tracking_action_spotting.yaml +0 -0
  34. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/video_dali.yaml +0 -0
  35. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/localization/video_ocv.yaml +0 -0
  36. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/vqa/default.yaml +0 -0
  37. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/vqa/qwen.yaml +0 -0
  38. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/vqa/qwen3_vl_native.yaml +0 -0
  39. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/vqa/qwen_lora.yaml +0 -0
  40. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/vqa/qwen_sngar_frames.yaml +0 -0
  41. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/configs/vqa/xvars.yaml +0 -0
  42. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/__init__.py +0 -0
  43. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/__init__.py +0 -0
  44. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/accessors.py +0 -0
  45. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/conflicts.py +0 -0
  46. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/loader.py +0 -0
  47. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/migrate.py +0 -0
  48. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/migrations/__init__.py +0 -0
  49. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/migrations/legacy_to_canonical.py +0 -0
  50. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/runtime_adapter.py +0 -0
  51. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/schema.py +0 -0
  52. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/schemas/__init__.py +0 -0
  53. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/schemas/schema_canonical.py +0 -0
  54. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/schemas/schema_legacy.py +0 -0
  55. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/config/validate.py +0 -0
  56. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/loss/__init__.py +0 -0
  57. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/loss/builder.py +0 -0
  58. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/loss/calf.py +0 -0
  59. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/loss/ce.py +0 -0
  60. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/loss/combine.py +0 -0
  61. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/loss/nll.py +0 -0
  62. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/optimizer/__init__.py +0 -0
  63. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/optimizer/builder.py +0 -0
  64. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/sampler/weighted_sampler.py +0 -0
  65. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/scheduler/__init__.py +0 -0
  66. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/scheduler/builder.py +0 -0
  67. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/trainer/__init__.py +0 -0
  68. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/trainer/classification_trainer.py +0 -0
  69. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/trainer/localization_trainer.py +0 -0
  70. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/trainer/vqa_trainer.py +0 -0
  71. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/checkpoint.py +0 -0
  72. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/config.py +0 -0
  73. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/config_normalize.py +0 -0
  74. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/data.py +0 -0
  75. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/ddp.py +0 -0
  76. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/default_args.py +0 -0
  77. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/hf_runtime.py +0 -0
  78. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/lightning.py +0 -0
  79. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/load_annotations.py +0 -0
  80. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/seed.py +0 -0
  81. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/video_processing.py +0 -0
  82. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/core/utils/wandb.py +0 -0
  83. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/datasets/__init__.py +0 -0
  84. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/datasets/builder.py +0 -0
  85. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/datasets/classification_dataset.py +0 -0
  86. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/datasets/localization_dataset.py +0 -0
  87. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/datasets/utils/__init__.py +0 -0
  88. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/datasets/utils/h5_tracking.py +0 -0
  89. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/datasets/utils/tracking.py +0 -0
  90. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/datasets/vqa_dataset.py +0 -0
  91. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/legacy_config/classification.yaml +0 -0
  92. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/legacy_config/localization-e2e-ocv.yaml +0 -0
  93. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/legacy_config/localization-json_calf_resnetpca512.yaml +0 -0
  94. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/legacy_config/localization-json_netvlad++_resnetpca512.yaml +0 -0
  95. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/legacy_config/localization.yaml +0 -0
  96. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/legacy_config/sngar-frames.yaml +0 -0
  97. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/legacy_config/sngar-tracking.yaml +0 -0
  98. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/metrics/classification_metric.py +0 -0
  99. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/metrics/localization_metric.py +0 -0
  100. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/metrics/vqa_metric.py +0 -0
  101. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/__init__.py +0 -0
  102. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/backbones/builder.py +0 -0
  103. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/contextaware.py +0 -0
  104. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/e2e.py +0 -0
  105. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/learnablepooling.py +0 -0
  106. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/qwen_vl_native.py +0 -0
  107. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/qwen_xvars.py +0 -0
  108. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/rule_based.py +0 -0
  109. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/tracking.py +0 -0
  110. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/vars.py +0 -0
  111. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/video.py +0 -0
  112. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/video_chatgpt_compat.py +0 -0
  113. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/video_mae.py +0 -0
  114. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/base/xvars_videochatgpt.py +0 -0
  115. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/builder.py +0 -0
  116. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/heads/builder.py +0 -0
  117. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/neck/builder.py +0 -0
  118. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/common.py +0 -0
  119. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/impl/__init__.py +0 -0
  120. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/impl/asformer.py +0 -0
  121. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/impl/calf.py +0 -0
  122. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/impl/gsm.py +0 -0
  123. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/impl/gtad.py +0 -0
  124. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/impl/tsm.py +0 -0
  125. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/litebase.py +0 -0
  126. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/modules.py +0 -0
  127. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/shift.py +0 -0
  128. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/utils.py +0 -0
  129. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/vqa_prediction_priors.py +0 -0
  130. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/vqa_prompting.py +0 -0
  131. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/models/utils/xvars_clip_index.py +0 -0
  132. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/tools/__init__.py +0 -0
  133. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/tools/_common.py +0 -0
  134. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/tools/hf_transfer.py +0 -0
  135. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/tools/osl_json_to_parquet.py +0 -0
  136. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib/tools/parquet_to_osl_json.py +0 -0
  137. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib.egg-info/SOURCES.txt +0 -0
  138. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib.egg-info/dependency_links.txt +0 -0
  139. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib.egg-info/entry_points.txt +0 -0
  140. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib.egg-info/requires.txt +0 -0
  141. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/opensportslib.egg-info/top_level.txt +0 -0
  142. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/scripts/run_h5_header_rule_inference.py +0 -0
  143. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/setup.cfg +0 -0
  144. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/conftest.py +0 -0
  145. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/release/__init__.py +0 -0
  146. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/release/_release_common.py +0 -0
  147. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/release/test_classification_release.py +0 -0
  148. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/release/test_localization_release.py +0 -0
  149. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/release/test_vqa_release.py +0 -0
  150. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_classification_dataset_paths.py +0 -0
  151. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_classification_trainer_dataloader.py +0 -0
  152. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_config_architecture.py +0 -0
  153. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_config_split_override_sync.py +0 -0
  154. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_config_utils_smoke.py +0 -0
  155. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_conversion_tools.py +0 -0
  156. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_extract_xvars_features.py +0 -0
  157. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_h5_header_rule_spotter.py +0 -0
  158. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_h5_header_skeleton_spotter.py +0 -0
  159. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_h5_tracking_dataset.py +0 -0
  160. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_hf_transfer_tools.py +0 -0
  161. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_localization_dali_filenames.py +0 -0
  162. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_localization_hf_backend_override.py +0 -0
  163. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_localization_intervals.py +0 -0
  164. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_package_smoke.py +0 -0
  165. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_pretrained_config_merge_policy.py +0 -0
  166. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_public_apis_smoke.py +0 -0
  167. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_spotta_e2e.py +0 -0
  168. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_subset_train_infer_integration.py +0 -0
  169. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_task_model_api_contract.py +0 -0
  170. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_vqa_api.py +0 -0
  171. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_vqa_metrics_semantic.py +0 -0
  172. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_vqa_qwen_xvars.py +0 -0
  173. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_vqa_training_lora.py +0 -0
  174. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tests/test_vqa_xvars_videochatgpt.py +0 -0
  175. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/build_sn_vqa_2026_vqa.py +0 -0
  176. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/build_sngar_spotting.py +0 -0
  177. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/build_soccernet_gar.py +0 -0
  178. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/build_soccernet_gar_action_spotting.py +0 -0
  179. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/build_soccernet_gar_vqa.py +0 -0
  180. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/build_xvars_indexes.py +0 -0
  181. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/extract_xvars_clip_features.py +0 -0
  182. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/osl_json_to_parquet_webdataset.py +0 -0
  183. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/parquet_webdataset_to_osl_json.py +0 -0
  184. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/sngar_dataset_card.py +0 -0
  185. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/sngar_events.py +0 -0
  186. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/convert/verify_sngar_spotting.py +0 -0
  187. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/download/download_hf_repo.py +0 -0
  188. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/download/download_osl_hf.py +0 -0
  189. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/download/push_sngar_spotting.py +0 -0
  190. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/download/upload_osl_hf.py +0 -0
  191. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/training/classification.py +0 -0
  192. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/training/localization.py +0 -0
  193. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/tools/training/vqa.py +0 -0
  194. {opensportslib-0.3.0.dev15 → opensportslib-0.3.0.dev16}/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.dev15
3
+ Version: 0.3.0.dev16
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
@@ -2,12 +2,14 @@ import subprocess
2
2
  import sys
3
3
 
4
4
 
5
- CUDA_SUPPORT = [
6
- "cu126",
7
- "cu128",
8
- "cu130",
9
- "cpu"
10
- ]
5
+ CUDA_WHEEL_VERSIONS = {
6
+ "cu126": (12, 6),
7
+ "cu128": (12, 8),
8
+ "cu130": (13, 0),
9
+ }
10
+ MIN_SUPPORTED_COMPUTE_CAPABILITY = (7, 0)
11
+ LEGACY_GPU_MAX_COMPUTE_CAPABILITY = (7, 4)
12
+ LEGACY_GPU_CUDA_WHEEL = "cu126"
11
13
 
12
14
  XVARS_DEPENDENCY_PINS = {
13
15
  "transformers": "4.38.2",
@@ -37,14 +39,73 @@ def get_cuda_version():
37
39
  return ver, cuda_tag
38
40
  except Exception:
39
41
  return None, None
42
+ return None, None
40
43
 
41
44
 
42
- CUDA_VERSION, CUDA_TAG = get_cuda_version()
45
+ def get_gpu_compute_capabilities():
46
+ try:
47
+ output = subprocess.check_output(
48
+ ["nvidia-smi", "--query-gpu=compute_cap", "--format=csv,noheader"],
49
+ text=True,
50
+ )
51
+ except Exception:
52
+ return []
43
53
 
44
- def get_cpu_tag():
45
- if not CUDA_VERSION:
54
+ capabilities = []
55
+ for line in output.splitlines():
56
+ value = line.strip()
57
+ if not value:
58
+ continue
59
+ try:
60
+ major, minor = value.split(".", 1)
61
+ capabilities.append((int(major), int(minor)))
62
+ except ValueError:
63
+ print(f"Ignoring unrecognized GPU compute capability: {value}")
64
+ return capabilities
65
+
66
+
67
+ def select_cuda_wheel(cuda_version, compute_capabilities):
68
+ if not cuda_version:
46
69
  return "cpu"
47
70
 
71
+ try:
72
+ driver_version = tuple(int(part) for part in cuda_version.split(".", 1))
73
+ except ValueError as exc:
74
+ raise RuntimeError(f"Unable to parse CUDA version reported by nvidia-smi: {cuda_version}") from exc
75
+
76
+ if any(capability < MIN_SUPPORTED_COMPUTE_CAPABILITY for capability in compute_capabilities):
77
+ raise RuntimeError(
78
+ "OpenSportsLib PyTorch wheels require GPUs with compute capability "
79
+ f"{MIN_SUPPORTED_COMPUTE_CAPABILITY[0]}.{MIN_SUPPORTED_COMPUTE_CAPABILITY[1]} or newer. "
80
+ f"Detected: {compute_capabilities}."
81
+ )
82
+
83
+ compatible_tags = [
84
+ tag for tag, wheel_version in CUDA_WHEEL_VERSIONS.items() if wheel_version <= driver_version
85
+ ]
86
+ if compute_capabilities and any(
87
+ capability <= LEGACY_GPU_MAX_COMPUTE_CAPABILITY for capability in compute_capabilities
88
+ ):
89
+ compatible_tags = [tag for tag in compatible_tags if tag == LEGACY_GPU_CUDA_WHEEL]
90
+
91
+ if not compatible_tags:
92
+ raise RuntimeError(
93
+ f"CUDA {cuda_version} is too old for the supported PyTorch wheels: "
94
+ f"{', '.join(CUDA_WHEEL_VERSIONS)}."
95
+ )
96
+
97
+ selected = max(compatible_tags, key=lambda tag: CUDA_WHEEL_VERSIONS[tag])
98
+ print(
99
+ "Selected PyTorch wheel "
100
+ f"{selected} for CUDA {cuda_version} and GPU compute capabilities {compute_capabilities or 'unknown'}"
101
+ )
102
+ return selected
103
+
104
+
105
+ CUDA_VERSION, _DETECTED_CUDA_TAG = get_cuda_version()
106
+ GPU_COMPUTE_CAPABILITIES = get_gpu_compute_capabilities()
107
+ CUDA_TAG = select_cuda_wheel(CUDA_VERSION, GPU_COMPUTE_CAPABILITIES)
108
+
48
109
 
49
110
  def install_xvars_dependencies(DEPENDENCY_PINS):
50
111
  python = sys.executable
@@ -59,42 +120,16 @@ def install_xvars_dependencies(DEPENDENCY_PINS):
59
120
 
60
121
  def install_torch():
61
122
  python = sys.executable
62
- subprocess.call([python, "-m", "pip", "uninstall", "-y", "torch", "torchvision"])
63
-
64
- if CUDA_TAG == "cu130":
65
- cuda = "cu130"
66
- subprocess.check_call([
67
- python, "-m", "pip", "install",
68
- "torch", "torchvision", "torchaudio",
69
- "--index-url",
70
- f"https://download.pytorch.org/whl/{cuda}"
71
- ])
72
- print(f"\nSuccess with {cuda}")
73
- return cuda
74
- for cuda in CUDA_SUPPORT:
75
-
76
- print(f"\n Trying installation: {cuda}\n")
77
- try:
78
- if get_cpu_tag() == "cpu":
79
- subprocess.check_call([
80
- python, "-m", "pip", "install",
81
- "torch", "torchvision", "torchaudio"
82
- ])
83
- else:
84
-
85
- subprocess.check_call([
86
- python, "-m", "pip", "install",
87
- "torch", "torchvision", "torchaudio",
88
- "--index-url",
89
- f"https://download.pytorch.org/whl/{cuda}"
90
- ])
91
- print(f"\nSuccess with {cuda}")
92
- return cuda
93
-
94
- except Exception as e:
95
- print(f"Failed with {cuda}: {e}")
96
-
97
- raise RuntimeError("All CUDA installs failed")
123
+ subprocess.call([python, "-m", "pip", "uninstall", "-y", "torch", "torchvision", "torchaudio"])
124
+
125
+ subprocess.check_call([
126
+ python, "-m", "pip", "install",
127
+ "torch", "torchvision", "torchaudio",
128
+ "--index-url",
129
+ f"https://download.pytorch.org/whl/{CUDA_TAG}",
130
+ ])
131
+ print(f"\nSuccess with {CUDA_TAG}")
132
+ return CUDA_TAG
98
133
 
99
134
  def install_dali():
100
135
 
@@ -134,8 +169,7 @@ def install_pyg():
134
169
 
135
170
  python = sys.executable
136
171
  torch_version = "2.10.0" if version.parse(torch.__version__.split("+")[0]) > version.parse("2.10.0") else torch.__version__.split("+")[0]
137
- cuda_tag = next((f"cu{CUDA_VERSION.replace('.', '')}" for _ in [0] if CUDA_VERSION), CUDA_SUPPORT[0])
138
- cuda_tag = cuda_tag if cuda_tag in CUDA_SUPPORT else CUDA_SUPPORT[0]
172
+ cuda_tag = CUDA_TAG
139
173
  print("\nInstalling Py-Geometric ecosystem...\n")
140
174
  if cuda_tag == "cpu":
141
175
  url = f"https://data.pyg.org/whl/torch-{torch_version}+cpu.html"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opensportslib
3
- Version: 0.3.0.dev15
3
+ Version: 0.3.0.dev16
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.dev15"
7
+ version = "0.3.0.dev16"
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"
@@ -4,6 +4,18 @@ from opensportslib import cli
4
4
  from opensportslib.setup import setup as setup_lib
5
5
 
6
6
 
7
+ def test_select_cuda_wheel_uses_cu126_for_pre_sm75_gpu_with_cuda_13():
8
+ assert setup_lib.select_cuda_wheel("13.0", [(7, 0)]) == "cu126"
9
+
10
+
11
+ def test_select_cuda_wheel_uses_cu130_for_dgx_spark():
12
+ assert setup_lib.select_cuda_wheel("13.0", [(12, 1)]) == "cu130"
13
+
14
+
15
+ def test_select_cuda_wheel_uses_highest_driver_compatible_wheel():
16
+ assert setup_lib.select_cuda_wheel("12.8", [(8, 0)]) == "cu128"
17
+
18
+
7
19
  def test_cli_setup_forwards_xvars_flag(monkeypatch):
8
20
  captured: dict[str, object] = {}
9
21