kinemotion 0.17.6__tar.gz → 0.18.0__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 (87) hide show
  1. {kinemotion-0.17.6 → kinemotion-0.18.0}/.github/workflows/release.yml +7 -0
  2. {kinemotion-0.17.6 → kinemotion-0.18.0}/.github/workflows/test.yml +7 -9
  3. {kinemotion-0.17.6 → kinemotion-0.18.0}/CHANGELOG.md +13 -0
  4. {kinemotion-0.17.6 → kinemotion-0.18.0}/PKG-INFO +1 -1
  5. {kinemotion-0.17.6 → kinemotion-0.18.0}/pyproject.toml +1 -1
  6. {kinemotion-0.17.6 → kinemotion-0.18.0}/sonar-project.properties +0 -1
  7. {kinemotion-0.17.6 → kinemotion-0.18.0}/uv.lock +1 -1
  8. {kinemotion-0.17.6 → kinemotion-0.18.0}/.dockerignore +0 -0
  9. {kinemotion-0.17.6 → kinemotion-0.18.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  10. {kinemotion-0.17.6 → kinemotion-0.18.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  11. {kinemotion-0.17.6 → kinemotion-0.18.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  12. {kinemotion-0.17.6 → kinemotion-0.18.0}/.github/pull_request_template.md +0 -0
  13. {kinemotion-0.17.6 → kinemotion-0.18.0}/.github/workflows/docs.yml +0 -0
  14. {kinemotion-0.17.6 → kinemotion-0.18.0}/.gitignore +0 -0
  15. {kinemotion-0.17.6 → kinemotion-0.18.0}/.pre-commit-config.yaml +0 -0
  16. {kinemotion-0.17.6 → kinemotion-0.18.0}/.readthedocs.yml +0 -0
  17. {kinemotion-0.17.6 → kinemotion-0.18.0}/.tool-versions +0 -0
  18. {kinemotion-0.17.6 → kinemotion-0.18.0}/CLAUDE.md +0 -0
  19. {kinemotion-0.17.6 → kinemotion-0.18.0}/CODE_OF_CONDUCT.md +0 -0
  20. {kinemotion-0.17.6 → kinemotion-0.18.0}/CONTRIBUTING.md +0 -0
  21. {kinemotion-0.17.6 → kinemotion-0.18.0}/Dockerfile +0 -0
  22. {kinemotion-0.17.6 → kinemotion-0.18.0}/GEMINI.md +0 -0
  23. {kinemotion-0.17.6 → kinemotion-0.18.0}/LICENSE +0 -0
  24. {kinemotion-0.17.6 → kinemotion-0.18.0}/README.md +0 -0
  25. {kinemotion-0.17.6 → kinemotion-0.18.0}/SECURITY.md +0 -0
  26. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/README.md +0 -0
  27. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/api/cmj.md +0 -0
  28. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/api/core.md +0 -0
  29. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/api/dropjump.md +0 -0
  30. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/api/overview.md +0 -0
  31. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/development/errors-findings.md +0 -0
  32. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/development/validation-plan.md +0 -0
  33. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/development/wallball-norep-detection.md +0 -0
  34. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/guides/bulk-processing.md +0 -0
  35. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/guides/camera-setup.md +0 -0
  36. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/guides/cmj-guide.md +0 -0
  37. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/index.md +0 -0
  38. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/reference/parameters.md +0 -0
  39. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/reference/pose-systems.md +0 -0
  40. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
  41. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/technical/framerate.md +0 -0
  42. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/technical/imu-metadata.md +0 -0
  43. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/technical/real-time-analysis.md +0 -0
  44. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/technical/triple-extension.md +0 -0
  45. {kinemotion-0.17.6 → kinemotion-0.18.0}/docs/translations/es/camera-setup.md +0 -0
  46. {kinemotion-0.17.6 → kinemotion-0.18.0}/examples/bulk/README.md +0 -0
  47. {kinemotion-0.17.6 → kinemotion-0.18.0}/examples/bulk/bulk_processing.py +0 -0
  48. {kinemotion-0.17.6 → kinemotion-0.18.0}/examples/bulk/simple_example.py +0 -0
  49. {kinemotion-0.17.6 → kinemotion-0.18.0}/examples/programmatic_usage.py +0 -0
  50. {kinemotion-0.17.6 → kinemotion-0.18.0}/mkdocs.yml +0 -0
  51. {kinemotion-0.17.6 → kinemotion-0.18.0}/requirements-docs.txt +0 -0
  52. {kinemotion-0.17.6 → kinemotion-0.18.0}/samples/cmjs/README.md +0 -0
  53. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/__init__.py +0 -0
  54. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/api.py +0 -0
  55. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/cli.py +0 -0
  56. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/cmj/__init__.py +0 -0
  57. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/cmj/analysis.py +0 -0
  58. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/cmj/cli.py +0 -0
  59. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/cmj/debug_overlay.py +0 -0
  60. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/cmj/joint_angles.py +0 -0
  61. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/cmj/kinematics.py +0 -0
  62. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/core/__init__.py +0 -0
  63. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/core/auto_tuning.py +0 -0
  64. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/core/cli_utils.py +0 -0
  65. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/core/debug_overlay_utils.py +0 -0
  66. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/core/filtering.py +0 -0
  67. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/core/pose.py +0 -0
  68. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/core/smoothing.py +0 -0
  69. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/core/video_io.py +0 -0
  70. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/dropjump/__init__.py +0 -0
  71. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/dropjump/analysis.py +0 -0
  72. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/dropjump/cli.py +0 -0
  73. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/dropjump/debug_overlay.py +0 -0
  74. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/dropjump/kinematics.py +0 -0
  75. {kinemotion-0.17.6 → kinemotion-0.18.0}/src/kinemotion/py.typed +0 -0
  76. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/__init__.py +0 -0
  77. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_adaptive_threshold.py +0 -0
  78. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_api.py +0 -0
  79. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_aspect_ratio.py +0 -0
  80. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_cli_imports.py +0 -0
  81. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_cmj_analysis.py +0 -0
  82. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_cmj_kinematics.py +0 -0
  83. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_com_estimation.py +0 -0
  84. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_contact_detection.py +0 -0
  85. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_filtering.py +0 -0
  86. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_kinematics.py +0 -0
  87. {kinemotion-0.17.6 → kinemotion-0.18.0}/tests/test_polyorder.py +0 -0
@@ -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
@@ -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,19 @@ 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.0 (2025-11-10)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **ci**: Pass SONAR_TOKEN to reusable test workflow
15
+ ([`79919d0`](https://github.com/feniix/kinemotion/commit/79919d065e5db5d039deec899324c76fa9c11960))
16
+
17
+ ### Features
18
+
19
+ - **ci**: Streamline testing and enforce quality gates before release
20
+ ([`7b95bc5`](https://github.com/feniix/kinemotion/commit/7b95bc5890521bd10910c87024f77c32475a8fad))
21
+
22
+
10
23
  ## v0.17.6 (2025-11-10)
11
24
 
12
25
  ### 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.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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kinemotion"
3
- version = "0.17.6"
3
+ version = "0.18.0"
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.0"
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