Skip to content

Commit 5fd115d

Browse files
committed
Initial commit
0 parents  commit 5fd115d

117 files changed

Lines changed: 17714 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/ci.yml‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main]
7+
8+
jobs:
9+
prek:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v7
13+
- uses: astral-sh/setup-uv@v10.2.0
14+
- run: uv run prek run --all-files --show-diff-on-failure
15+
16+
test:
17+
strategy:
18+
matrix:
19+
python-version: ["3.12", "3.13", "3.14", "3.15"]
20+
runs-on: ubuntu-latest
21+
env:
22+
# A read or write falling back to the locale's encoding, which is UTF-8 here but not on Windows before Python 3.15, warns, and the tests fail on any warning.
23+
PYTHONWARNDEFAULTENCODING: "1"
24+
steps:
25+
- uses: actions/checkout@v7
26+
- uses: astral-sh/setup-uv@v10.2.0
27+
with:
28+
python-version: ${{ matrix.python-version }}
29+
- run: uv run coverage run -m pytest
30+
- run: uv run coverage combine
31+
- run: uv run coverage report

‎.github/workflows/publish.yml‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Publish
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v7
12+
- uses: astral-sh/setup-uv@v10.2.0
13+
- run: uv build --wheel
14+
- uses: actions/upload-artifact@v7
15+
with:
16+
if-no-files-found: error
17+
name: wheel
18+
path: dist/*.whl
19+
20+
publish:
21+
needs: build
22+
runs-on: ubuntu-latest
23+
environment: publish
24+
permissions:
25+
# Trusted publishing.
26+
id-token: write
27+
steps:
28+
- uses: astral-sh/setup-uv@v10.2.0
29+
- uses: actions/download-artifact@v8
30+
with:
31+
name: wheel
32+
path: dist
33+
# Skipping files the index already has, so that a push not bumping the version publishes nothing.
34+
- run: uv publish --check-url https://pypi.org/simple/

‎.gitignore‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
__pycache__/
2+
.coverage
3+
.ruff_cache/
4+
.venv/
5+
dist/

‎.vscode/settings.json‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"python.testing.pytestArgs": [
3+
"."
4+
],
5+
"python.testing.unittestEnabled": false,
6+
"python.testing.pytestEnabled": true
7+
}

‎LICENSE‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Thibault Derousseaux
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)