InterpolatePy 1.0.3__tar.gz → 2.0.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 (105) hide show
  1. interpolatepy-2.0.0/.github/workflows/docs.yml +74 -0
  2. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/.github/workflows/pre-commit.yml +1 -1
  3. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/.github/workflows/publish.yml +1 -1
  4. interpolatepy-2.0.0/.github/workflows/test.yml +63 -0
  5. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/.gitignore +3 -0
  6. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/.pre-commit-config.yaml +5 -12
  7. interpolatepy-2.0.0/ALGORITHMS.md +1092 -0
  8. interpolatepy-2.0.0/InterpolatePy.egg-info/PKG-INFO +345 -0
  9. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/InterpolatePy.egg-info/SOURCES.txt +43 -1
  10. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/InterpolatePy.egg-info/requires.txt +2 -4
  11. interpolatepy-2.0.0/PKG-INFO +345 -0
  12. interpolatepy-2.0.0/README.md +290 -0
  13. interpolatepy-2.0.0/codecov.yml +27 -0
  14. interpolatepy-2.0.0/docs/algorithms.md +818 -0
  15. interpolatepy-2.0.0/docs/api-reference.md +640 -0
  16. interpolatepy-2.0.0/docs/assets/extra.css +110 -0
  17. interpolatepy-2.0.0/docs/assets/extra.js +79 -0
  18. interpolatepy-2.0.0/docs/changelog.md +223 -0
  19. interpolatepy-2.0.0/docs/contributing.md +656 -0
  20. interpolatepy-2.0.0/docs/examples.md +1414 -0
  21. interpolatepy-2.0.0/docs/index.md +179 -0
  22. interpolatepy-2.0.0/docs/installation.md +355 -0
  23. interpolatepy-2.0.0/docs/quickstart.md +369 -0
  24. interpolatepy-2.0.0/docs/troubleshooting.md +413 -0
  25. interpolatepy-2.0.0/docs/tutorials/motion-profiles.md +861 -0
  26. interpolatepy-2.0.0/docs/tutorials/spline-interpolation.md +926 -0
  27. interpolatepy-2.0.0/docs/user-guide.md +673 -0
  28. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/b_spline_approx_ex.py +20 -4
  29. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/b_spline_ex.py +6 -1
  30. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/c_s_smoot_search_ex.py +5 -1
  31. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/c_s_smoothing_ex.py +5 -1
  32. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/c_s_with_acc1_ex.py +47 -9
  33. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/c_s_with_acc2_ex.py +3 -0
  34. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/cubic_spline_ex.py +2 -0
  35. interpolatepy-2.0.0/examples/lin_poly_parabolic_ex.py +124 -0
  36. interpolatepy-2.0.0/examples/log_quat_ex.py +207 -0
  37. interpolatepy-2.0.0/examples/log_quat_new_ex.py +394 -0
  38. interpolatepy-2.0.0/examples/quat_visualization_ex.py +295 -0
  39. interpolatepy-2.0.0/examples/squad_c2_ex.py +225 -0
  40. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/trapezoidal_ex.py +24 -4
  41. interpolatepy-2.0.0/interpolatepy/__init__.py +100 -0
  42. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/b_spline.py +75 -29
  43. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/b_spline_approx.py +9 -5
  44. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/b_spline_cubic.py +12 -17
  45. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/b_spline_interpolate.py +21 -6
  46. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/b_spline_smooth.py +7 -11
  47. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/c_s_smoot_search.py +18 -5
  48. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/c_s_smoothing.py +10 -4
  49. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/c_s_with_acc1.py +5 -3
  50. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/c_s_with_acc2.py +16 -2
  51. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/cubic_spline.py +16 -13
  52. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/double_s.py +57 -50
  53. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/frenet_frame.py +30 -10
  54. interpolatepy-2.0.0/interpolatepy/lin_poly_parabolic.py +224 -0
  55. interpolatepy-2.0.0/interpolatepy/log_quat.py +950 -0
  56. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/polynomials.py +0 -1
  57. interpolatepy-2.0.0/interpolatepy/quat_core.py +682 -0
  58. interpolatepy-2.0.0/interpolatepy/quat_spline.py +348 -0
  59. interpolatepy-2.0.0/interpolatepy/quat_visualization.py +584 -0
  60. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/simple_paths.py +12 -3
  61. interpolatepy-2.0.0/interpolatepy/squad_c2.py +515 -0
  62. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/trapezoidal.py +0 -1
  63. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/version.py +1 -1
  64. interpolatepy-2.0.0/mkdocs.yml +159 -0
  65. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/pyproject.toml +41 -79
  66. interpolatepy-2.0.0/requirements-dev.txt +28 -0
  67. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/tests/inv_test.py +20 -8
  68. interpolatepy-2.0.0/tests/test_b_spline.py +840 -0
  69. interpolatepy-2.0.0/tests/test_b_spline_variants.py +1123 -0
  70. interpolatepy-2.0.0/tests/test_cubic_spline.py +639 -0
  71. interpolatepy-2.0.0/tests/test_lin_poly_parabolic.py +667 -0
  72. interpolatepy-2.0.0/tests/test_linear.py +507 -0
  73. interpolatepy-2.0.0/tests/test_log_quat.py +654 -0
  74. interpolatepy-2.0.0/tests/test_motion_profiles.py +709 -0
  75. interpolatepy-2.0.0/tests/test_path_planning.py +1045 -0
  76. interpolatepy-2.0.0/tests/test_polynomials.py +818 -0
  77. interpolatepy-2.0.0/tests/test_quat_interp.py +1251 -0
  78. interpolatepy-2.0.0/tests/test_quat_visualization.py +767 -0
  79. interpolatepy-2.0.0/tests/test_smoothing.py +1509 -0
  80. interpolatepy-2.0.0/tests/test_squad_c2.py +658 -0
  81. interpolatepy-1.0.3/.github/workflows/test.yml +0 -42
  82. interpolatepy-1.0.3/InterpolatePy.egg-info/PKG-INFO +0 -473
  83. interpolatepy-1.0.3/PKG-INFO +0 -473
  84. interpolatepy-1.0.3/README.md +0 -413
  85. interpolatepy-1.0.3/interpolatepy/__init__.py +0 -8
  86. interpolatepy-1.0.3/requirements-dev.txt +0 -19
  87. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/.editorconfig +0 -0
  88. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/.gitattributes +0 -0
  89. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/InterpolatePy.egg-info/dependency_links.txt +0 -0
  90. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/InterpolatePy.egg-info/top_level.txt +0 -0
  91. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/LICENSE +0 -0
  92. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/b_spline_cubic_ex.py +1 -1
  93. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/b_spline_interpolate_ex.py +1 -1
  94. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/b_spline_smooth_ex.py +1 -1
  95. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/double_s_ex.py +0 -0
  96. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/frenet_frame_ex.py +1 -1
  97. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/linear_ex.py +0 -0
  98. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/main.py +0 -0
  99. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/polynomials_ex.py +0 -0
  100. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/examples/simple_paths_ex.py +1 -1
  101. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/linear.py +0 -0
  102. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/interpolatepy/tridiagonal_inv.py +0 -0
  103. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/requirements.txt +0 -0
  104. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/setup.cfg +0 -0
  105. {interpolatepy-1.0.3 → interpolatepy-2.0.0}/tests/__init__.py +0 -0
