opensportslib 0.3.1.dev1__tar.gz → 0.3.1.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 (195) hide show
  1. {opensportslib-0.3.1.dev1/opensportslib.egg-info → opensportslib-0.3.1.dev3}/PKG-INFO +27 -4
  2. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/README.md +26 -3
  3. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/tools/__init__.py +23 -0
  4. opensportslib-0.3.1.dev3/opensportslib/tools/hf_transfer.py +2043 -0
  5. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/tools/parquet_to_osl_json.py +64 -5
  6. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3/opensportslib.egg-info}/PKG-INFO +27 -4
  7. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/pyproject.toml +1 -1
  8. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_hf_transfer_tools.py +971 -11
  9. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/download/download_osl_hf.py +8 -0
  10. opensportslib-0.3.1.dev1/opensportslib/tools/hf_transfer.py +0 -1094
  11. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/LICENSE +0 -0
  12. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/LICENSE-COMMERCIAL +0 -0
  13. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/MANIFEST.in +0 -0
  14. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/examples/quickstart/basic_classification.py +0 -0
  15. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/examples/quickstart/basic_localization.py +0 -0
  16. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/examples/quickstart/basic_vqa.py +0 -0
  17. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/__init__.py +0 -0
  18. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/adaptation/__init__.py +0 -0
  19. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/adaptation/spotta.py +0 -0
  20. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/apis/__init__.py +0 -0
  21. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/apis/base_task_model.py +0 -0
  22. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/apis/classification.py +0 -0
  23. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/apis/localization.py +0 -0
  24. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/apis/vqa.py +0 -0
  25. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/cli.py +0 -0
  26. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/classification/default.yaml +0 -0
  27. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/classification/sngar_frames.yaml +0 -0
  28. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/classification/sngar_tracking.yaml +0 -0
  29. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/classification/video.yaml +0 -0
  30. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/default.yaml +0 -0
  31. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/calf_resnetpca512.yaml +0 -0
  32. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/default.yaml +0 -0
  33. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/e2e_spotta.yaml +0 -0
  34. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/h5_header_distance.yaml +0 -0
  35. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/h5_header_skeleton.yaml +0 -0
  36. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/netvladpp_resnetpca512.yaml +0 -0
  37. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/tracking_action_spotting.yaml +0 -0
  38. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/video_dali.yaml +0 -0
  39. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/localization/video_ocv.yaml +0 -0
  40. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/vqa/default.yaml +0 -0
  41. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/vqa/qwen.yaml +0 -0
  42. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/vqa/qwen3_vl_native.yaml +0 -0
  43. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/vqa/qwen_lora.yaml +0 -0
  44. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/vqa/qwen_sngar_frames.yaml +0 -0
  45. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/configs/vqa/xvars.yaml +0 -0
  46. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/__init__.py +0 -0
  47. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/__init__.py +0 -0
  48. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/accessors.py +0 -0
  49. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/conflicts.py +0 -0
  50. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/loader.py +0 -0
  51. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/migrate.py +0 -0
  52. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/migrations/__init__.py +0 -0
  53. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/migrations/legacy_to_canonical.py +0 -0
  54. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/runtime_adapter.py +0 -0
  55. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/schema.py +0 -0
  56. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/schemas/__init__.py +0 -0
  57. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/schemas/schema_canonical.py +0 -0
  58. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/schemas/schema_legacy.py +0 -0
  59. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/config/validate.py +0 -0
  60. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/loss/__init__.py +0 -0
  61. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/loss/builder.py +0 -0
  62. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/loss/calf.py +0 -0
  63. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/loss/ce.py +0 -0
  64. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/loss/combine.py +0 -0
  65. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/loss/nll.py +0 -0
  66. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/optimizer/__init__.py +0 -0
  67. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/optimizer/builder.py +0 -0
  68. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/sampler/weighted_sampler.py +0 -0
  69. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/scheduler/__init__.py +0 -0
  70. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/scheduler/builder.py +0 -0
  71. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/trainer/__init__.py +0 -0
  72. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/trainer/classification_trainer.py +0 -0
  73. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/trainer/localization_trainer.py +0 -0
  74. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/trainer/vqa_trainer.py +0 -0
  75. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/checkpoint.py +0 -0
  76. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/config.py +0 -0
  77. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/config_normalize.py +0 -0
  78. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/data.py +0 -0
  79. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/ddp.py +0 -0
  80. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/default_args.py +0 -0
  81. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/hf_runtime.py +0 -0
  82. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/lightning.py +0 -0
  83. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/load_annotations.py +0 -0
  84. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/seed.py +0 -0
  85. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/video_processing.py +0 -0
  86. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/core/utils/wandb.py +0 -0
  87. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/datasets/__init__.py +0 -0
  88. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/datasets/builder.py +0 -0
  89. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/datasets/classification_dataset.py +0 -0
  90. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/datasets/localization_dataset.py +0 -0
  91. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/datasets/utils/__init__.py +0 -0
  92. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/datasets/utils/h5_tracking.py +0 -0
  93. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/datasets/utils/tracking.py +0 -0
  94. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/datasets/vqa_dataset.py +0 -0
  95. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/legacy_config/classification.yaml +0 -0
  96. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/legacy_config/localization-e2e-ocv.yaml +0 -0
  97. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/legacy_config/localization-json_calf_resnetpca512.yaml +0 -0
  98. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/legacy_config/localization-json_netvlad++_resnetpca512.yaml +0 -0
  99. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/legacy_config/localization.yaml +0 -0
  100. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/legacy_config/sngar-frames.yaml +0 -0
  101. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/legacy_config/sngar-tracking.yaml +0 -0
  102. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/metrics/classification_metric.py +0 -0
  103. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/metrics/localization_metric.py +0 -0
  104. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/metrics/vqa_metric.py +0 -0
  105. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/__init__.py +0 -0
  106. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/backbones/builder.py +0 -0
  107. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/contextaware.py +0 -0
  108. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/e2e.py +0 -0
  109. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/learnablepooling.py +0 -0
  110. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/qwen_vl_native.py +0 -0
  111. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/qwen_xvars.py +0 -0
  112. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/rule_based.py +0 -0
  113. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/tracking.py +0 -0
  114. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/vars.py +0 -0
  115. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/video.py +0 -0
  116. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/video_chatgpt_compat.py +0 -0
  117. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/video_mae.py +0 -0
  118. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/base/xvars_videochatgpt.py +0 -0
  119. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/builder.py +0 -0
  120. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/heads/builder.py +0 -0
  121. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/neck/builder.py +0 -0
  122. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/common.py +0 -0
  123. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/impl/__init__.py +0 -0
  124. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/impl/asformer.py +0 -0
  125. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/impl/calf.py +0 -0
  126. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/impl/gsm.py +0 -0
  127. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/impl/gtad.py +0 -0
  128. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/impl/tsm.py +0 -0
  129. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/litebase.py +0 -0
  130. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/modules.py +0 -0
  131. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/shift.py +0 -0
  132. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/utils.py +0 -0
  133. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/vqa_prediction_priors.py +0 -0
  134. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/vqa_prompting.py +0 -0
  135. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/models/utils/xvars_clip_index.py +0 -0
  136. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/setup/setup.py +0 -0
  137. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/tools/_common.py +0 -0
  138. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib/tools/osl_json_to_parquet.py +0 -0
  139. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib.egg-info/SOURCES.txt +0 -0
  140. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib.egg-info/dependency_links.txt +0 -0
  141. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib.egg-info/entry_points.txt +0 -0
  142. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib.egg-info/requires.txt +0 -0
  143. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/opensportslib.egg-info/top_level.txt +0 -0
  144. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/scripts/run_h5_header_rule_inference.py +0 -0
  145. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/setup.cfg +0 -0
  146. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/conftest.py +0 -0
  147. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/release/__init__.py +0 -0
  148. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/release/_release_common.py +0 -0
  149. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/release/test_classification_release.py +0 -0
  150. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/release/test_localization_release.py +0 -0
  151. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/release/test_vqa_release.py +0 -0
  152. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_classification_dataset_paths.py +0 -0
  153. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_classification_trainer_dataloader.py +0 -0
  154. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_config_architecture.py +0 -0
  155. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_config_split_override_sync.py +0 -0
  156. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_config_utils_smoke.py +0 -0
  157. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_conversion_tools.py +0 -0
  158. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_extract_xvars_features.py +0 -0
  159. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_h5_header_rule_spotter.py +0 -0
  160. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_h5_header_skeleton_spotter.py +0 -0
  161. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_h5_tracking_dataset.py +0 -0
  162. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_localization_dali_filenames.py +0 -0
  163. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_localization_hf_backend_override.py +0 -0
  164. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_localization_intervals.py +0 -0
  165. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_package_smoke.py +0 -0
  166. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_pretrained_config_merge_policy.py +0 -0
  167. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_public_apis_smoke.py +0 -0
  168. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_setup_cli.py +0 -0
  169. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_spotta_e2e.py +0 -0
  170. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_subset_train_infer_integration.py +0 -0
  171. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_task_model_api_contract.py +0 -0
  172. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_vqa_api.py +0 -0
  173. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_vqa_metrics_semantic.py +0 -0
  174. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_vqa_qwen_xvars.py +0 -0
  175. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_vqa_training_lora.py +0 -0
  176. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tests/test_vqa_xvars_videochatgpt.py +0 -0
  177. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/build_sn_vqa_2026_vqa.py +0 -0
  178. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/build_sngar_spotting.py +0 -0
  179. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/build_soccernet_gar.py +0 -0
  180. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/build_soccernet_gar_action_spotting.py +0 -0
  181. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/build_soccernet_gar_vqa.py +0 -0
  182. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/build_xvars_indexes.py +0 -0
  183. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/extract_xvars_clip_features.py +0 -0
  184. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/osl_json_to_parquet_webdataset.py +0 -0
  185. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/parquet_webdataset_to_osl_json.py +0 -0
  186. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/sngar_dataset_card.py +0 -0
  187. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/sngar_events.py +0 -0
  188. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/convert/verify_sngar_spotting.py +0 -0
  189. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/download/download_hf_repo.py +0 -0
  190. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/download/push_sngar_spotting.py +0 -0
  191. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/download/upload_osl_hf.py +0 -0
  192. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/training/classification.py +0 -0
  193. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/training/localization.py +0 -0
  194. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.dev3}/tools/training/vqa.py +0 -0
  195. {opensportslib-0.3.1.dev1 → opensportslib-0.3.1.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.1.dev1
3
+ Version: 0.3.1.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
@@ -372,6 +372,7 @@ OpenSportsLib provides APIs and scripts for downloading and uploading OSL datase
372
372
  ```python
373
373
  from opensportslib.tools import (
374
374
  download_dataset_split_from_hf,
375
+ download_dataset_sample_inputs_from_hf,
375
376
  upload_dataset_inputs_from_json_to_hf,
376
377
  upload_dataset_as_parquet_to_hf,
377
378
  )
@@ -380,13 +381,35 @@ from opensportslib.tools import (
380
381
  ### Scripts
381
382
 
382
383
  ```bash
383
- python tools/download/download_osl_hf.py --repo-id <org/repo> --revision main --split test --format parquet --output-dir downloaded_data
384
+ python tools/download/download_osl_hf.py --repo-id <org/repo> --revision main --split test --format parquet --output-dir downloaded_data --annotations-only
384
385
  python tools/download/upload_osl_hf.py --repo-id <org/repo> --json-path <local_dataset.json> --split test --revision main
385
386
  ```
386
387
 
387
388
  Downloads are placed under `<output-dir>/<revision>/<split>`.
388
- For Parquet/WebDataset downloads, an existing `<split>.json` in that directory
389
- is reused without downloading or converting the split again.
389
+ Pass `annotations_only=True` to download or reconstruct only `<split>.json`.
390
+ The JSON records the resolved Hugging Face commit and can later be passed to
391
+ `download_dataset_sample_inputs_from_hf()` to fetch one sample or input. A full
392
+ Parquet/WebDataset download always completes the local split even when a
393
+ metadata-only `<split>.json` already exists.
394
+
395
+ Download APIs accept `byte_progress_cb(filename, downloaded_bytes,
396
+ total_bytes)`. When the repository file is Xet-backed, OpenSportsLib keeps the
397
+ accelerated Xet transfer and adapts Xet's byte updates to this callback. It
398
+ falls back to classic HTTP progress when Xet is unavailable, disabled, or not
399
+ used by the file.
400
+ When byte progress is enabled, Parquet downloads also emit `[current/total]`
401
+ file messages through `progress_cb` so clients can present file-count progress.
402
+ High-level split downloads also accept `file_plan_cb(filenames)`,
403
+ `file_completed_cb(filename, local_path)`, and
404
+ `json_ready_cb(split, json_path)`. These are transfer lifecycle notifications;
405
+ callers remain responsible for queue policy and presentation. For non-dry-run
406
+ JSON datasets, pinned source metadata is persisted before `json_ready_cb` runs.
407
+
408
+ JSON uploads support partially downloaded datasets: the JSON and all
409
+ referenced files available locally are committed, while missing referenced
410
+ files are skipped and reported. Remote files not included in that commit are
411
+ left untouched. Parquet/WebDataset uploads remain strict and require every
412
+ referenced file locally before conversion.
390
413
 
391
414
  ---
392
415
 
@@ -336,6 +336,7 @@ OpenSportsLib provides APIs and scripts for downloading and uploading OSL datase
336
336
  ```python
337
337
  from opensportslib.tools import (
338
338
  download_dataset_split_from_hf,
339
+ download_dataset_sample_inputs_from_hf,
339
340
  upload_dataset_inputs_from_json_to_hf,
340
341
  upload_dataset_as_parquet_to_hf,
341
342
  )
@@ -344,13 +345,35 @@ from opensportslib.tools import (
344
345
  ### Scripts
345
346
 
346
347
  ```bash
347
- python tools/download/download_osl_hf.py --repo-id <org/repo> --revision main --split test --format parquet --output-dir downloaded_data
348
+ python tools/download/download_osl_hf.py --repo-id <org/repo> --revision main --split test --format parquet --output-dir downloaded_data --annotations-only
348
349
  python tools/download/upload_osl_hf.py --repo-id <org/repo> --json-path <local_dataset.json> --split test --revision main
349
350
  ```
350
351
 
351
352
  Downloads are placed under `<output-dir>/<revision>/<split>`.
352
- For Parquet/WebDataset downloads, an existing `<split>.json` in that directory
353
- is reused without downloading or converting the split again.
353
+ Pass `annotations_only=True` to download or reconstruct only `<split>.json`.
354
+ The JSON records the resolved Hugging Face commit and can later be passed to
355
+ `download_dataset_sample_inputs_from_hf()` to fetch one sample or input. A full
356
+ Parquet/WebDataset download always completes the local split even when a
357
+ metadata-only `<split>.json` already exists.
358
+
359
+ Download APIs accept `byte_progress_cb(filename, downloaded_bytes,
360
+ total_bytes)`. When the repository file is Xet-backed, OpenSportsLib keeps the
361
+ accelerated Xet transfer and adapts Xet's byte updates to this callback. It
362
+ falls back to classic HTTP progress when Xet is unavailable, disabled, or not
363
+ used by the file.
364
+ When byte progress is enabled, Parquet downloads also emit `[current/total]`
365
+ file messages through `progress_cb` so clients can present file-count progress.
366
+ High-level split downloads also accept `file_plan_cb(filenames)`,
367
+ `file_completed_cb(filename, local_path)`, and
368
+ `json_ready_cb(split, json_path)`. These are transfer lifecycle notifications;
369
+ callers remain responsible for queue policy and presentation. For non-dry-run
370
+ JSON datasets, pinned source metadata is persisted before `json_ready_cb` runs.
371
+
372
+ JSON uploads support partially downloaded datasets: the JSON and all
373
+ referenced files available locally are committed, while missing referenced
374
+ files are skipped and reported. Remote files not included in that commit are
375
+ left untouched. Parquet/WebDataset uploads remain strict and require every
376
+ referenced file locally before conversion.
354
377
 
355
378
  ---
356
379
 
@@ -10,13 +10,29 @@ _EXPORTS = {
10
10
  "DEFAULT_SHARD_SIZE": ("opensportslib.tools.osl_json_to_parquet", "DEFAULT_SHARD_SIZE"),
11
11
  "parse_shard_size": ("opensportslib.tools.osl_json_to_parquet", "parse_shard_size"),
12
12
  "convert_parquet_to_json": ("opensportslib.tools.parquet_to_osl_json", "convert_parquet_to_json"),
13
+ "convert_parquet_metadata_to_json": (
14
+ "opensportslib.tools.parquet_to_osl_json",
15
+ "convert_parquet_metadata_to_json",
16
+ ),
13
17
  "convert_sn_vqa_2026_to_osl": ("opensportslib.tools.sn_vqa_2026_qwen_native", "convert_sn_vqa_2026_to_osl"),
14
18
  "evaluate_sn_vqa_predictions": ("opensportslib.tools.sn_vqa_2026_qwen_native", "evaluate_sn_vqa_predictions"),
15
19
  "HfTransferCancelled": ("opensportslib.tools.hf_transfer", "HfTransferCancelled"),
20
+ "MissingDatasetInputsError": ("opensportslib.tools.hf_transfer", "MissingDatasetInputsError"),
16
21
  "HF_REPO_ID_KEY": ("opensportslib.tools.hf_transfer", "HF_REPO_ID_KEY"),
17
22
  "HF_BRANCH_KEY": ("opensportslib.tools.hf_transfer", "HF_BRANCH_KEY"),
18
23
  "HF_SPLIT_KEY": ("opensportslib.tools.hf_transfer", "HF_SPLIT_KEY"),
24
+ "HF_FORMAT_KEY": ("opensportslib.tools.hf_transfer", "HF_FORMAT_KEY"),
25
+ "HF_COMMIT_KEY": ("opensportslib.tools.hf_transfer", "HF_COMMIT_KEY"),
19
26
  "download_dataset_split_from_hf": ("opensportslib.tools.hf_transfer", "download_dataset_split_from_hf"),
27
+ "download_dataset_sample_inputs_from_hf": (
28
+ "opensportslib.tools.hf_transfer",
29
+ "download_dataset_sample_inputs_from_hf",
30
+ ),
31
+ "download_dataset_missing_inputs_from_hf": (
32
+ "opensportslib.tools.hf_transfer",
33
+ "download_dataset_missing_inputs_from_hf",
34
+ ),
35
+ "find_missing_dataset_inputs": ("opensportslib.tools.hf_transfer", "find_missing_dataset_inputs"),
20
36
  "upload_dataset_inputs_from_json_to_hf": ("opensportslib.tools.hf_transfer", "upload_dataset_inputs_from_json_to_hf"),
21
37
  "upload_dataset_as_parquet_to_hf": ("opensportslib.tools.hf_transfer", "upload_dataset_as_parquet_to_hf"),
22
38
  "create_dataset_repo_on_hf": ("opensportslib.tools.hf_transfer", "create_dataset_repo_on_hf"),
@@ -37,13 +53,20 @@ __all__ = [
37
53
  "DEFAULT_SHARD_SIZE",
38
54
  "parse_shard_size",
39
55
  "convert_parquet_to_json",
56
+ "convert_parquet_metadata_to_json",
40
57
  "convert_sn_vqa_2026_to_osl",
41
58
  "evaluate_sn_vqa_predictions",
42
59
  "HfTransferCancelled",
60
+ "MissingDatasetInputsError",
43
61
  "HF_REPO_ID_KEY",
44
62
  "HF_BRANCH_KEY",
45
63
  "HF_SPLIT_KEY",
64
+ "HF_FORMAT_KEY",
65
+ "HF_COMMIT_KEY",
46
66
  "download_dataset_split_from_hf",
67
+ "download_dataset_sample_inputs_from_hf",
68
+ "download_dataset_missing_inputs_from_hf",
69
+ "find_missing_dataset_inputs",
47
70
  "upload_dataset_inputs_from_json_to_hf",
48
71
  "upload_dataset_as_parquet_to_hf",
49
72
  "create_dataset_repo_on_hf",