py_a_tree 0.1.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.
@@ -0,0 +1,21 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ trim_trailing_whitespace = true
7
+ insert_final_newline = true
8
+
9
+ [*.{glsl,rs,toml}]
10
+ indent_style = space
11
+ indent_size = 4
12
+
13
+ [*.{json,avsc,xml}]
14
+ indent_size = 2
15
+
16
+ [Makefile]
17
+ indent_style = tab
18
+
19
+ [*.scd]
20
+ indent_style = tab
21
+ tab_width = 4
@@ -0,0 +1,173 @@
1
+ name: CD
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "*.*.*"
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ linux:
13
+ runs-on: ${{ matrix.platform.runner }}
14
+ strategy:
15
+ matrix:
16
+ platform:
17
+ - runner: ubuntu-22.04
18
+ target: x86_64
19
+ - runner: ubuntu-22.04
20
+ target: x86
21
+ - runner: ubuntu-22.04
22
+ target: aarch64
23
+ - runner: ubuntu-22.04
24
+ target: armv7
25
+ - runner: ubuntu-22.04
26
+ target: s390x
27
+ - runner: ubuntu-22.04
28
+ target: ppc64le
29
+ steps:
30
+ - uses: actions/checkout@v6
31
+ - uses: actions/setup-python@v6
32
+ with:
33
+ python-version: 3.x
34
+ - name: Build wheels
35
+ uses: PyO3/maturin-action@v1
36
+ with:
37
+ target: ${{ matrix.platform.target }}
38
+ args: --release --out dist --find-interpreter
39
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
40
+ manylinux: auto
41
+ - name: Upload wheels
42
+ uses: actions/upload-artifact@v6
43
+ with:
44
+ name: wheels-linux-${{ matrix.platform.target }}
45
+ path: dist
46
+
47
+ musllinux:
48
+ runs-on: ${{ matrix.platform.runner }}
49
+ strategy:
50
+ matrix:
51
+ platform:
52
+ - runner: ubuntu-22.04
53
+ target: x86_64
54
+ - runner: ubuntu-22.04
55
+ target: x86
56
+ - runner: ubuntu-22.04
57
+ target: aarch64
58
+ - runner: ubuntu-22.04
59
+ target: armv7
60
+ steps:
61
+ - uses: actions/checkout@v6
62
+ - uses: actions/setup-python@v6
63
+ with:
64
+ python-version: 3.x
65
+ - name: Build wheels
66
+ uses: PyO3/maturin-action@v1
67
+ with:
68
+ target: ${{ matrix.platform.target }}
69
+ args: --release --out dist --find-interpreter
70
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
71
+ manylinux: musllinux_1_2
72
+ - name: Upload wheels
73
+ uses: actions/upload-artifact@v6
74
+ with:
75
+ name: wheels-musllinux-${{ matrix.platform.target }}
76
+ path: dist
77
+
78
+ windows:
79
+ runs-on: ${{ matrix.platform.runner }}
80
+ strategy:
81
+ matrix:
82
+ platform:
83
+ - runner: windows-latest
84
+ target: x64
85
+ python_arch: x64
86
+ - runner: windows-latest
87
+ target: x86
88
+ python_arch: x86
89
+ - runner: windows-11-arm
90
+ target: aarch64
91
+ python_arch: arm64
92
+ steps:
93
+ - uses: actions/checkout@v6
94
+ - uses: actions/setup-python@v6
95
+ with:
96
+ python-version: 3.13
97
+ architecture: ${{ matrix.platform.python_arch }}
98
+ - name: Build wheels
99
+ uses: PyO3/maturin-action@v1
100
+ with:
101
+ target: ${{ matrix.platform.target }}
102
+ args: --release --out dist --find-interpreter
103
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
104
+ - name: Upload wheels
105
+ uses: actions/upload-artifact@v6
106
+ with:
107
+ name: wheels-windows-${{ matrix.platform.target }}
108
+ path: dist
109
+
110
+ macos:
111
+ runs-on: ${{ matrix.platform.runner }}
112
+ strategy:
113
+ matrix:
114
+ platform:
115
+ - runner: macos-15-intel
116
+ target: x86_64
117
+ - runner: macos-latest
118
+ target: aarch64
119
+ steps:
120
+ - uses: actions/checkout@v6
121
+ - uses: actions/setup-python@v6
122
+ with:
123
+ python-version: 3.x
124
+ - name: Build wheels
125
+ uses: PyO3/maturin-action@v1
126
+ with:
127
+ target: ${{ matrix.platform.target }}
128
+ args: --release --out dist --find-interpreter
129
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
130
+ - name: Upload wheels
131
+ uses: actions/upload-artifact@v6
132
+ with:
133
+ name: wheels-macos-${{ matrix.platform.target }}
134
+ path: dist
135
+
136
+ sdist:
137
+ runs-on: ubuntu-latest
138
+ steps:
139
+ - uses: actions/checkout@v6
140
+ - name: Build sdist
141
+ uses: PyO3/maturin-action@v1
142
+ with:
143
+ command: sdist
144
+ args: --out dist
145
+ - name: Upload sdist
146
+ uses: actions/upload-artifact@v6
147
+ with:
148
+ name: wheels-sdist
149
+ path: dist
150
+
151
+ release:
152
+ name: Release
153
+ runs-on: ubuntu-latest
154
+ environment:
155
+ name: pypi
156
+ needs: [linux, musllinux, windows, macos, sdist]
157
+ permissions:
158
+ # Use to sign the release artifacts
159
+ id-token: write
160
+ # Used to upload release artifacts
161
+ contents: write
162
+ # Used to generate artifact attestation
163
+ attestations: write
164
+ steps:
165
+ - uses: actions/download-artifact@v7
166
+ - name: Generate artifact attestation
167
+ uses: actions/attest-build-provenance@v3
168
+ with:
169
+ subject-path: "wheels-*/*"
170
+ - name: Install uv
171
+ uses: astral-sh/setup-uv@v7
172
+ - name: Publish to PyPI
173
+ run: uv publish 'wheels-*/*'
@@ -0,0 +1,146 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["master"]
6
+ pull_request:
7
+ branches: ["master"]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ linux:
14
+ runs-on: ${{ matrix.platform.runner }}
15
+ strategy:
16
+ matrix:
17
+ platform:
18
+ - runner: ubuntu-22.04
19
+ target: x86_64
20
+ - runner: ubuntu-22.04
21
+ target: x86
22
+ - runner: ubuntu-22.04
23
+ target: aarch64
24
+ - runner: ubuntu-22.04
25
+ target: armv7
26
+ - runner: ubuntu-22.04
27
+ target: s390x
28
+ - runner: ubuntu-22.04
29
+ target: ppc64le
30
+ steps:
31
+ - uses: actions/checkout@v6
32
+ - name: Install uv
33
+ uses: astral-sh/setup-uv@v7
34
+ - name: Prepare virtual environment
35
+ run: uv venv
36
+ - name: Build wheels
37
+ uses: PyO3/maturin-action@v1
38
+ with:
39
+ target: ${{ matrix.platform.target }}
40
+ command: develop
41
+ args: --uv
42
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
43
+ manylinux: auto
44
+ - name: Check format
45
+ run: uv run ruff format --check
46
+ - name: Check lint
47
+ run: uv run ruff check
48
+ - name: Run tests
49
+ run: uv run pytest
50
+
51
+ musllinux:
52
+ runs-on: ${{ matrix.platform.runner }}
53
+ strategy:
54
+ matrix:
55
+ platform:
56
+ - runner: ubuntu-22.04
57
+ target: x86_64
58
+ - runner: ubuntu-22.04
59
+ target: x86
60
+ - runner: ubuntu-22.04
61
+ target: aarch64
62
+ - runner: ubuntu-22.04
63
+ target: armv7
64
+ steps:
65
+ - uses: actions/checkout@v6
66
+ - name: Install uv
67
+ uses: astral-sh/setup-uv@v7
68
+ - name: Prepare virtual environment
69
+ run: uv venv
70
+ - name: Build wheels
71
+ uses: PyO3/maturin-action@v1
72
+ with:
73
+ target: ${{ matrix.platform.target }}
74
+ command: develop
75
+ args: --uv
76
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
77
+ manylinux: musllinux_1_2
78
+ - name: Check format
79
+ run: uv run ruff format --check
80
+ - name: Check lint
81
+ run: uv run ruff check
82
+ - name: Run tests
83
+ run: uv run pytest
84
+
85
+ windows:
86
+ runs-on: ${{ matrix.platform.runner }}
87
+ strategy:
88
+ matrix:
89
+ platform:
90
+ - runner: windows-latest
91
+ target: x64
92
+ python_arch: x64
93
+ - runner: windows-latest
94
+ target: x86
95
+ python_arch: x86
96
+ - runner: windows-11-arm
97
+ target: aarch64
98
+ python_arch: arm64
99
+ steps:
100
+ - uses: actions/checkout@v6
101
+ - name: Install uv
102
+ uses: astral-sh/setup-uv@v7
103
+ - name: Prepare virtual environment
104
+ run: uv venv
105
+ - name: Build wheels
106
+ uses: PyO3/maturin-action@v1
107
+ with:
108
+ target: ${{ matrix.platform.target }}
109
+ command: develop
110
+ args: --uv
111
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
112
+ - name: Check format
113
+ run: uv run ruff format --check
114
+ - name: Check lint
115
+ run: uv run ruff check
116
+ - name: Run tests
117
+ run: uv run pytest
118
+
119
+ macos:
120
+ runs-on: ${{ matrix.platform.runner }}
121
+ strategy:
122
+ matrix:
123
+ platform:
124
+ - runner: macos-15-intel
125
+ target: x86_64
126
+ - runner: macos-latest
127
+ target: aarch64
128
+ steps:
129
+ - uses: actions/checkout@v6
130
+ - name: Install uv
131
+ uses: astral-sh/setup-uv@v7
132
+ - name: Prepare virtual environment
133
+ run: uv venv
134
+ - name: Build wheels
135
+ uses: PyO3/maturin-action@v1
136
+ with:
137
+ target: ${{ matrix.platform.target }}
138
+ command: develop
139
+ args: --uv
140
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
141
+ - name: Check Python format
142
+ run: uv run ruff format --check
143
+ - name: Check lint
144
+ run: uv run ruff check
145
+ - name: Run tests
146
+ run: uv run pytest
@@ -0,0 +1,221 @@
1
+ ### Linux ###
2
+ *~
3
+
4
+ # temporary files which can be created if a process still has a handle open of a deleted file
5
+ .fuse_hidden*
6
+
7
+ # KDE directory preferences
8
+ .directory
9
+
10
+ # Linux trash folder which might appear on any partition or disk
11
+ .Trash-*
12
+
13
+ # .nfs files are created when an open file is removed but is still being accessed
14
+ .nfs*
15
+
16
+ ### Python ###
17
+ # Byte-compiled / optimized / DLL files
18
+ __pycache__/
19
+ *.py[cod]
20
+ *$py.class
21
+
22
+ # C extensions
23
+ *.so
24
+
25
+ # Distribution / packaging
26
+ .Python
27
+ build/
28
+ develop-eggs/
29
+ dist/
30
+ downloads/
31
+ eggs/
32
+ .eggs/
33
+ lib/
34
+ lib64/
35
+ parts/
36
+ sdist/
37
+ var/
38
+ wheels/
39
+ share/python-wheels/
40
+ *.egg-info/
41
+ .installed.cfg
42
+ *.egg
43
+ MANIFEST
44
+
45
+ # PyInstaller
46
+ # Usually these files are written by a python script from a template
47
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
48
+ *.manifest
49
+ *.spec
50
+
51
+ # Installer logs
52
+ pip-log.txt
53
+ pip-delete-this-directory.txt
54
+
55
+ # Unit test / coverage reports
56
+ htmlcov/
57
+ .tox/
58
+ .nox/
59
+ .coverage
60
+ .coverage.*
61
+ .cache
62
+ nosetests.xml
63
+ coverage.xml
64
+ *.cover
65
+ *.py,cover
66
+ .hypothesis/
67
+ .pytest_cache/
68
+ cover/
69
+
70
+ # Translations
71
+ *.mo
72
+ *.pot
73
+
74
+ # Django stuff:
75
+ *.log
76
+ local_settings.py
77
+ db.sqlite3
78
+ db.sqlite3-journal
79
+
80
+ # Flask stuff:
81
+ instance/
82
+ .webassets-cache
83
+
84
+ # Scrapy stuff:
85
+ .scrapy
86
+
87
+ # Sphinx documentation
88
+ docs/_build/
89
+
90
+ # PyBuilder
91
+ .pybuilder/
92
+ target/
93
+
94
+ # Jupyter Notebook
95
+ .ipynb_checkpoints
96
+
97
+ # IPython
98
+ profile_default/
99
+ ipython_config.py
100
+
101
+ # pyenv
102
+ # For a library or package, you might want to ignore these files since the code is
103
+ # intended to run in multiple environments; otherwise, check them in:
104
+ # .python-version
105
+
106
+ # pipenv
107
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
108
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
109
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
110
+ # install all needed dependencies.
111
+ #Pipfile.lock
112
+
113
+ # poetry
114
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
115
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
116
+ # commonly ignored for libraries.
117
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
118
+ #poetry.lock
119
+
120
+ # pdm
121
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
122
+ #pdm.lock
123
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
124
+ # in version control.
125
+ # https://pdm.fming.dev/#use-with-ide
126
+ .pdm.toml
127
+
128
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
129
+ __pypackages__/
130
+
131
+ # Celery stuff
132
+ celerybeat-schedule
133
+ celerybeat.pid
134
+
135
+ # SageMath parsed files
136
+ *.sage.py
137
+
138
+ # Environments
139
+ .env
140
+ .venv
141
+ env/
142
+ venv/
143
+ ENV/
144
+ env.bak/
145
+ venv.bak/
146
+
147
+ # Spyder project settings
148
+ .spyderproject
149
+ .spyproject
150
+
151
+ # Rope project settings
152
+ .ropeproject
153
+
154
+ # mkdocs documentation
155
+ /site
156
+
157
+ # mypy
158
+ .mypy_cache/
159
+ .dmypy.json
160
+ dmypy.json
161
+
162
+ # Pyre type checker
163
+ .pyre/
164
+
165
+ # pytype static type analyzer
166
+ .pytype/
167
+
168
+ # Cython debug symbols
169
+ cython_debug/
170
+
171
+ # PyCharm
172
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
173
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
174
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
175
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
176
+ #.idea/
177
+
178
+ ### Python Patch ###
179
+ # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
180
+ poetry.toml
181
+
182
+ # ruff
183
+ .ruff_cache/
184
+
185
+ # LSP config files
186
+ pyrightconfig.json
187
+
188
+ ### Rust ###
189
+ # Generated by Cargo
190
+ # will have compiled files and executables
191
+ debug/
192
+
193
+ # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
194
+ # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
195
+ Cargo.lock
196
+
197
+ # These are backup files generated by rustfmt
198
+ **/*.rs.bk
199
+
200
+ # MSVC Windows builds of rustc generate these, which store debugging information
201
+ *.pdb
202
+
203
+ ### Vim ###
204
+ # Swap
205
+ [._]*.s[a-v][a-z]
206
+ !*.svg # comment out if you don't need vector files
207
+ [._]*.sw[a-p]
208
+ [._]s[a-rt-v][a-z]
209
+ [._]ss[a-gi-z]
210
+ [._]sw[a-p]
211
+
212
+ # Session
213
+ Session.vim
214
+ Sessionx.vim
215
+
216
+ # Temporary
217
+ .netrwhist
218
+ # Auto-generated tag files
219
+ tags
220
+ # Persistent undo
221
+ [._]*.un~