pyuppsala 0.3.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,231 @@
1
+ name: ci
2
+ on:
3
+ pull_request:
4
+ paths:
5
+ - 'src/**'
6
+ - 'tests/**'
7
+ - 'Cargo.lock'
8
+ - 'Cargo.toml'
9
+ - 'pyproject.toml'
10
+ workflow_dispatch:
11
+ env:
12
+ FORCE_COLOR: "1"
13
+ UV_LINK_MODE: "copy"
14
+ jobs:
15
+
16
+ manylinux_x86_64:
17
+ runs-on: ubuntu-latest
18
+ timeout-minutes: 10
19
+ steps:
20
+ - uses: actions/checkout@v5
21
+
22
+ - name: Pull the manylinux image
23
+ run: docker pull quay.io/pypa/manylinux_2_28_x86_64
24
+
25
+ - name: Build the wheel inside manylinux container
26
+ run: |
27
+ docker run --rm \
28
+ -v ${{ github.workspace }}:/io \
29
+ quay.io/pypa/manylinux_2_28_x86_64 \
30
+ /io/build-wheels.sh
31
+
32
+ - name: Install UV
33
+ run: |
34
+ curl -LsSf https://astral.sh/uv/install.sh | sh
35
+ uv venv
36
+ source .venv/bin/activate
37
+ uv pip install pytest
38
+ uv pip install ./dist/pyuppsala-*.whl
39
+
40
+ - name: Run tests
41
+ run: |
42
+ source .venv/bin/activate
43
+ pytest tests/ -vvv
44
+
45
+ - name: Store wheels
46
+ uses: actions/upload-artifact@v4
47
+ with:
48
+ name: pyuppsala_manylinux_x86_64
49
+ path: dist/
50
+ overwrite: true
51
+ retention-days: 1
52
+ if-no-files-found: "error"
53
+ compression-level: 0
54
+
55
+ manylinux_aarch64:
56
+ runs-on: ubuntu-24-arm
57
+ timeout-minutes: 10
58
+ steps:
59
+ - uses: actions/checkout@v5
60
+
61
+ - name: Pull the manylinux image
62
+ run: docker pull quay.io/pypa/manylinux_2_28_aarch64
63
+
64
+ - name: Build the wheel inside manylinux container
65
+ run: |
66
+ docker run --rm \
67
+ -v ${{ github.workspace }}:/io \
68
+ quay.io/pypa/manylinux_2_28_aarch64 \
69
+ /io/build-wheels.sh
70
+
71
+ - name: Install UV
72
+ run: |
73
+ curl -LsSf https://astral.sh/uv/install.sh | sh
74
+ uv venv
75
+ source .venv/bin/activate
76
+ uv pip install pytest
77
+ uv pip install ./dist/pyuppsala-*.whl
78
+
79
+ - name: Run tests
80
+ run: |
81
+ source .venv/bin/activate
82
+ pytest tests/ -vvv
83
+
84
+ - name: Store wheels
85
+ uses: actions/upload-artifact@v4
86
+ with:
87
+ name: pyuppsala_manylinux_aarch64
88
+ path: dist/
89
+ overwrite: true
90
+ retention-days: 1
91
+ if-no-files-found: "error"
92
+ compression-level: 0
93
+
94
+ macos_aarch64:
95
+ runs-on: macos-15
96
+ timeout-minutes: 10
97
+ steps:
98
+ - uses: actions/checkout@v5
99
+
100
+ - uses: actions/setup-python@v6
101
+ with:
102
+ allow-prereleases: true
103
+ python-version: "3.14"
104
+
105
+ - uses: dtolnay/rust-toolchain@stable
106
+ with:
107
+ targets: "aarch64-apple-darwin"
108
+
109
+ - name: Build environment
110
+ run: |
111
+ curl -LsSf https://astral.sh/uv/install.sh | sh
112
+ uv venv --python python3.14
113
+ source .venv/bin/activate
114
+ uv pip install --upgrade "maturin>=1,<2" pytest
115
+
116
+ - name: Build wheel
117
+ run: |
118
+ source .venv/bin/activate
119
+ MACOSX_DEPLOYMENT_TARGET="11.0" \
120
+ maturin build \
121
+ --release \
122
+ --strip \
123
+ --interpreter python3.14 \
124
+ --target=aarch64-apple-darwin
125
+
126
+ - name: Run tests
127
+ run: |
128
+ source .venv/bin/activate
129
+ uv pip install target/wheels/pyuppsala-*.whl
130
+ pytest tests/ -vvv
131
+
132
+ - name: Store wheels
133
+ uses: actions/upload-artifact@v4
134
+ with:
135
+ name: pyuppsala_macos_aarch64
136
+ path: target/wheels
137
+ overwrite: true
138
+ retention-days: 1
139
+ if-no-files-found: "error"
140
+ compression-level: 0
141
+
142
+ windows_amd64:
143
+ runs-on: windows-2025
144
+ timeout-minutes: 10
145
+ steps:
146
+ - uses: actions/checkout@v5
147
+
148
+ - uses: actions/setup-python@v6
149
+ with:
150
+ allow-prereleases: true
151
+ python-version: "3.14"
152
+ architecture: "x64"
153
+
154
+ - uses: dtolnay/rust-toolchain@stable
155
+ with:
156
+ targets: "x86_64-pc-windows-msvc"
157
+
158
+ - name: Build environment
159
+ run: |
160
+ python.exe -m pip install --upgrade pip "maturin>=1,<2" pytest
161
+
162
+ - name: Build wheel
163
+ run: |
164
+ maturin.exe build --release --strip --target=x86_64-pc-windows-msvc
165
+
166
+ - name: Run tests
167
+ shell: pwsh
168
+ run: |
169
+ python -m venv venv
170
+ .\venv\Scripts\Activate.ps1
171
+ pip install pytest
172
+ pip install pyuppsala --no-index --find-links target\wheels
173
+ pytest tests/ -vvv
174
+
175
+ - name: Store wheels
176
+ uses: actions/upload-artifact@v4
177
+ with:
178
+ name: pyuppsala_windows_amd64
179
+ path: target\wheels
180
+ overwrite: true
181
+ retention-days: 1
182
+ if-no-files-found: "error"
183
+ compression-level: 0
184
+
185
+ windows_aarch64:
186
+ runs-on: windows-11-arm
187
+ timeout-minutes: 10
188
+ env:
189
+ TARGET: "aarch64-pc-windows-msvc"
190
+ steps:
191
+ - uses: actions/checkout@v5
192
+
193
+ - uses: actions/setup-python@v6
194
+ with:
195
+ allow-prereleases: true
196
+ python-version: "3.14"
197
+ architecture: "arm64"
198
+
199
+ - shell: pwsh
200
+ run: |
201
+ Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/$env:TARGET/rustup-init.exe" -OutFile rustup-init.exe
202
+ .\rustup-init.exe --default-toolchain "stable-$env:TARGET" --profile minimal --component rust-src -y
203
+ "$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
204
+ "CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
205
+
206
+ - name: Build environment
207
+ run: |
208
+ python.exe -m pip install --upgrade pip "maturin>=1,<2" pytest
209
+
210
+ - name: Build wheel
211
+ run: |
212
+ maturin.exe build --release --strip --target="$env:TARGET"
213
+
214
+ - name: Run tests
215
+ shell: pwsh
216
+ run: |
217
+ python -m venv venv
218
+ .\venv\Scripts\Activate.ps1
219
+ pip install pytest
220
+ pip install pyuppsala --no-index --find-links target\wheels
221
+ pytest tests/ -vvv
222
+
223
+ - name: Store wheels
224
+ uses: actions/upload-artifact@v4
225
+ with:
226
+ name: pyuppsala_windows_aarch64
227
+ path: target\wheels
228
+ overwrite: true
229
+ retention-days: 1
230
+ if-no-files-found: "error"
231
+ compression-level: 0
@@ -0,0 +1,235 @@
1
+ name: release
2
+ on:
3
+ push:
4
+ tags:
5
+ - 'v*'
6
+ workflow_dispatch:
7
+ env:
8
+ FORCE_COLOR: "1"
9
+ UV_LINK_MODE: "copy"
10
+ jobs:
11
+
12
+ manylinux_x86_64:
13
+ runs-on: ubuntu-latest
14
+ timeout-minutes: 10
15
+ steps:
16
+ - uses: actions/checkout@v5
17
+
18
+ - name: Pull the manylinux image
19
+ run: docker pull quay.io/pypa/manylinux_2_28_x86_64
20
+
21
+ - name: Build the wheel inside manylinux container
22
+ run: |
23
+ docker run --rm \
24
+ -v ${{ github.workspace }}:/io \
25
+ quay.io/pypa/manylinux_2_28_x86_64 \
26
+ /io/build-wheels.sh
27
+
28
+ - name: Install UV and test
29
+ run: |
30
+ curl -LsSf https://astral.sh/uv/install.sh | sh
31
+ uv venv
32
+ source .venv/bin/activate
33
+ uv pip install pytest
34
+ uv pip install ./dist/pyuppsala-*.whl
35
+ pytest tests/ -vvv
36
+
37
+ - name: Store wheels
38
+ uses: actions/upload-artifact@v4
39
+ with:
40
+ name: pyuppsala_manylinux_x86_64
41
+ path: dist/
42
+ overwrite: true
43
+ retention-days: 3
44
+ if-no-files-found: "error"
45
+ compression-level: 0
46
+
47
+ #manylinux_aarch64:
48
+ #runs-on: ubuntu-24-arm
49
+ #timeout-minutes: 10
50
+ #steps:
51
+ #- uses: actions/checkout@v5
52
+
53
+ #- name: Pull the manylinux image
54
+ #run: docker pull quay.io/pypa/manylinux_2_28_aarch64
55
+
56
+ #- name: Build the wheel inside manylinux container
57
+ #run: |
58
+ #docker run --rm \
59
+ #-v ${{ github.workspace }}:/io \
60
+ #quay.io/pypa/manylinux_2_28_aarch64 \
61
+ #/io/build-wheels.sh
62
+
63
+ #- name: Install UV and test
64
+ #run: |
65
+ #curl -LsSf https://astral.sh/uv/install.sh | sh
66
+ #uv venv
67
+ #source .venv/bin/activate
68
+ #uv pip install pytest
69
+ #uv pip install ./dist/pyuppsala-*.whl
70
+ #pytest tests/ -vvv
71
+
72
+ #- name: Store wheels
73
+ #uses: actions/upload-artifact@v4
74
+ #with:
75
+ #name: pyuppsala_manylinux_aarch64
76
+ #path: dist/
77
+ #overwrite: true
78
+ #retention-days: 3
79
+ #if-no-files-found: "error"
80
+ #compression-level: 0
81
+
82
+ macos_aarch64:
83
+ runs-on: macos-15
84
+ timeout-minutes: 10
85
+ steps:
86
+ - uses: actions/checkout@v5
87
+
88
+ - uses: actions/setup-python@v6
89
+ with:
90
+ allow-prereleases: true
91
+ python-version: "3.14"
92
+
93
+ - uses: dtolnay/rust-toolchain@stable
94
+ with:
95
+ targets: "aarch64-apple-darwin"
96
+
97
+ - name: Build environment
98
+ run: |
99
+ curl -LsSf https://astral.sh/uv/install.sh | sh
100
+ uv venv --python python3.14
101
+ source .venv/bin/activate
102
+ uv pip install --upgrade "maturin>=1,<2" pytest
103
+
104
+ - name: Build wheel
105
+ run: |
106
+ source .venv/bin/activate
107
+ MACOSX_DEPLOYMENT_TARGET="11.0" \
108
+ maturin build \
109
+ --release \
110
+ --strip \
111
+ --interpreter python3.14 \
112
+ --target=aarch64-apple-darwin
113
+
114
+ - name: Run tests
115
+ run: |
116
+ source .venv/bin/activate
117
+ uv pip install target/wheels/pyuppsala-*.whl
118
+ pytest tests/ -vvv
119
+
120
+ - name: Store wheels
121
+ uses: actions/upload-artifact@v4
122
+ with:
123
+ name: pyuppsala_macos_aarch64
124
+ path: target/wheels
125
+ overwrite: true
126
+ retention-days: 3
127
+ if-no-files-found: "error"
128
+ compression-level: 0
129
+
130
+ windows_amd64:
131
+ runs-on: windows-2025
132
+ timeout-minutes: 10
133
+ steps:
134
+ - uses: actions/checkout@v5
135
+
136
+ - uses: actions/setup-python@v6
137
+ with:
138
+ allow-prereleases: true
139
+ python-version: "3.14"
140
+ architecture: "x64"
141
+
142
+ - uses: dtolnay/rust-toolchain@stable
143
+ with:
144
+ targets: "x86_64-pc-windows-msvc"
145
+
146
+ - name: Build wheel
147
+ run: |
148
+ python.exe -m pip install --upgrade pip "maturin>=1,<2"
149
+ maturin.exe build --release --strip --target=x86_64-pc-windows-msvc
150
+
151
+ - name: Run tests
152
+ shell: pwsh
153
+ run: |
154
+ python -m venv venv
155
+ .\venv\Scripts\Activate.ps1
156
+ pip install pytest
157
+ pip install pyuppsala --no-index --find-links target\wheels
158
+ pytest tests/ -vvv
159
+
160
+ - name: Store wheels
161
+ uses: actions/upload-artifact@v4
162
+ with:
163
+ name: pyuppsala_windows_amd64
164
+ path: target\wheels
165
+ overwrite: true
166
+ retention-days: 3
167
+ if-no-files-found: "error"
168
+ compression-level: 0
169
+
170
+ windows_aarch64:
171
+ runs-on: windows-11-arm
172
+ timeout-minutes: 10
173
+ env:
174
+ TARGET: "aarch64-pc-windows-msvc"
175
+ steps:
176
+ - uses: actions/checkout@v5
177
+
178
+ - uses: actions/setup-python@v6
179
+ with:
180
+ allow-prereleases: true
181
+ python-version: "3.14"
182
+ architecture: "arm64"
183
+
184
+ - shell: pwsh
185
+ run: |
186
+ Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/$env:TARGET/rustup-init.exe" -OutFile rustup-init.exe
187
+ .\rustup-init.exe --default-toolchain "stable-$env:TARGET" --profile minimal --component rust-src -y
188
+ "$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
189
+ "CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
190
+
191
+ - name: Build wheel
192
+ run: |
193
+ python.exe -m pip install --upgrade pip "maturin>=1,<2"
194
+ maturin.exe build --release --strip --target="$env:TARGET"
195
+
196
+ - name: Run tests
197
+ shell: pwsh
198
+ run: |
199
+ python -m venv venv
200
+ .\venv\Scripts\Activate.ps1
201
+ pip install pytest
202
+ pip install pyuppsala --no-index --find-links target\wheels
203
+ pytest tests/ -vvv
204
+
205
+ - name: Store wheels
206
+ uses: actions/upload-artifact@v4
207
+ with:
208
+ name: pyuppsala_windows_aarch64
209
+ path: target\wheels
210
+ overwrite: true
211
+ retention-days: 3
212
+ if-no-files-found: "error"
213
+ compression-level: 0
214
+
215
+ publish:
216
+ runs-on: ubuntu-latest
217
+ needs: [manylinux_x86_64, macos_aarch64, windows_amd64, windows_aarch64]
218
+ environment: pypi
219
+ permissions:
220
+ id-token: write
221
+ steps:
222
+ - name: Download all artifacts
223
+ uses: actions/download-artifact@v4
224
+ with:
225
+ path: dist
226
+ pattern: pyuppsala_*
227
+ merge-multiple: true
228
+
229
+ - name: List artifacts
230
+ run: ls -lR dist/
231
+
232
+ - name: Publish to PyPI
233
+ uses: pypa/gh-action-pypi-publish@release/v1
234
+ with:
235
+ packages-dir: dist/
@@ -0,0 +1,225 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ # Pipfile.lock
96
+
97
+ # UV
98
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # uv.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ # poetry.lock
109
+ # poetry.toml
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
114
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
115
+ # pdm.lock
116
+ # pdm.toml
117
+ .pdm-python
118
+ .pdm-build/
119
+
120
+ # pixi
121
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
122
+ # pixi.lock
123
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
124
+ # in the .venv directory. It is recommended not to include this directory in version control.
125
+ .pixi
126
+
127
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128
+ __pypackages__/
129
+
130
+ # Celery stuff
131
+ celerybeat-schedule
132
+ celerybeat.pid
133
+
134
+ # Redis
135
+ *.rdb
136
+ *.aof
137
+ *.pid
138
+
139
+ # RabbitMQ
140
+ mnesia/
141
+ rabbitmq/
142
+ rabbitmq-data/
143
+
144
+ # ActiveMQ
145
+ activemq-data/
146
+
147
+ # SageMath parsed files
148
+ *.sage.py
149
+
150
+ # Environments
151
+ .env
152
+ .envrc
153
+ .venv
154
+ env/
155
+ venv/
156
+ ENV/
157
+ env.bak/
158
+ venv.bak/
159
+
160
+ # Spyder project settings
161
+ .spyderproject
162
+ .spyproject
163
+
164
+ # Rope project settings
165
+ .ropeproject
166
+
167
+ # mkdocs documentation
168
+ /site
169
+
170
+ # mypy
171
+ .mypy_cache/
172
+ .dmypy.json
173
+ dmypy.json
174
+
175
+ # Pyre type checker
176
+ .pyre/
177
+
178
+ # pytype static type analyzer
179
+ .pytype/
180
+
181
+ # Cython debug symbols
182
+ cython_debug/
183
+
184
+ # PyCharm
185
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
186
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
187
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
188
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
189
+ # .idea/
190
+
191
+ # Abstra
192
+ # Abstra is an AI-powered process automation framework.
193
+ # Ignore directories containing user credentials, local state, and settings.
194
+ # Learn more at https://abstra.io/docs
195
+ .abstra/
196
+
197
+ # Visual Studio Code
198
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
199
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
200
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
201
+ # you could uncomment the following to ignore the entire vscode folder
202
+ # .vscode/
203
+
204
+ # Ruff stuff:
205
+ .ruff_cache/
206
+
207
+ # PyPI configuration file
208
+ .pypirc
209
+
210
+ # Marimo
211
+ marimo/_static/
212
+ marimo/_lsp/
213
+ __marimo__/
214
+
215
+ # Streamlit
216
+ .streamlit/secrets.toml
217
+ target/
218
+ .venv/
219
+ docs/_build/
220
+ *.so
221
+ *.dylib
222
+ *.pyd
223
+ __pycache__/
224
+ *.egg-info/
225
+ dist/