rheaps 0.16.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.
- rheaps-0.16.0/.github/workflows/CI.yml +85 -0
- rheaps-0.16.0/.github/workflows/publish-pypi.yml +125 -0
- rheaps-0.16.0/.github/workflows/publish-testpypi.yml +149 -0
- rheaps-0.16.0/.gitignore +225 -0
- rheaps-0.16.0/.readthedocs.yaml +19 -0
- rheaps-0.16.0/Cargo.lock +195 -0
- rheaps-0.16.0/Cargo.toml +22 -0
- rheaps-0.16.0/LICENSE +201 -0
- rheaps-0.16.0/PKG-INFO +337 -0
- rheaps-0.16.0/README.md +315 -0
- rheaps-0.16.0/docs/Makefile +20 -0
- rheaps-0.16.0/docs/_static/.gitignore +0 -0
- rheaps-0.16.0/docs/api/handles.rst +40 -0
- rheaps-0.16.0/docs/api/heaps.rst +157 -0
- rheaps-0.16.0/docs/api/index.rst +15 -0
- rheaps-0.16.0/docs/api/introduction.rst +77 -0
- rheaps-0.16.0/docs/conf.py +156 -0
- rheaps-0.16.0/docs/credits.rst +9 -0
- rheaps-0.16.0/docs/index.rst +56 -0
- rheaps-0.16.0/docs/install.rst +19 -0
- rheaps-0.16.0/docs/license.rst +18 -0
- rheaps-0.16.0/docs/make.bat +36 -0
- rheaps-0.16.0/docs/tutorials/addressable_heap.rst +162 -0
- rheaps-0.16.0/docs/tutorials/index.rst +14 -0
- rheaps-0.16.0/examples/README.rst +8 -0
- rheaps-0.16.0/examples/addressable/README.rst +6 -0
- rheaps-0.16.0/examples/addressable/plot_fibonacci.py +60 -0
- rheaps-0.16.0/examples/addressable/plot_pairing.py +114 -0
- rheaps-0.16.0/examples/array/README.rst +7 -0
- rheaps-0.16.0/examples/array/plot_binary_heap.py +58 -0
- rheaps-0.16.0/examples/monotone/README.rst +8 -0
- rheaps-0.16.0/examples/monotone/plot_radix_heap.py +67 -0
- rheaps-0.16.0/pyproject.toml +31 -0
- rheaps-0.16.0/python/rheaps/__init__.py +9 -0
- rheaps-0.16.0/python/rheaps/__version__.py +14 -0
- rheaps-0.16.0/src/error.rs +49 -0
- rheaps-0.16.0/src/handles.rs +36 -0
- rheaps-0.16.0/src/heaps/array.rs +72 -0
- rheaps-0.16.0/src/heaps/dag.rs +8 -0
- rheaps-0.16.0/src/heaps/monotone.rs +67 -0
- rheaps-0.16.0/src/heaps/tree.rs +312 -0
- rheaps-0.16.0/src/key.rs +207 -0
- rheaps-0.16.0/src/lib.rs +60 -0
- rheaps-0.16.0/src/macros.rs +756 -0
- rheaps-0.16.0/tests/test_addressable_heap.py +152 -0
- rheaps-0.16.0/tests/test_array_heap.py +68 -0
- rheaps-0.16.0/tests/test_large_scale.py +401 -0
- rheaps-0.16.0/tests/test_radix_heap.py +63 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: Python rheaps
|
|
2
|
+
|
|
3
|
+
# Build and test machinery only -- no publishing step yet. When the project
|
|
4
|
+
# is ready to release, add a job here (or a separate workflow) that uploads
|
|
5
|
+
# the wheel/sdist artifacts produced below to PyPI, gated on a tag push.
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
branches:
|
|
10
|
+
- main
|
|
11
|
+
pull_request:
|
|
12
|
+
branches:
|
|
13
|
+
- main
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
rust-check:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
21
|
+
- name: cargo check
|
|
22
|
+
run: cargo check --all-targets
|
|
23
|
+
|
|
24
|
+
build-and-test:
|
|
25
|
+
runs-on: ${{ matrix.os }}
|
|
26
|
+
strategy:
|
|
27
|
+
fail-fast: false
|
|
28
|
+
matrix:
|
|
29
|
+
os: [ubuntu-latest, windows-latest, macos-14]
|
|
30
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
- uses: actions/setup-python@v5
|
|
34
|
+
with:
|
|
35
|
+
python-version: ${{ matrix.python-version }}
|
|
36
|
+
# The manylinux build runs inside a container with its own Python
|
|
37
|
+
# interpreters, unrelated to the host's actions/setup-python install,
|
|
38
|
+
# so it needs an explicit -i to pick the matching one. Windows/macOS
|
|
39
|
+
# build natively and pick up whichever Python setup-python just put on
|
|
40
|
+
# PATH automatically -- no -i flag there (its pythonX.Y naming isn't
|
|
41
|
+
# portable to Windows anyway).
|
|
42
|
+
- name: Build wheel (Linux, manylinux)
|
|
43
|
+
if: matrix.os == 'ubuntu-latest'
|
|
44
|
+
uses: PyO3/maturin-action@v1
|
|
45
|
+
with:
|
|
46
|
+
target: x86_64
|
|
47
|
+
manylinux: auto
|
|
48
|
+
args: --release --out dist -i python${{ matrix.python-version }}
|
|
49
|
+
- name: Build wheel (Windows/macOS)
|
|
50
|
+
if: matrix.os != 'ubuntu-latest'
|
|
51
|
+
uses: PyO3/maturin-action@v1
|
|
52
|
+
with:
|
|
53
|
+
args: --release --out dist
|
|
54
|
+
- name: Install wheel and run tests
|
|
55
|
+
shell: bash
|
|
56
|
+
run: |
|
|
57
|
+
pip install --upgrade pip
|
|
58
|
+
pip install dist/*.whl
|
|
59
|
+
pip install pytest
|
|
60
|
+
pytest
|
|
61
|
+
- name: Upload wheel artifact
|
|
62
|
+
uses: actions/upload-artifact@v4
|
|
63
|
+
with:
|
|
64
|
+
name: wheel-${{ matrix.os }}-py${{ matrix.python-version }}
|
|
65
|
+
path: dist/*.whl
|
|
66
|
+
if-no-files-found: error
|
|
67
|
+
|
|
68
|
+
docs:
|
|
69
|
+
runs-on: ubuntu-latest
|
|
70
|
+
steps:
|
|
71
|
+
- uses: actions/checkout@v4
|
|
72
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
73
|
+
- uses: actions/setup-python@v5
|
|
74
|
+
with:
|
|
75
|
+
python-version: "3.12"
|
|
76
|
+
- name: Build docs
|
|
77
|
+
run: |
|
|
78
|
+
pip install --upgrade pip
|
|
79
|
+
pip install -e ".[docs]"
|
|
80
|
+
make -C docs html
|
|
81
|
+
- name: Upload docs artifact
|
|
82
|
+
uses: actions/upload-artifact@v4
|
|
83
|
+
with:
|
|
84
|
+
name: docs-html
|
|
85
|
+
path: docs/_build/html
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
# Triggered by pushing a tag like "v0.16.0" -- the "v" is stripped and
|
|
4
|
+
# checked against pyproject.toml's [project] version; the workflow fails
|
|
5
|
+
# immediately on a mismatch, so a forgotten version bump can never publish
|
|
6
|
+
# under the wrong name. This is the real release: it builds fresh wheels
|
|
7
|
+
# (installing and testing each one before it's trusted), then uploads
|
|
8
|
+
# everything to the real PyPI index using PYPI_API_TOKEN.
|
|
9
|
+
#
|
|
10
|
+
# See publish-testpypi.yml for the manually-triggered dry run of this same
|
|
11
|
+
# pipeline against test.pypi.org -- run that first to validate a release
|
|
12
|
+
# before ever pushing a tag here.
|
|
13
|
+
#
|
|
14
|
+
# The publish job targets the "pypi" GitHub environment. Configuring that
|
|
15
|
+
# environment in the repo's Settings -> Environments (e.g. required
|
|
16
|
+
# reviewers, or restricting it to protected/tag refs) adds a manual approval
|
|
17
|
+
# gate in front of every real publish; until then it behaves like any other
|
|
18
|
+
# job.
|
|
19
|
+
|
|
20
|
+
on:
|
|
21
|
+
push:
|
|
22
|
+
tags:
|
|
23
|
+
- "v*"
|
|
24
|
+
|
|
25
|
+
permissions:
|
|
26
|
+
contents: read
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
check-version:
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
- name: Verify the tag matches pyproject.toml's version
|
|
34
|
+
run: |
|
|
35
|
+
TAG_VERSION="${GITHUB_REF_NAME#v}"
|
|
36
|
+
PROJECT_VERSION=$(grep -m1 '^version = ' pyproject.toml | sed -E 's/version = "(.*)"/\1/')
|
|
37
|
+
echo "tag version: $TAG_VERSION"
|
|
38
|
+
echo "pyproject.toml version: $PROJECT_VERSION"
|
|
39
|
+
if [ "$TAG_VERSION" != "$PROJECT_VERSION" ]; then
|
|
40
|
+
echo "::error::Tag $GITHUB_REF_NAME does not match pyproject.toml version $PROJECT_VERSION -- update pyproject.toml and Cargo.toml, commit, and re-tag."
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
build-wheels:
|
|
45
|
+
needs: check-version
|
|
46
|
+
runs-on: ${{ matrix.os }}
|
|
47
|
+
strategy:
|
|
48
|
+
fail-fast: false
|
|
49
|
+
matrix:
|
|
50
|
+
os: [ubuntu-latest, windows-latest, macos-14]
|
|
51
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
52
|
+
steps:
|
|
53
|
+
- uses: actions/checkout@v4
|
|
54
|
+
- uses: actions/setup-python@v5
|
|
55
|
+
with:
|
|
56
|
+
python-version: ${{ matrix.python-version }}
|
|
57
|
+
- name: Build wheel (Linux, manylinux)
|
|
58
|
+
if: matrix.os == 'ubuntu-latest'
|
|
59
|
+
uses: PyO3/maturin-action@v1
|
|
60
|
+
with:
|
|
61
|
+
target: x86_64
|
|
62
|
+
manylinux: auto
|
|
63
|
+
args: --release --out dist -i python${{ matrix.python-version }}
|
|
64
|
+
- name: Build wheel (Windows/macOS)
|
|
65
|
+
if: matrix.os != 'ubuntu-latest'
|
|
66
|
+
uses: PyO3/maturin-action@v1
|
|
67
|
+
with:
|
|
68
|
+
args: --release --out dist
|
|
69
|
+
- name: Install wheel and run tests
|
|
70
|
+
shell: bash
|
|
71
|
+
run: |
|
|
72
|
+
pip install --upgrade pip
|
|
73
|
+
pip install dist/*.whl
|
|
74
|
+
pip install pytest
|
|
75
|
+
pytest
|
|
76
|
+
- uses: actions/upload-artifact@v4
|
|
77
|
+
with:
|
|
78
|
+
name: wheel-${{ matrix.os }}-py${{ matrix.python-version }}
|
|
79
|
+
path: dist/*.whl
|
|
80
|
+
if-no-files-found: error
|
|
81
|
+
|
|
82
|
+
build-sdist:
|
|
83
|
+
needs: check-version
|
|
84
|
+
runs-on: ubuntu-latest
|
|
85
|
+
steps:
|
|
86
|
+
- uses: actions/checkout@v4
|
|
87
|
+
- uses: actions/setup-python@v5
|
|
88
|
+
with:
|
|
89
|
+
python-version: "3.12"
|
|
90
|
+
- name: Build sdist
|
|
91
|
+
uses: PyO3/maturin-action@v1
|
|
92
|
+
with:
|
|
93
|
+
command: sdist
|
|
94
|
+
args: --out dist
|
|
95
|
+
- uses: actions/upload-artifact@v4
|
|
96
|
+
with:
|
|
97
|
+
name: sdist
|
|
98
|
+
path: dist/*.tar.gz
|
|
99
|
+
if-no-files-found: error
|
|
100
|
+
|
|
101
|
+
publish-pypi:
|
|
102
|
+
needs: [build-wheels, build-sdist]
|
|
103
|
+
runs-on: ubuntu-latest
|
|
104
|
+
environment:
|
|
105
|
+
name: pypi
|
|
106
|
+
url: https://pypi.org/project/rheaps/
|
|
107
|
+
steps:
|
|
108
|
+
- name: Download wheels
|
|
109
|
+
uses: actions/download-artifact@v4
|
|
110
|
+
with:
|
|
111
|
+
pattern: wheel-*
|
|
112
|
+
path: dist
|
|
113
|
+
merge-multiple: true
|
|
114
|
+
- name: Download sdist
|
|
115
|
+
uses: actions/download-artifact@v4
|
|
116
|
+
with:
|
|
117
|
+
name: sdist
|
|
118
|
+
path: dist
|
|
119
|
+
- name: List artifacts to publish
|
|
120
|
+
run: ls -la dist
|
|
121
|
+
- name: Publish to PyPI
|
|
122
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
123
|
+
with:
|
|
124
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
125
|
+
packages-dir: dist
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
name: Publish to TestPyPI (manual test)
|
|
2
|
+
|
|
3
|
+
# Manually triggered only -- from the Actions tab ("Run workflow" on this
|
|
4
|
+
# workflow) or `gh workflow run publish-testpypi.yml`. It never runs on a
|
|
5
|
+
# push, pull request, or tag.
|
|
6
|
+
#
|
|
7
|
+
# Every run publishes under a synthesized "<version>.devN" version (N = this
|
|
8
|
+
# run's number), never the bare version in pyproject.toml, so:
|
|
9
|
+
# - repeated manual test runs never collide with an already-uploaded
|
|
10
|
+
# TestPyPI version, and
|
|
11
|
+
# - nothing here can ever claim the real release version number, on
|
|
12
|
+
# TestPyPI or (since it only ever talks to test.pypi.org) the real index.
|
|
13
|
+
#
|
|
14
|
+
# This does not publish to the real PyPI. When the project is ready for an
|
|
15
|
+
# actual release, add a tag-triggered workflow using PYPI_API_TOKEN and
|
|
16
|
+
# https://upload.pypi.org/legacy/ instead -- most of the job structure below
|
|
17
|
+
# can be copied directly.
|
|
18
|
+
|
|
19
|
+
on:
|
|
20
|
+
workflow_dispatch: {}
|
|
21
|
+
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
prepare:
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
outputs:
|
|
29
|
+
version: ${{ steps.version.outputs.version }}
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v4
|
|
32
|
+
- name: Compute a unique test version
|
|
33
|
+
id: version
|
|
34
|
+
run: |
|
|
35
|
+
BASE_VERSION=$(grep -m1 '^version = ' pyproject.toml | sed -E 's/version = "(.*)"/\1/')
|
|
36
|
+
echo "version=${BASE_VERSION}.dev${{ github.run_number }}" >> "$GITHUB_OUTPUT"
|
|
37
|
+
|
|
38
|
+
build-wheels:
|
|
39
|
+
needs: prepare
|
|
40
|
+
runs-on: ${{ matrix.os }}
|
|
41
|
+
strategy:
|
|
42
|
+
fail-fast: false
|
|
43
|
+
matrix:
|
|
44
|
+
os: [ubuntu-latest, windows-latest, macos-14]
|
|
45
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
46
|
+
steps:
|
|
47
|
+
- uses: actions/checkout@v4
|
|
48
|
+
- uses: actions/setup-python@v5
|
|
49
|
+
with:
|
|
50
|
+
python-version: ${{ matrix.python-version }}
|
|
51
|
+
- name: Set the test version
|
|
52
|
+
# Only pyproject.toml -- maturin uses its static [project] version
|
|
53
|
+
# for the wheel's metadata directly and doesn't require Cargo.toml's
|
|
54
|
+
# version to match. Cargo.toml's version must stay valid semver
|
|
55
|
+
# (X.Y.Z, hyphen-separated prerelease), which a PEP 440 ".devN"
|
|
56
|
+
# suffix is not, so leave it untouched.
|
|
57
|
+
shell: python
|
|
58
|
+
run: |
|
|
59
|
+
import re
|
|
60
|
+
import pathlib
|
|
61
|
+
|
|
62
|
+
version = "${{ needs.prepare.outputs.version }}"
|
|
63
|
+
path = pathlib.Path("pyproject.toml")
|
|
64
|
+
text = path.read_text()
|
|
65
|
+
text, count = re.subn(
|
|
66
|
+
r'(?m)^version = ".*"$', f'version = "{version}"', text, count=1
|
|
67
|
+
)
|
|
68
|
+
assert count == 1, "could not find a version line in pyproject.toml"
|
|
69
|
+
path.write_text(text)
|
|
70
|
+
- name: Build wheel (Linux, manylinux)
|
|
71
|
+
if: matrix.os == 'ubuntu-latest'
|
|
72
|
+
uses: PyO3/maturin-action@v1
|
|
73
|
+
with:
|
|
74
|
+
target: x86_64
|
|
75
|
+
manylinux: auto
|
|
76
|
+
args: --release --out dist -i python${{ matrix.python-version }}
|
|
77
|
+
- name: Build wheel (Windows/macOS)
|
|
78
|
+
if: matrix.os != 'ubuntu-latest'
|
|
79
|
+
uses: PyO3/maturin-action@v1
|
|
80
|
+
with:
|
|
81
|
+
args: --release --out dist
|
|
82
|
+
- uses: actions/upload-artifact@v4
|
|
83
|
+
with:
|
|
84
|
+
name: wheel-${{ matrix.os }}-py${{ matrix.python-version }}
|
|
85
|
+
path: dist/*.whl
|
|
86
|
+
if-no-files-found: error
|
|
87
|
+
|
|
88
|
+
build-sdist:
|
|
89
|
+
needs: prepare
|
|
90
|
+
runs-on: ubuntu-latest
|
|
91
|
+
steps:
|
|
92
|
+
- uses: actions/checkout@v4
|
|
93
|
+
- uses: actions/setup-python@v5
|
|
94
|
+
with:
|
|
95
|
+
python-version: "3.12"
|
|
96
|
+
- name: Set the test version
|
|
97
|
+
# Only pyproject.toml -- maturin uses its static [project] version
|
|
98
|
+
# for the wheel's metadata directly and doesn't require Cargo.toml's
|
|
99
|
+
# version to match. Cargo.toml's version must stay valid semver
|
|
100
|
+
# (X.Y.Z, hyphen-separated prerelease), which a PEP 440 ".devN"
|
|
101
|
+
# suffix is not, so leave it untouched.
|
|
102
|
+
shell: python
|
|
103
|
+
run: |
|
|
104
|
+
import re
|
|
105
|
+
import pathlib
|
|
106
|
+
|
|
107
|
+
version = "${{ needs.prepare.outputs.version }}"
|
|
108
|
+
path = pathlib.Path("pyproject.toml")
|
|
109
|
+
text = path.read_text()
|
|
110
|
+
text, count = re.subn(
|
|
111
|
+
r'(?m)^version = ".*"$', f'version = "{version}"', text, count=1
|
|
112
|
+
)
|
|
113
|
+
assert count == 1, "could not find a version line in pyproject.toml"
|
|
114
|
+
path.write_text(text)
|
|
115
|
+
- name: Build sdist
|
|
116
|
+
uses: PyO3/maturin-action@v1
|
|
117
|
+
with:
|
|
118
|
+
command: sdist
|
|
119
|
+
args: --out dist
|
|
120
|
+
- uses: actions/upload-artifact@v4
|
|
121
|
+
with:
|
|
122
|
+
name: sdist
|
|
123
|
+
path: dist/*.tar.gz
|
|
124
|
+
if-no-files-found: error
|
|
125
|
+
|
|
126
|
+
publish-testpypi:
|
|
127
|
+
needs: [build-wheels, build-sdist]
|
|
128
|
+
runs-on: ubuntu-latest
|
|
129
|
+
steps:
|
|
130
|
+
- name: Download wheels
|
|
131
|
+
uses: actions/download-artifact@v4
|
|
132
|
+
with:
|
|
133
|
+
pattern: wheel-*
|
|
134
|
+
path: dist
|
|
135
|
+
merge-multiple: true
|
|
136
|
+
- name: Download sdist
|
|
137
|
+
uses: actions/download-artifact@v4
|
|
138
|
+
with:
|
|
139
|
+
name: sdist
|
|
140
|
+
path: dist
|
|
141
|
+
- name: List artifacts to publish
|
|
142
|
+
run: ls -la dist
|
|
143
|
+
- name: Publish to TestPyPI
|
|
144
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
145
|
+
with:
|
|
146
|
+
repository-url: https://test.pypi.org/legacy/
|
|
147
|
+
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
|
|
148
|
+
packages-dir: dist
|
|
149
|
+
skip-existing: true
|
rheaps-0.16.0/.gitignore
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# Editor swap files
|
|
2
|
+
*.swp
|
|
3
|
+
*.swo
|
|
4
|
+
|
|
5
|
+
# Byte-compiled / optimized / DLL files
|
|
6
|
+
__pycache__/
|
|
7
|
+
*.py[codz]
|
|
8
|
+
*$py.class
|
|
9
|
+
|
|
10
|
+
# C extensions
|
|
11
|
+
*.so
|
|
12
|
+
|
|
13
|
+
# Distribution / packaging
|
|
14
|
+
.Python
|
|
15
|
+
build/
|
|
16
|
+
develop-eggs/
|
|
17
|
+
dist/
|
|
18
|
+
downloads/
|
|
19
|
+
eggs/
|
|
20
|
+
.eggs/
|
|
21
|
+
lib/
|
|
22
|
+
lib64/
|
|
23
|
+
parts/
|
|
24
|
+
sdist/
|
|
25
|
+
var/
|
|
26
|
+
wheels/
|
|
27
|
+
share/python-wheels/
|
|
28
|
+
*.egg-info/
|
|
29
|
+
.installed.cfg
|
|
30
|
+
*.egg
|
|
31
|
+
MANIFEST
|
|
32
|
+
|
|
33
|
+
# PyInstaller
|
|
34
|
+
# Usually these files are written by a python script from a template
|
|
35
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
36
|
+
*.manifest
|
|
37
|
+
*.spec
|
|
38
|
+
|
|
39
|
+
# Installer logs
|
|
40
|
+
pip-log.txt
|
|
41
|
+
pip-delete-this-directory.txt
|
|
42
|
+
|
|
43
|
+
# Unit test / coverage reports
|
|
44
|
+
htmlcov/
|
|
45
|
+
.tox/
|
|
46
|
+
.nox/
|
|
47
|
+
.coverage
|
|
48
|
+
.coverage.*
|
|
49
|
+
.cache
|
|
50
|
+
nosetests.xml
|
|
51
|
+
coverage.xml
|
|
52
|
+
*.cover
|
|
53
|
+
*.py.cover
|
|
54
|
+
.hypothesis/
|
|
55
|
+
.pytest_cache/
|
|
56
|
+
cover/
|
|
57
|
+
|
|
58
|
+
# Translations
|
|
59
|
+
*.mo
|
|
60
|
+
*.pot
|
|
61
|
+
|
|
62
|
+
# Django stuff:
|
|
63
|
+
*.log
|
|
64
|
+
local_settings.py
|
|
65
|
+
db.sqlite3
|
|
66
|
+
db.sqlite3-journal
|
|
67
|
+
|
|
68
|
+
# Flask stuff:
|
|
69
|
+
instance/
|
|
70
|
+
.webassets-cache
|
|
71
|
+
|
|
72
|
+
# Scrapy stuff:
|
|
73
|
+
.scrapy
|
|
74
|
+
|
|
75
|
+
# Sphinx documentation
|
|
76
|
+
docs/_build/
|
|
77
|
+
docs/auto_examples/
|
|
78
|
+
docs/sg_execution_times.rst
|
|
79
|
+
docs/*/sg_execution_times.rst
|
|
80
|
+
|
|
81
|
+
# PyBuilder
|
|
82
|
+
.pybuilder/
|
|
83
|
+
target/
|
|
84
|
+
|
|
85
|
+
# Jupyter Notebook
|
|
86
|
+
.ipynb_checkpoints
|
|
87
|
+
|
|
88
|
+
# IPython
|
|
89
|
+
profile_default/
|
|
90
|
+
ipython_config.py
|
|
91
|
+
|
|
92
|
+
# pyenv
|
|
93
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
94
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
95
|
+
# .python-version
|
|
96
|
+
|
|
97
|
+
# pipenv
|
|
98
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
99
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
100
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
101
|
+
# install all needed dependencies.
|
|
102
|
+
# Pipfile.lock
|
|
103
|
+
|
|
104
|
+
# UV
|
|
105
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
106
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
107
|
+
# commonly ignored for libraries.
|
|
108
|
+
# uv.lock
|
|
109
|
+
|
|
110
|
+
# poetry
|
|
111
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
112
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
113
|
+
# commonly ignored for libraries.
|
|
114
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
115
|
+
# poetry.lock
|
|
116
|
+
# poetry.toml
|
|
117
|
+
|
|
118
|
+
# pdm
|
|
119
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
120
|
+
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
|
|
121
|
+
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
|
|
122
|
+
# pdm.lock
|
|
123
|
+
# pdm.toml
|
|
124
|
+
.pdm-python
|
|
125
|
+
.pdm-build/
|
|
126
|
+
|
|
127
|
+
# pixi
|
|
128
|
+
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
|
|
129
|
+
# pixi.lock
|
|
130
|
+
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
|
|
131
|
+
# in the .venv directory. It is recommended not to include this directory in version control.
|
|
132
|
+
.pixi
|
|
133
|
+
|
|
134
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
135
|
+
__pypackages__/
|
|
136
|
+
|
|
137
|
+
# Celery stuff
|
|
138
|
+
celerybeat-schedule
|
|
139
|
+
celerybeat.pid
|
|
140
|
+
|
|
141
|
+
# Redis
|
|
142
|
+
*.rdb
|
|
143
|
+
*.aof
|
|
144
|
+
*.pid
|
|
145
|
+
|
|
146
|
+
# RabbitMQ
|
|
147
|
+
mnesia/
|
|
148
|
+
rabbitmq/
|
|
149
|
+
rabbitmq-data/
|
|
150
|
+
|
|
151
|
+
# ActiveMQ
|
|
152
|
+
activemq-data/
|
|
153
|
+
|
|
154
|
+
# SageMath parsed files
|
|
155
|
+
*.sage.py
|
|
156
|
+
|
|
157
|
+
# Environments
|
|
158
|
+
.env
|
|
159
|
+
.envrc
|
|
160
|
+
.venv
|
|
161
|
+
env/
|
|
162
|
+
venv/
|
|
163
|
+
ENV/
|
|
164
|
+
env.bak/
|
|
165
|
+
venv.bak/
|
|
166
|
+
|
|
167
|
+
# Spyder project settings
|
|
168
|
+
.spyderproject
|
|
169
|
+
.spyproject
|
|
170
|
+
|
|
171
|
+
# Rope project settings
|
|
172
|
+
.ropeproject
|
|
173
|
+
|
|
174
|
+
# mkdocs documentation
|
|
175
|
+
/site
|
|
176
|
+
|
|
177
|
+
# mypy
|
|
178
|
+
.mypy_cache/
|
|
179
|
+
.dmypy.json
|
|
180
|
+
dmypy.json
|
|
181
|
+
|
|
182
|
+
# Pyre type checker
|
|
183
|
+
.pyre/
|
|
184
|
+
|
|
185
|
+
# pytype static type analyzer
|
|
186
|
+
.pytype/
|
|
187
|
+
|
|
188
|
+
# Cython debug symbols
|
|
189
|
+
cython_debug/
|
|
190
|
+
|
|
191
|
+
# PyCharm
|
|
192
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
193
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
194
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
195
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
196
|
+
# .idea/
|
|
197
|
+
|
|
198
|
+
# Abstra
|
|
199
|
+
# Abstra is an AI-powered process automation framework.
|
|
200
|
+
# Ignore directories containing user credentials, local state, and settings.
|
|
201
|
+
# Learn more at https://abstra.io/docs
|
|
202
|
+
.abstra/
|
|
203
|
+
|
|
204
|
+
# Visual Studio Code
|
|
205
|
+
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
|
206
|
+
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
|
207
|
+
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
|
208
|
+
# you could uncomment the following to ignore the entire vscode folder
|
|
209
|
+
# .vscode/
|
|
210
|
+
# Temporary file for partial code execution
|
|
211
|
+
tempCodeRunnerFile.py
|
|
212
|
+
|
|
213
|
+
# Ruff stuff:
|
|
214
|
+
.ruff_cache/
|
|
215
|
+
|
|
216
|
+
# PyPI configuration file
|
|
217
|
+
.pypirc
|
|
218
|
+
|
|
219
|
+
# Marimo
|
|
220
|
+
marimo/_static/
|
|
221
|
+
marimo/_lsp/
|
|
222
|
+
__marimo__/
|
|
223
|
+
|
|
224
|
+
# Streamlit
|
|
225
|
+
.streamlit/secrets.toml
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Read the Docs configuration file.
|
|
2
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details.
|
|
3
|
+
version: 2
|
|
4
|
+
|
|
5
|
+
build:
|
|
6
|
+
os: ubuntu-24.04
|
|
7
|
+
tools:
|
|
8
|
+
python: "3.12"
|
|
9
|
+
rust: "latest"
|
|
10
|
+
|
|
11
|
+
sphinx:
|
|
12
|
+
configuration: docs/conf.py
|
|
13
|
+
|
|
14
|
+
python:
|
|
15
|
+
install:
|
|
16
|
+
- method: pip
|
|
17
|
+
path: .
|
|
18
|
+
extra_requirements:
|
|
19
|
+
- docs
|