InterpolatePy 1.1.0__tar.gz → 2.0.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.
- interpolatepy-2.0.1/.github/FUNDING.yml +15 -0
- interpolatepy-2.0.1/.github/workflows/docs.yml +74 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/.github/workflows/pre-commit.yml +1 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/.github/workflows/publish.yml +1 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/.github/workflows/test.yml +20 -6
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/.gitignore +3 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/.pre-commit-config.yaml +4 -13
- interpolatepy-2.0.1/ALGORITHMS.md +1092 -0
- interpolatepy-2.0.1/InterpolatePy.egg-info/PKG-INFO +375 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/InterpolatePy.egg-info/SOURCES.txt +42 -1
- interpolatepy-2.0.1/InterpolatePy.egg-info/requires.txt +21 -0
- interpolatepy-2.0.1/PKG-INFO +375 -0
- interpolatepy-2.0.1/README.md +319 -0
- interpolatepy-2.0.1/codecov.yml +27 -0
- interpolatepy-2.0.1/docs/algorithms.md +819 -0
- interpolatepy-2.0.1/docs/api-reference.md +642 -0
- interpolatepy-2.0.1/docs/assets/extra.css +110 -0
- interpolatepy-2.0.1/docs/assets/extra.js +79 -0
- interpolatepy-2.0.1/docs/changelog.md +223 -0
- interpolatepy-2.0.1/docs/contributing.md +656 -0
- interpolatepy-2.0.1/docs/examples.md +1436 -0
- interpolatepy-2.0.1/docs/index.md +194 -0
- interpolatepy-2.0.1/docs/installation.md +355 -0
- interpolatepy-2.0.1/docs/quickstart.md +379 -0
- interpolatepy-2.0.1/docs/troubleshooting.md +423 -0
- interpolatepy-2.0.1/docs/tutorials/motion-profiles.md +906 -0
- interpolatepy-2.0.1/docs/tutorials/spline-interpolation.md +941 -0
- interpolatepy-2.0.1/docs/user-guide.md +680 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/b_spline_approx_ex.py +20 -4
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/b_spline_ex.py +6 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/c_s_smoot_search_ex.py +5 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/c_s_smoothing_ex.py +5 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/c_s_with_acc1_ex.py +47 -9
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/c_s_with_acc2_ex.py +3 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/cubic_spline_ex.py +2 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/lin_poly_parabolic_ex.py +2 -1
- interpolatepy-2.0.1/examples/log_quat_ex.py +207 -0
- interpolatepy-2.0.1/examples/log_quat_new_ex.py +394 -0
- interpolatepy-2.0.1/examples/quat_visualization_ex.py +295 -0
- interpolatepy-2.0.1/examples/squad_c2_ex.py +225 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/trapezoidal_ex.py +24 -4
- interpolatepy-2.0.1/interpolatepy/__init__.py +100 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/b_spline.py +75 -29
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/b_spline_approx.py +17 -5
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/b_spline_cubic.py +12 -17
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/b_spline_interpolate.py +29 -6
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/b_spline_smooth.py +15 -11
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/c_s_smoot_search.py +18 -5
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/c_s_smoothing.py +10 -4
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/c_s_with_acc1.py +5 -3
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/c_s_with_acc2.py +16 -2
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/cubic_spline.py +16 -13
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/double_s.py +57 -50
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/frenet_frame.py +30 -10
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/lin_poly_parabolic.py +16 -4
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/linear.py +8 -0
- interpolatepy-2.0.1/interpolatepy/log_quat.py +950 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/polynomials.py +204 -46
- interpolatepy-2.0.1/interpolatepy/quat_core.py +682 -0
- interpolatepy-2.0.1/interpolatepy/quat_spline.py +348 -0
- interpolatepy-2.0.1/interpolatepy/quat_visualization.py +584 -0
- interpolatepy-2.0.1/interpolatepy/simple_paths.py +436 -0
- interpolatepy-2.0.1/interpolatepy/squad_c2.py +515 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/trapezoidal.py +103 -36
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/tridiagonal_inv.py +8 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/interpolatepy/version.py +1 -1
- interpolatepy-2.0.1/mkdocs.yml +159 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/pyproject.toml +49 -85
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/requirements-dev.txt +10 -21
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/tests/inv_test.py +20 -8
- interpolatepy-2.0.1/tests/test_b_spline.py +840 -0
- interpolatepy-2.0.1/tests/test_b_spline_variants.py +1123 -0
- interpolatepy-2.0.1/tests/test_cubic_spline.py +639 -0
- interpolatepy-2.0.1/tests/test_lin_poly_parabolic.py +667 -0
- interpolatepy-2.0.1/tests/test_linear.py +507 -0
- interpolatepy-2.0.1/tests/test_log_quat.py +654 -0
- interpolatepy-2.0.1/tests/test_motion_profiles.py +709 -0
- interpolatepy-2.0.1/tests/test_path_planning.py +1045 -0
- interpolatepy-2.0.1/tests/test_polynomials.py +818 -0
- interpolatepy-2.0.1/tests/test_quat_interp.py +1251 -0
- interpolatepy-2.0.1/tests/test_quat_visualization.py +767 -0
- interpolatepy-2.0.1/tests/test_smoothing.py +1509 -0
- interpolatepy-2.0.1/tests/test_squad_c2.py +658 -0
- interpolatepy-1.1.0/InterpolatePy.egg-info/PKG-INFO +0 -279
- interpolatepy-1.1.0/InterpolatePy.egg-info/requires.txt +0 -23
- interpolatepy-1.1.0/PKG-INFO +0 -279
- interpolatepy-1.1.0/README.md +0 -220
- interpolatepy-1.1.0/interpolatepy/__init__.py +0 -8
- interpolatepy-1.1.0/interpolatepy/simple_paths.py +0 -281
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/.editorconfig +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/.gitattributes +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/InterpolatePy.egg-info/dependency_links.txt +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/InterpolatePy.egg-info/top_level.txt +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/LICENSE +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/b_spline_cubic_ex.py +1 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/b_spline_interpolate_ex.py +1 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/b_spline_smooth_ex.py +1 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/double_s_ex.py +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/frenet_frame_ex.py +1 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/linear_ex.py +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/main.py +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/polynomials_ex.py +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/examples/simple_paths_ex.py +1 -1
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/requirements.txt +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/setup.cfg +0 -0
- {interpolatepy-1.1.0 → interpolatepy-2.0.1}/tests/__init__.py +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# These are supported funding model platforms
|
|
2
|
+
|
|
3
|
+
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
|
4
|
+
patreon: # Replace with a single Patreon username
|
|
5
|
+
open_collective: # Replace with a single Open Collective username
|
|
6
|
+
ko_fi: giorgio23
|
|
7
|
+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
8
|
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
9
|
+
liberapay: # Replace with a single Liberapay username
|
|
10
|
+
issuehunt: # Replace with a single IssueHunt username
|
|
11
|
+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
|
12
|
+
polar: # Replace with a single Polar username
|
|
13
|
+
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
|
14
|
+
thanks_dev: # Replace with a single thanks.dev username
|
|
15
|
+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
@@ -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.12'
|
|
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
|
+
|
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
13
|
strategy:
|
|
14
14
|
matrix:
|
|
15
|
-
python-version: ['3.
|
|
15
|
+
python-version: ['3.11', '3.12', '3.13']
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@v4
|
|
18
18
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -24,15 +24,22 @@ jobs:
|
|
|
24
24
|
python -m pip install --upgrade pip
|
|
25
25
|
pip install -r requirements-dev.txt
|
|
26
26
|
pip install -e .
|
|
27
|
-
- name: Testing
|
|
27
|
+
- name: Testing with coverage
|
|
28
28
|
run: |
|
|
29
|
-
python -m pytest tests
|
|
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
|
|
30
37
|
|
|
31
38
|
build-macos:
|
|
32
39
|
runs-on: macos-latest
|
|
33
40
|
strategy:
|
|
34
41
|
matrix:
|
|
35
|
-
python-version: ['3.
|
|
42
|
+
python-version: ['3.11', '3.12', '3.13']
|
|
36
43
|
steps:
|
|
37
44
|
- uses: actions/checkout@v4
|
|
38
45
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -44,6 +51,13 @@ jobs:
|
|
|
44
51
|
python -m pip install --upgrade pip
|
|
45
52
|
pip install -r requirements-dev.txt
|
|
46
53
|
pip install -e .
|
|
47
|
-
- name: Testing
|
|
54
|
+
- name: Testing with coverage
|
|
48
55
|
run: |
|
|
49
|
-
python -m pytest tests
|
|
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
|
|
@@ -2,33 +2,24 @@ default_language_version:
|
|
|
2
2
|
python: python3
|
|
3
3
|
repos:
|
|
4
4
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
5
|
-
rev:
|
|
5
|
+
rev: v6.0.0
|
|
6
6
|
hooks:
|
|
7
7
|
- id: check-ast
|
|
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.
|
|
15
|
+
rev: 'v0.12.8'
|
|
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.
|
|
22
|
+
rev: v1.17.1
|
|
32
23
|
hooks:
|
|
33
24
|
- id: mypy
|
|
34
25
|
args: [--ignore-missing-imports]
|