Skip to content

Commit 9871638

Browse files
authored
Initial commit
0 parents  commit 9871638

File tree

22 files changed

+1616
-0
lines changed

22 files changed

+1616
-0
lines changed

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: 2
2+
updates:
3+
# Maintain dependencies for GitHub Actions
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
groups:
9+
actions:
10+
patterns:
11+
- "*"

.github/workflows/conda.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Conda
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches:
7+
- master
8+
pull_request:
9+
10+
jobs:
11+
build:
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
platform: [ubuntu-latest, macos-12, windows-2019]
16+
python-version: ["3.9", "3.11"]
17+
18+
runs-on: ${{ matrix.platform }}
19+
20+
# The setup-miniconda action needs this to activate miniconda
21+
defaults:
22+
run:
23+
shell: "bash -l {0}"
24+
25+
steps:
26+
- uses: actions/checkout@v4
27+
28+
- name: Get conda
29+
uses: conda-incubator/[email protected]
30+
with:
31+
python-version: ${{ matrix.python-version }}
32+
channels: conda-forge
33+
34+
- name: Prepare
35+
run: conda install conda-build conda-verify pytest
36+
37+
- name: Build
38+
run: conda build conda.recipe
39+
40+
- name: Install
41+
run: conda install -c ${CONDA_PREFIX}/conda-bld/ scikit_build_example
42+
43+
- name: Test
44+
run: pytest tests