@@ -0,0 +1,74 @@
1
+ name: Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, dev ]
6
+ paths:
7
+ - 'docs/**'
8
+ - 'mkdocs.yml'
9
+ - 'interpolatepy/**/*.py' # Only Python files for API docs
10
+ - '.github/workflows/docs.yml'
11
+ pull_request:
12
+ branches: [ main ]
13
+ paths:
14
+ - 'docs/**'
15
+ - 'mkdocs.yml'
16
+ - 'interpolatepy/**/*.py'
17
+ workflow_dispatch: # Allow manual triggering
18
+
19
+ permissions:
20
+ contents: read
21
+ pages: write
22
+ id-token: write
23
+
24
+ concurrency:
25
+ group: "pages"
26
+ cancel-in-progress: false
27
+
28
+ jobs:
29
+ build:
30
+ runs-on: ubuntu-latest
31
+
32
+ steps:
33
+ - name: Checkout repository
34
+ uses: actions/checkout@v4
35
+
36
+ - name: Set up Python
37
+ uses: actions/setup-python@v5
38
+ with:
39
+ python-version: '3.11'
40
+ cache: 'pip'
41
+
42
+ - name: Install dependencies
43
+ run: |
44
+ python -m pip install --upgrade pip
45
+ pip install -r requirements-dev.txt
46
+ pip install -e .
47
+
48
+ - name: Build documentation
49
+ run: |
50
+ mkdocs build --clean --strict
51
+
52
+ - name: Setup Pages
53
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
54
+ uses: actions/configure-pages@v4
55
+
56
+ - name: Upload artifact
57
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
58
+ uses: actions/upload-pages-artifact@v3
59
+ with:
60
+ path: ./site
61
+
62
+ deploy:
63
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
64
+ environment:
65
+ name: github-pages
66
+ url: ${{ steps.deployment.outputs.page_url }}
67
+ runs-on: ubuntu-latest
68
+ needs: build
69
+
70
+ steps:
71
+ - name: Deploy to GitHub Pages
72
+ id: deployment
73
+ uses: actions/deploy-pages@v4
74
+
@@ -13,5 +13,5 @@ jobs:
13
13
  - name: Set up Python
