kinemotion 0.19.0__py3-none-any.whl → 0.20.0__py3-none-any.whl

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.

@@ -2,6 +2,7 @@
2
2
 
3
3
  import json
4
4
  import subprocess
5
+ import warnings
5
6
 
6
7
  import cv2
7
8
  import numpy as np
@@ -147,8 +148,17 @@ class VideoProcessor:
147
148
  # Extract rotation from side_data_list (common for iPhone videos)
148
149
  self.rotation = self._extract_rotation_from_stream(stream)
149
150
 
150
- except (subprocess.TimeoutExpired, FileNotFoundError, json.JSONDecodeError):
151
- # If ffprobe fails, keep original dimensions (square pixels)
151
+ except FileNotFoundError:
152
+ # ffprobe not found - warn user about reduced functionality
153
+ warnings.warn(
154
+ "ffprobe not found. Video rotation and aspect ratio metadata will be "
155
+ "ignored. This may cause issues with mobile/rotated videos. "
156
+ "Install FFmpeg for full video support: https://ffmpeg.org/download.html",
157
+ UserWarning,
158
+ stacklevel=2,
159
+ )
160
+ except (subprocess.TimeoutExpired, json.JSONDecodeError):
161
+ # If ffprobe fails for other reasons, silently continue with defaults
152
162
  pass
153
163
 
154
164
  def read_frame(self) -> np.ndarray | None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.19.0
3
+ Version: 0.20.0
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
@@ -93,27 +93,70 @@ For clinical, research, or performance assessment requiring validated accuracy,
93
93
 
94
94
  ## Setup
95
95
 
96
- ### Prerequisites
96
+ ### System Requirements
97
97
 