.github/workflows/enscripten.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: WASM
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
branches:
7+
- master
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
build-wasm-emscripten:
15+
name: Pyodide
16+
runs-on: ubuntu-22.04
17+
steps:
18+
- uses: actions/checkout@v4
19+
with:
20+
submodules: true
21+
fetch-depth: 0
22+
23+
- uses: actions/setup-python@v5
24+
with:
25+
python-version: "3.12"
26+
27+
- uses: pypa/[email protected]
28+
env:
29+
CIBW_PLATFORM: pyodide
30+
31+
- uses: actions/upload-artifact@v4
32+
with:
33+
path: dist/*.whl

.github/workflows/pip.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: "Pip"
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
push:
7+
branches:
8+
- master
9+
10+
jobs:
11+
build:
12+
name: Build with Pip
13+
runs-on: ${{ matrix.platform }}
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
platform: [windows-latest, macos-latest, ubuntu-latest]
18+
python-version: ["3.9", "3.13", "pypy-3.10"]
19+
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- uses: actions/setup-python@v5
24+
with:
25+
python-version: ${{ matrix.python-version }}
26+
allow-prereleases: true
27+
28+
- name: Build and install
29+
run: pip install --verbose .[test]
30+
31+
- name: Test
32+
run: pytest

.github/workflows/wheels.yml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
name: Wheels
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
push:
7+
branches:
8+
- master
9+
release:
10+
types:
11+
- published
12+
13+
env:
14+
FORCE_COLOR: 3
15+
16+
concurrency:
17+
group: ${{ github.workflow }}-${{ github.ref }}
18+
cancel-in-progress: true
19+
20+
jobs:
21+
build_sdist:
22+
name: Build SDist
23+
runs-on: ubuntu-latest
24+
steps:
25+
- uses: actions/checkout@v4
26+
with:
27+
submodules: true
28+
29+
- name: Build SDist
30+
run: pipx run build --sdist
31+
32+
- name: Check metadata
33+
run: pipx run twine check dist/*
34+
35+
- uses: actions/upload-artifact@v4
36+
with:
37+
name: cibw-sdist
38+
path: dist/*.tar.gz
39+
40+
41+
build_wheels:
42+
name: Wheels on ${{ matrix.os }}
43+
runs-on: ${{ matrix.os }}
44+
strategy:
45+
fail-fast: false
46+
matrix:
47+
os: [ubuntu-latest, macos-13, macos-latest, windows-latest]
48+
49+
steps:
50+
- uses: actions/checkout@v4
51+
with:
52+
submodules: true
53+
54+
- uses: astral-sh/setup-uv@v3
55+
56+
- uses: pypa/[email protected]
57+
env:
58+
CIBW_PRERELEASE_PYTHONS: true
59+
CIBW_ARCHS_WINDOWS: auto ARM64
60+
61+
- name: Verify clean directory
62+
run: git diff --exit-code
63+
shell: bash
64+
65+
- uses: actions/upload-artifact@v4
66+
with:
67+
name: cibw-wheels-${{ matrix.os }}
68+
path: wheelhouse/*.whl
69+
70+
71+
upload_all:
72+
name: Upload if release
73+
needs: [build_wheels, build_sdist]
74+
runs-on: ubuntu-latest
75+
if: github.event_name == 'release' && github.event.action == 'published'
76+
environment: pypi
77+
permissions:
78+
id-token: write
79+
attestations: write
80+
81+
steps:
82+
- uses: actions/setup-python@v5
83+
with:
84+
python-version: "3.x"
85+
86+
- uses: actions/download-artifact@v4
87+
with:
88+
pattern: cibw-*
89+
merge-multiple: true
90+
path: dist
91+
92+
- name: Generate artifact attestation for sdist and wheels
93+
uses: actions/attest-build-provenance@v1
94+
with:
95+
subject-path: "dist/*"
96+
97+
- uses: pypa/gh-action-pypi-publish@release/v1
98+
with:
99+
attestations: true

.gitignore

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# Using https://github.com/github/gitignore/blob/master/Python.gitignore
2+
3+
# Byte-compiled / optimized / DLL files
4+
__pycache__/
5+
*.py[cod]
6+
*$py.class
7+
8+
# C extensions
9+
*.so
10+
11+
# Distribution / packaging
12+
.Python
13+
build/
14+
develop-eggs/
15+
dist/
16+
downloads/
17+
eggs/
18+
.eggs/
19+
lib/
20+
lib64/
21+
parts/
22+
sdist/
23+
var/
24+
wheels/
25+
share/python-wheels/
26+
*.egg-info/
27+
.installed.cfg
28+
*.egg
29+
MANIFEST
30+
31+
# PyInstaller
32+
# Usually these files are written by a python script from a template
33+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
34+
*.manifest
35+
*.spec
36+
37+
# Installer logs
38+
pip-log.txt
39+
pip-delete-this-directory.txt
40+
41+
# Unit test / coverage reports
42+
htmlcov/
43+
.tox/
44+
.nox/
45+
.coverage
46+
.coverage.*
47+
.cache
48+
nosetests.xml
49+
coverage.xml
50+
*.cover
51+
*.py,cover
52+
.hypothesis/
53+
.pytest_cache/
54+
cover/
55+
56+
# Translations
57+
*.mo
58+
*.pot
59+
60+
# Django stuff:
61+
*.log
62+
local_settings.py
63+
db.sqlite3
64+
db.sqlite3-journal
65+
66+
# Flask stuff:
67+
instance/
68+
.webassets-cache
69+
70+
# Scrapy stuff:
71+
.scrapy
72+
73+
# Sphinx documentation
74+
docs/_build/
75+
docs/_generate/
76+
77+
# PyBuilder
78+
.pybuilder/
79+
target/
80+
81+
# Jupyter Notebook
82+
.ipynb_checkpoints
83+
84+
# IPython
85+
profile_default/
86+
ipython_config.py
87+
88+
# pyenv
89+
# For a library or package, you might want to ignore these files since the code is
90+
# intended to run in multiple environments; otherwise, check them in:
91+
# .python-version
92+
93+
# pipenv
94+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
95+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
96+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
97+
# install all needed dependencies.
98+
#Pipfile.lock
99+
100+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
101+
__pypackages__/
102+
103+
# Celery stuff
104+
celerybeat-schedule
105+
celerybeat.pid
106+
107+
# SageMath parsed files
108+
*.sage.py
109+
110+
# Environments
111+
.env
112+
.venv
113+
env/
114+
venv/
115+
ENV/
116+
env.bak/
117+
venv.bak/
118+
119+
# Spyder project settings
120+
.spyderproject
121+
.spyproject
122+
123+
# Rope project settings
124+
.ropeproject
125+
126+
# mkdocs documentation
127+
/site
128+
129+
# mypy
130+
.mypy_cache/
131+
.dmypy.json
132+
dmypy.json
133+
134+
# Pyre type checker
135+
.pyre/
136+
137+
# pytype static type analyzer
138+
.pytype/
139+
140+
# Cython debug symbols
141+
cython_debug/
142+
143+
_skbuild/
144+
.pyodide-xbuildenv/

0 commit comments

Comments
 (0)