14
14
  uses: actions/setup-python@v5
15
15
  with:
16
- python-version: '3.11'
16
+ python-version: '3.10'
17
17
  - uses: pre-commit/action@v3.0.1
@@ -12,7 +12,7 @@ jobs:
12
12
  - name: Set up Python
13
13
  uses: actions/setup-python@v5
14
14
  with:
15
- python-version: '3.11'
15
+ python-version: '3.10'
16
16
  - name: Install dependencies
17
17
  run: |
18
18
  python -m pip install --upgrade pip
@@ -0,0 +1,63 @@
1
+
2
+ name: ci-test
3
+
4
+ on:
5
+ push:
6
+ branches: [ main, master ]
7
+ pull_request:
8
+ branches: [ main, master ]
9
+
10
+ jobs:
11
+ build-linux:
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ['3.10', '3.11', '3.12']
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - name: Set up Python ${{ matrix.python-version }}
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: ${{ matrix.python-version }}
22
+ - name: Install dependencies
23
+ run: |
24
+ python -m pip install --upgrade pip
25
+ pip install -r requirements-dev.txt
26
+ pip install -e .
27
+ - name: Testing with coverage
28
+ run: |
29
+ python -m pytest tests --cov=interpolatepy --cov-report=xml --cov-report=term-missing
30
+ - name: Upload coverage to Codecov
31
+ uses: codecov/codecov-action@v5
32
+ with:
33
+ file: ./coverage.xml
34
+ flags: unittests
35
+ name: codecov-umbrella
36
+ fail_ci_if_error: false
37
+
38
+ build-macos:
39
+ runs-on: macos-latest
40
+ strategy:
41
+ matrix:
42
+ python-version: ['3.10', '3.11', '3.12']
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+ - name: Set up Python ${{ matrix.python-version }}
46
+ uses: actions/setup-python@v5
47
+ with:
48
+ python-version: ${{ matrix.python-version }}
49
+ - name: Install dependencies
50
+ run: |
51
+ python -m pip install --upgrade pip
52
+ pip install -r requirements-dev.txt
53
+ pip install -e .
54
+ - name: Testing with coverage
55
+ run: |
56
+ python -m pytest tests --cov=interpolatepy --cov-report=xml --cov-report=term-missing
57
+ - name: Upload coverage to Codecov
58
+ uses: codecov/codecov-action@v5
59
+ with:
60
+ file: ./coverage.xml
61
+ flags: unittests
62
+ name: codecov-umbrella
63
+ fail_ci_if_error: false
@@ -19,6 +19,7 @@ data/*.h5
19
19
  venv/
20
20
  .venv/
21
21
  .conda/
22
+ .claude/
22
23
 
23
24
  ################################
24
25
  ########### PYTHON #############
@@ -138,3 +139,5 @@ venv.bak/
138
139
  .vscode
139
140
  *.code-workspace
140
141
  .history
142
+
143
+ CLAUDE.md
@@ -8,27 +8,20 @@ repos:
8
8
  - id: check-builtin-literals
9
9
  - id: check-merge-conflict
10
10
  - id: check-yaml
11
+ exclude: ^mkdocs\.yml$
11
12
  - id: check-toml
12
13
 
13
- - repo: https://github.com/PyCQA/isort
14
- rev: 6.0.1
15
- hooks:
16
- - id: isort
17
-
18
- - repo: https://github.com/psf/black
19
- rev: 25.1.0
20
- hooks:
21
- - id: black
22
-
23
14
  - repo: https://github.com/astral-sh/ruff-pre-commit
24
- rev: 'v0.11.0'
15
+ rev: 'v0.12.7'
25
16
  hooks:
26
17
  - id: ruff
27
18
  types_or: [python, pyi, jupyter]
28
19
  args: [ --fix, --exit-non-zero-on-fix, --preview ]
29
20
 
30
21
  - repo: https://github.com/pre-commit/mirrors-mypy
31
- rev: v1.15.0
22
+ rev: v1.17.1
32
23
  hooks:
33
24
  - id: mypy
34
25
  args: [--ignore-missing-imports]
26
+
27
+ # pre-commit autoupdate