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