kinemotion 0.20.0__tar.gz → 0.20.1__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.

Potentially problematic release.


This version of kinemotion might be problematic. Click here for more details.

Files changed (88) hide show
  1. {kinemotion-0.20.0 → kinemotion-0.20.1}/CHANGELOG.md +8 -0
  2. {kinemotion-0.20.0 → kinemotion-0.20.1}/PKG-INFO +1 -1
  3. {kinemotion-0.20.0 → kinemotion-0.20.1}/pyproject.toml +1 -1
  4. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_aspect_ratio.py +21 -2
  5. {kinemotion-0.20.0 → kinemotion-0.20.1}/uv.lock +1 -1
  6. {kinemotion-0.20.0 → kinemotion-0.20.1}/.dockerignore +0 -0
  7. {kinemotion-0.20.0 → kinemotion-0.20.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  8. {kinemotion-0.20.0 → kinemotion-0.20.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  9. {kinemotion-0.20.0 → kinemotion-0.20.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  10. {kinemotion-0.20.0 → kinemotion-0.20.1}/.github/pull_request_template.md +0 -0
  11. {kinemotion-0.20.0 → kinemotion-0.20.1}/.github/workflows/docs.yml +0 -0
  12. {kinemotion-0.20.0 → kinemotion-0.20.1}/.github/workflows/release.yml +0 -0
  13. {kinemotion-0.20.0 → kinemotion-0.20.1}/.github/workflows/test.yml +0 -0
  14. {kinemotion-0.20.0 → kinemotion-0.20.1}/.gitignore +0 -0
  15. {kinemotion-0.20.0 → kinemotion-0.20.1}/.pre-commit-config.yaml +0 -0
  16. {kinemotion-0.20.0 → kinemotion-0.20.1}/.readthedocs.yml +0 -0
  17. {kinemotion-0.20.0 → kinemotion-0.20.1}/.tool-versions +0 -0
  18. {kinemotion-0.20.0 → kinemotion-0.20.1}/CLAUDE.md +0 -0
  19. {kinemotion-0.20.0 → kinemotion-0.20.1}/CODE_OF_CONDUCT.md +0 -0
  20. {kinemotion-0.20.0 → kinemotion-0.20.1}/CONTRIBUTING.md +0 -0
  21. {kinemotion-0.20.0 → kinemotion-0.20.1}/Dockerfile +0 -0
  22. {kinemotion-0.20.0 → kinemotion-0.20.1}/GEMINI.md +0 -0
  23. {kinemotion-0.20.0 → kinemotion-0.20.1}/LICENSE +0 -0
  24. {kinemotion-0.20.0 → kinemotion-0.20.1}/README.md +0 -0
  25. {kinemotion-0.20.0 → kinemotion-0.20.1}/SECURITY.md +0 -0
  26. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/README.md +0 -0
  27. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/api/cmj.md +0 -0
  28. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/api/core.md +0 -0
  29. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/api/dropjump.md +0 -0
  30. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/api/overview.md +0 -0
  31. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/development/errors-findings.md +0 -0
  32. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/development/validation-plan.md +0 -0
  33. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/development/wallball-norep-detection.md +0 -0
  34. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/guides/bulk-processing.md +0 -0
  35. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/guides/camera-setup.md +0 -0
  36. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/guides/cmj-guide.md +0 -0
  37. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/index.md +0 -0
  38. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/reference/parameters.md +0 -0
  39. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/reference/pose-systems.md +0 -0
  40. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
  41. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/technical/framerate.md +0 -0
  42. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/technical/imu-metadata.md +0 -0
  43. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/technical/real-time-analysis.md +0 -0
  44. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/technical/triple-extension.md +0 -0
  45. {kinemotion-0.20.0 → kinemotion-0.20.1}/docs/translations/es/camera-setup.md +0 -0
  46. {kinemotion-0.20.0 → kinemotion-0.20.1}/examples/bulk/README.md +0 -0
  47. {kinemotion-0.20.0 → kinemotion-0.20.1}/examples/bulk/bulk_processing.py +0 -0
  48. {kinemotion-0.20.0 → kinemotion-0.20.1}/examples/bulk/simple_example.py +0 -0
  49. {kinemotion-0.20.0 → kinemotion-0.20.1}/examples/programmatic_usage.py +0 -0
  50. {kinemotion-0.20.0 → kinemotion-0.20.1}/mkdocs.yml +0 -0
  51. {kinemotion-0.20.0 → kinemotion-0.20.1}/requirements-docs.txt +0 -0
  52. {kinemotion-0.20.0 → kinemotion-0.20.1}/samples/cmjs/README.md +0 -0
  53. {kinemotion-0.20.0 → kinemotion-0.20.1}/sonar-project.properties +0 -0
  54. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/__init__.py +0 -0
  55. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/api.py +0 -0
  56. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/cli.py +0 -0
  57. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/cmj/__init__.py +0 -0
  58. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/cmj/analysis.py +0 -0
  59. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/cmj/cli.py +0 -0
  60. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/cmj/debug_overlay.py +0 -0
  61. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/cmj/joint_angles.py +0 -0
  62. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/cmj/kinematics.py +0 -0
  63. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/core/__init__.py +0 -0
  64. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/core/auto_tuning.py +0 -0
  65. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/core/cli_utils.py +0 -0
  66. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/core/debug_overlay_utils.py +0 -0
  67. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/core/filtering.py +0 -0
  68. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/core/pose.py +0 -0
  69. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/core/smoothing.py +0 -0
  70. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/core/video_io.py +0 -0
  71. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/dropjump/__init__.py +0 -0
  72. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/dropjump/analysis.py +0 -0
  73. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/dropjump/cli.py +0 -0
  74. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/dropjump/debug_overlay.py +0 -0
  75. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/dropjump/kinematics.py +0 -0
  76. {kinemotion-0.20.0 → kinemotion-0.20.1}/src/kinemotion/py.typed +0 -0
  77. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/__init__.py +0 -0
  78. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_adaptive_threshold.py +0 -0
  79. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_api.py +0 -0
  80. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_cli_imports.py +0 -0
  81. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_cmj_analysis.py +0 -0
  82. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_cmj_kinematics.py +0 -0
  83. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_com_estimation.py +0 -0
  84. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_contact_detection.py +0 -0
  85. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_filtering.py +0 -0
  86. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_joint_angles.py +0 -0
  87. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_kinematics.py +0 -0
  88. {kinemotion-0.20.0 → kinemotion-0.20.1}/tests/test_polyorder.py +0 -0
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  <!-- version list -->
9
9
 
10
+ ## v0.20.1 (2025-11-10)
11
+
12
+ ### Bug Fixes
13
+
14
+ - Add test coverage for ffprobe warning path
15
+ ([`8ae3e55`](https://github.com/feniix/kinemotion/commit/8ae3e552a3bfb749d4e9bad10c634093db5eddee))
16
+
17
+
10
18
  ## v0.20.0 (2025-11-10)
11
19
 
12
20
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.20.0
3
+ Version: 0.20.1
4
4
  Summary: Video-based kinematic analysis for athletic performance
5
5
  Project-URL: Homepage, https://github.com/feniix/kinemotion
6
6
  Project-URL: Repository, https://github.com/feniix/kinemotion
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kinemotion"
3
- version = "0.20.0"
3
+ version = "0.20.1"
4
4
  description = "Video-based kinematic analysis for athletic performance"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10,<3.13"
@@ -2,9 +2,11 @@
2
2
 
3
3
  import tempfile
4
4
  from pathlib import Path
5
+ from unittest.mock import patch
5
6
 
6
7
  import cv2
7
8
  import numpy as np
9
+ import pytest
8
10
 
9
11
  from kinemotion.core.video_io import VideoProcessor
10
12
  from kinemotion.dropjump.debug_overlay import DebugOverlayRenderer
@@ -98,8 +100,6 @@ def test_aspect_ratio_9_16_portrait():
98
100
 
99
101
  def test_frame_dimension_validation():
100
102
  """Test that mismatched frame dimensions raise an error."""
101
- import pytest
102
-
103
103
  output_path = tempfile.NamedTemporaryFile(suffix=".mp4", delete=False).name
104
104
 
105
105
  try:
@@ -117,3 +117,22 @@ def test_frame_dimension_validation():
117
117
 
118
118
  finally:
119
119
  Path(output_path).unlink(missing_ok=True)
120
+
121
+
122
+ def test_ffprobe_not_found_warning():
123
+ """Test that warning is shown when ffprobe is not available."""
124
+ test_video = create_test_video(640, 480)
125
+
126
+ try:
127
+ # Mock subprocess.run to raise FileNotFoundError (ffprobe not found)
128
+ with patch(
129
+ "subprocess.run", side_effect=FileNotFoundError("ffprobe not found")
130
+ ):
131
+ with pytest.warns(
132
+ UserWarning, match="ffprobe not found.*rotation and aspect ratio"
133
+ ):
134
+ video = VideoProcessor(test_video)
135
+ video.close()
136
+
137
+ finally:
138
+ Path(test_video).unlink()
@@ -700,7 +700,7 @@ wheels = [
700
700
 
701
701
  [[package]]
702
702
  name = "kinemotion"
703
- version = "0.20.0"
703
+ version = "0.20.1"
704
704
  source = { editable = "." }
705
705
  dependencies = [
706
706
  { name = "click" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes