kinemotion 0.17.6__tar.gz → 0.18.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 (87) hide show
  1. {kinemotion-0.17.6 → kinemotion-0.18.1}/.github/workflows/docs.yml +21 -23
  2. {kinemotion-0.17.6 → kinemotion-0.18.1}/.github/workflows/release.yml +15 -0
  3. {kinemotion-0.17.6 → kinemotion-0.18.1}/.github/workflows/test.yml +7 -9
  4. {kinemotion-0.17.6 → kinemotion-0.18.1}/CHANGELOG.md +26 -0
  5. {kinemotion-0.17.6 → kinemotion-0.18.1}/PKG-INFO +1 -1
  6. {kinemotion-0.17.6 → kinemotion-0.18.1}/pyproject.toml +1 -1
  7. {kinemotion-0.17.6 → kinemotion-0.18.1}/sonar-project.properties +0 -1
  8. {kinemotion-0.17.6 → kinemotion-0.18.1}/uv.lock +1 -1
  9. {kinemotion-0.17.6 → kinemotion-0.18.1}/.dockerignore +0 -0
  10. {kinemotion-0.17.6 → kinemotion-0.18.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  11. {kinemotion-0.17.6 → kinemotion-0.18.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  12. {kinemotion-0.17.6 → kinemotion-0.18.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  13. {kinemotion-0.17.6 → kinemotion-0.18.1}/.github/pull_request_template.md +0 -0
  14. {kinemotion-0.17.6 → kinemotion-0.18.1}/.gitignore +0 -0
  15. {kinemotion-0.17.6 → kinemotion-0.18.1}/.pre-commit-config.yaml +0 -0
  16. {kinemotion-0.17.6 → kinemotion-0.18.1}/.readthedocs.yml +0 -0
  17. {kinemotion-0.17.6 → kinemotion-0.18.1}/.tool-versions +0 -0
  18. {kinemotion-0.17.6 → kinemotion-0.18.1}/CLAUDE.md +0 -0
  19. {kinemotion-0.17.6 → kinemotion-0.18.1}/CODE_OF_CONDUCT.md +0 -0
  20. {kinemotion-0.17.6 → kinemotion-0.18.1}/CONTRIBUTING.md +0 -0
  21. {kinemotion-0.17.6 → kinemotion-0.18.1}/Dockerfile +0 -0
  22. {kinemotion-0.17.6 → kinemotion-0.18.1}/GEMINI.md +0 -0
  23. {kinemotion-0.17.6 → kinemotion-0.18.1}/LICENSE +0 -0
  24. {kinemotion-0.17.6 → kinemotion-0.18.1}/README.md +0 -0
  25. {kinemotion-0.17.6 → kinemotion-0.18.1}/SECURITY.md +0 -0
  26. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/README.md +0 -0
  27. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/api/cmj.md +0 -0
  28. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/api/core.md +0 -0
  29. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/api/dropjump.md +0 -0
  30. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/api/overview.md +0 -0
  31. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/development/errors-findings.md +0 -0
  32. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/development/validation-plan.md +0 -0
  33. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/development/wallball-norep-detection.md +0 -0
  34. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/guides/bulk-processing.md +0 -0
  35. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/guides/camera-setup.md +0 -0
  36. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/guides/cmj-guide.md +0 -0
  37. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/index.md +0 -0
  38. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/reference/parameters.md +0 -0
  39. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/reference/pose-systems.md +0 -0
  40. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
  41. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/technical/framerate.md +0 -0
  42. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/technical/imu-metadata.md +0 -0
  43. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/technical/real-time-analysis.md +0 -0
  44. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/technical/triple-extension.md +0 -0
  45. {kinemotion-0.17.6 → kinemotion-0.18.1}/docs/translations/es/camera-setup.md +0 -0
  46. {kinemotion-0.17.6 → kinemotion-0.18.1}/examples/bulk/README.md +0 -0
  47. {kinemotion-0.17.6 → kinemotion-0.18.1}/examples/bulk/bulk_processing.py +0 -0
  48. {kinemotion-0.17.6 → kinemotion-0.18.1}/examples/bulk/simple_example.py +0 -0
  49. {kinemotion-0.17.6 → kinemotion-0.18.1}/examples/programmatic_usage.py +0 -0
  50. {kinemotion-0.17.6 → kinemotion-0.18.1}/mkdocs.yml +0 -0
  51. {kinemotion-0.17.6 → kinemotion-0.18.1}/requirements-docs.txt +0 -0
  52. {kinemotion-0.17.6 → kinemotion-0.18.1}/samples/cmjs/README.md +0 -0
  53. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/__init__.py +0 -0
  54. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/api.py +0 -0
  55. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/cli.py +0 -0
  56. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/cmj/__init__.py +0 -0
  57. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/cmj/analysis.py +0 -0
  58. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/cmj/cli.py +0 -0
  59. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/cmj/debug_overlay.py +0 -0
  60. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/cmj/joint_angles.py +0 -0
  61. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/cmj/kinematics.py +0 -0
  62. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/core/__init__.py +0 -0
  63. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/core/auto_tuning.py +0 -0
  64. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/core/cli_utils.py +0 -0
  65. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/core/debug_overlay_utils.py +0 -0
  66. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/core/filtering.py +0 -0
  67. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/core/pose.py +0 -0
  68. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/core/smoothing.py +0 -0
  69. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/core/video_io.py +0 -0
  70. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/dropjump/__init__.py +0 -0
  71. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/dropjump/analysis.py +0 -0
  72. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/dropjump/cli.py +0 -0
  73. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/dropjump/debug_overlay.py +0 -0
  74. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/dropjump/kinematics.py +0 -0
  75. {kinemotion-0.17.6 → kinemotion-0.18.1}/src/kinemotion/py.typed +0 -0
  76. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/__init__.py +0 -0
  77. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_adaptive_threshold.py +0 -0
  78. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_api.py +0 -0
  79. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_aspect_ratio.py +0 -0
  80. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_cli_imports.py +0 -0
  81. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_cmj_analysis.py +0 -0
  82. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_cmj_kinematics.py +0 -0
  83. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_com_estimation.py +0 -0
  84. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_contact_detection.py +0 -0
  85. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_filtering.py +0 -0
  86. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_kinematics.py +0 -0
  87. {kinemotion-0.17.6 → kinemotion-0.18.1}/tests/test_polyorder.py +0 -0
@@ -1,25 +1,19 @@
1
1
  name: Documentation
2
2
 
3
3
  on:
4
- # Trigger after release workflow completes (which bumps version)
5
- workflow_run:
6
- workflows: ["Release"]
7
- types:
8
- - completed
9
- branches: [main]
10
- # Also allow manual trigger and PR builds
4
+ # Build docs on PRs for validation (not deployed)
11
5
  pull_request:
12
6
  branches: [main]
13
- workflow_dispatch:
7
+ # Called by release workflow for deployment
8
+ workflow_call:
14
9
 
15
10
  jobs:
16
11
  build:
17
12
  runs-on: ubuntu-latest
18
13
  steps:
19
- - uses: actions/checkout@v4
14
+ - name: Checkout repository
15
+ uses: actions/checkout@v4
20
16
  with:
21
- # Check out main to get the version bump commit from semantic-release
22
- ref: main
23
17
  fetch-depth: 0
24
18
 
25
19
  - name: Set up Python
@@ -27,9 +21,10 @@ jobs:
27
21
  with:
28
22
  python-version: "3.12"
29
23
 
30
- - name: Install uv
31
- uses: astral-sh/setup-uv@v3
24
+ - name: Set up uv
25
+ uses: astral-sh/setup-uv@v5
32
26
  with:
27
+ version: "0.8.17"
33
28
  enable-cache: true
34
29
 
35
30
  - name: Install dependencies
@@ -47,29 +42,33 @@ jobs:
47
42
  path: site/
48
43
 
49
44
  deploy:
50
- # Deploy only after successful release workflow, not on PRs
51
- if: github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success'
45
+ name: Deploy to GitHub Pages
46
+ # Only deploy when called from release workflow, not on PRs
47
+ if: github.event_name == 'workflow_call'
52
48
  needs: build
53
49
  runs-on: ubuntu-latest
54
50
  permissions:
55
51
  contents: write
56
52
  steps:
57
- - uses: actions/checkout@v4
53
+ - name: Checkout repository
54
+ uses: actions/checkout@v4
58
55
  with:
59
56
  ref: main
60
- fetch-depth: 0 # Fetch all history for gh-deploy
57
+ fetch-depth: 0
61
58
 
62
59
  - name: Set up Python
63
60
  uses: actions/setup-python@v5
64
61
  with:
65
62
  python-version: "3.12"
66
63
 
67
- - name: Install uv
68
- uses: astral-sh/setup-uv@v3
64
+ - name: Set up uv
65
+ uses: astral-sh/setup-uv@v5
66
+ with:
67
+ version: "0.8.17"
68
+ enable-cache: true
69
69
 
70
70
  - name: Install dependencies
71
- run: |
72
- uv sync --frozen
71
+ run: uv sync --frozen
73
72
 
74
73
  - name: Configure git
75
74
  run: |
@@ -77,5 +76,4 @@ jobs:
77
76
  git config user.email "github-actions[bot]@users.noreply.github.com"
78
77
 
79
78
  - name: Deploy to GitHub Pages
80
- run: |
81
- uv run mkdocs gh-deploy --force
79
+ run: uv run mkdocs gh-deploy --force
@@ -6,8 +6,15 @@ on:
6
6
  - main
7
7
 
8
8
  jobs:
9
+ test:
10
+ name: Run Tests
11
+ uses: ./.github/workflows/test.yml
12
+ secrets:
13
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
14
+
9
15
  release:
10
16
  name: Create Release
17
+ needs: test
11
18
  runs-on: ubuntu-latest
12
19
  permissions:
13
20
  contents: write
@@ -59,6 +66,14 @@ jobs:
59
66
  if: steps.get_version.outputs.released == 'true'
60
67
  uses: pypa/gh-action-pypi-publish@release/v1
61
68
 
69
+ docs:
70
+ name: Deploy Documentation
71
+ needs: release
72
+ if: needs.release.outputs.released == 'true'
73
+ uses: ./.github/workflows/docs.yml
74
+ permissions:
75
+ contents: write
76
+
62
77
  docker:
63
78
  name: Build and Push Docker Image
64
79
  needs: release
@@ -7,15 +7,15 @@ on:
7
7
  pull_request:
8
8
  branches:
9
9
  - main
10
+ workflow_call: # Allow this workflow to be called by other workflows
11
+ secrets:
12
+ SONAR_TOKEN:
13
+ required: false
10
14
 
11
15
  jobs:
12
16
  test:
13
- name: Test (Python ${{ matrix.python-version }})
17
+ name: Test & Quality
14
18
  runs-on: ubuntu-latest
15
- strategy:
16
- fail-fast: false # Continue running other matrix jobs even if one fails
17
- matrix:
18
- python-version: ["3.10", "3.11", "3.12"]
19
19
 
20
20
  steps:
21
21
  - name: Checkout repository
@@ -23,10 +23,10 @@ jobs:
23
23
  with:
24
24
  fetch-depth: 0 # Shallow clones should be disabled for better SonarQube analysis
25
25
 
26
- - name: Set up Python ${{ matrix.python-version }}
26
+ - name: Set up Python 3.12
27
27
  uses: actions/setup-python@v5
28
28
  with:
29
- python-version: ${{ matrix.python-version }}
29
+ python-version: "3.12"
30
30
 
31
31
  - name: Install system dependencies
32
32
  run: |
@@ -64,7 +64,6 @@ jobs:
64
64
  uv run pytest --cov --cov-report=xml --cov-report=term
65
65
 
66
66
  - name: Upload coverage artifact
67
- if: matrix.python-version == '3.12'
68
67
  uses: actions/upload-artifact@v4
69
68
  with:
70
69
  name: coverage-report
@@ -90,7 +89,6 @@ jobs:
90
89
 
91
90
  - name: SonarQube Scan
92
91
  uses: SonarSource/sonarqube-scan-action@v6
93
- continue-on-error: true # Don't fail workflow if SonarCloud isn't configured yet
94
92
  env:
95
93
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
96
94
  SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  <!-- version list -->
9
9
 
10
+ ## v0.18.1 (2025-11-10)
11
+
12
+ ### Bug Fixes
13
+
14
+ - Ci build
15
+ ([`f45e2c3`](https://github.com/feniix/kinemotion/commit/f45e2c3c11ae241d24de3e44836206e111defc2a))
16
+
17
+ ### Refactoring
18
+
19
+ - **ci**: Use reusable workflow for docs deployment
20
+ ([`013dbd1`](https://github.com/feniix/kinemotion/commit/013dbd112cd5bcbe69bc405066b39bb142996d46))
21
+
22
+
23
+ ## v0.18.0 (2025-11-10)
24
+
25
+ ### Bug Fixes
26
+
27
+ - **ci**: Pass SONAR_TOKEN to reusable test workflow
28
+ ([`79919d0`](https://github.com/feniix/kinemotion/commit/79919d065e5db5d039deec899324c76fa9c11960))
29
+
30
+ ### Features
31
+
32
+ - **ci**: Streamline testing and enforce quality gates before release
33
+ ([`7b95bc5`](https://github.com/feniix/kinemotion/commit/7b95bc5890521bd10910c87024f77c32475a8fad))
34
+
35
+
10
36
  ## v0.17.6 (2025-11-10)
11
37
 
12
38
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.17.6
3
+ Version: 0.18.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.17.6"
3
+ version = "0.18.1"
4
4
  description = "Video-based kinematic analysis for athletic performance"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10,<3.13"
@@ -1,7 +1,6 @@
1
1
  # Project identification
2
2
  sonar.projectKey=feniix_kinemotion
3
3
  sonar.projectName=Kinemotion
4
- sonar.projectVersion=0.16.0
5
4
  sonar.organization=feniix
6
5
 
7
6
  # Project metadata
@@ -700,7 +700,7 @@ wheels = [
700
700
 
701
701
  [[package]]
702
702
  name = "kinemotion"
703
- version = "0.17.6"
703
+ version = "0.18.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