98
- - [asdf](https://asdf-vm.com/) version manager
99
- - asdf plugins for Python and uv
98
+ **All Platforms:**
100
99
 
101
- ### Installation
100
+ - Python 3.10, 3.11, or 3.12
102
101
 
103
- 1. **Install asdf plugins** (if not already installed):
102
+ **Platform-Specific:**
103
+
104
+ #### Windows
105
+
106
+ No additional system dependencies required.
107
+
108
+ **Recommended for mobile video support:**
109
+
110
+ - [FFmpeg](https://ffmpeg.org/download.html) - Download and add to PATH
111
+
112
+ #### macOS
113
+
114
+ No additional system dependencies required.
115
+
116
+ **Recommended for mobile video support:**
117
+
118
+ ```bash
119
+ brew install ffmpeg
120
+ ```
121
+
122
+ #### Linux (Ubuntu/Debian)
123
+
124
+ **Recommended system libraries:**
125
+
126
+ ```bash
127
+ sudo apt-get update
128
+ sudo apt-get install -y \
129
+ libgl1-mesa-glx \
130
+ libglib2.0-0 \
131
+ ffmpeg
132
+ ```
133
+
134
+ **Note:** `ffmpeg` provides the `ffprobe` tool for video metadata extraction (rotation, aspect ratio). Kinemotion works without it, but mobile/rotated videos may not process correctly. A warning will be shown if `ffprobe` is not available.
135
+
136
+ ### Installation Methods
137
+
138
+ #### From PyPI (Recommended)
139
+
140
+ ```bash
141
+ pip install kinemotion
142
+ ```
143
+
144
+ #### From Source (Development)
145
+
146
+ **Step 1:** Install asdf plugins (if not already installed):
104
147
 
105
148
  ```bash
106
149
  asdf plugin add python
107
150
  asdf plugin add uv
108
151
  ```
109
152
 
110
- 1. **Install versions specified in `.tool-versions`**:
153
+ **Step 2:** Install versions specified in `.tool-versions`:
111
154
 
112
155
  ```bash
113
156
  asdf install
114
157
  ```
115
158
 
116
- 1. **Install project dependencies using uv**:
159
+ **Step 3:** Install project dependencies using uv:
117
160
 
118
161
  ```bash
119
162
  uv sync
@@ -125,7 +168,7 @@ This will install all dependencies and make the `kinemotion` command available.
125
168
 
126
169
  Kinemotion supports two jump types with intelligent auto-tuning that automatically optimizes parameters based on video characteristics.
127
170
 
128
- ### Drop Jump Analysis
171
+ ### Analyzing Drop Jumps
129
172
 
130
173
  Analyzes reactive strength and ground contact time:
131
174
 
@@ -134,7 +177,7 @@ Analyzes reactive strength and ground contact time:
134
177
  kinemotion dropjump-analyze video.mp4
135
178
  ```
136
179
 
137
- ### Counter Movement Jump (CMJ) Analysis
180
+ ### Analyzing CMJ
138
181
 
139
182
  Analyzes jump height and biomechanics:
140
183
 
@@ -14,15 +14,15 @@ kinemotion/core/debug_overlay_utils.py,sha256=TyUb5okv5qw8oeaX3jsUO_kpwf1NnaHEAO
14
14
  kinemotion/core/filtering.py,sha256=f-m-aA59e4WqE6u-9MA51wssu7rI-Y_7n1cG8IWdeRQ,11241
15
15
  kinemotion/core/pose.py,sha256=ztemdZ_ysVVK3gbXabm8qS_dr1VfJX9KZjmcO-Z-iNE,8532
16
16
  kinemotion/core/smoothing.py,sha256=C9GK3PAN16RpqJw2UWeVslSTJZEvALeVADjtnJnSF88,14240
17
- kinemotion/core/video_io.py,sha256=kH5FYPx3y3lFZ3ybdgxaZfKPdHJ37eqxSeAaZjyQnJk,6817
17
+ kinemotion/core/video_io.py,sha256=0bJTheYidEqxGP5Y2dSO2x6sbOrnBDBu2TEiV8gT23A,7285
18
18
  kinemotion/dropjump/__init__.py,sha256=yc1XiZ9vfo5h_n7PKVSiX2TTgaIfGL7Y7SkQtiDZj_E,838
19
19
  kinemotion/dropjump/analysis.py,sha256=xx5NWy6s0eb9BEyO_FByY1Ahunaoh3TyaTAxjlPrvxg,27153
20
20
  kinemotion/dropjump/cli.py,sha256=J2F8ij-UcybY7YjK_bncQZiHNzrgS3Y7uTBkNo7y_L4,21328
21
21
  kinemotion/dropjump/debug_overlay.py,sha256=LkPw6ucb7beoYWS4L-Lvjs1KLCm5wAWDAfiznUeV2IQ,5668
22
22
  kinemotion/dropjump/kinematics.py,sha256=txDxpDti3VJVctWGbe3aIrlIx83UY8-ynzlX01TOvTA,15577
23
23
  kinemotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- kinemotion-0.19.0.dist-info/METADATA,sha256=p9CU-kseY5_76UmlKlDSWAbzVr_ut3wl88HdRuQSQss,19427
25
- kinemotion-0.19.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
26
- kinemotion-0.19.0.dist-info/entry_points.txt,sha256=zaqnAnjLvcdrk1Qvj5nvXZCZ2gp0prS7it1zTJygcIY,50
27
- kinemotion-0.19.0.dist-info/licenses/LICENSE,sha256=KZajvqsHw0NoOHOi2q0FZ4NBe9HdV6oey-IPYAtHXfg,1088
28
- kinemotion-0.19.0.dist-info/RECORD,,
24
+ kinemotion-0.20.0.dist-info/METADATA,sha256=z3hxeml55ljQHkty3vxiahTkMA9pnN1CgwMefmJWBp0,20249
25
+ kinemotion-0.20.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
26
+ kinemotion-0.20.0.dist-info/entry_points.txt,sha256=zaqnAnjLvcdrk1Qvj5nvXZCZ2gp0prS7it1zTJygcIY,50
27
+ kinemotion-0.20.0.dist-info/licenses/LICENSE,sha256=KZajvqsHw0NoOHOi2q0FZ4NBe9HdV6oey-IPYAtHXfg,1088
28
+ kinemotion-0.20.0.dist-info/RECORD,,