Skip to content

Commit 7bb79e8

Browse files
authored
🔀 Feat/python 3.13 and 3.14 (#117)
* 🔥 remove pkg_resources * ✅ update tests * ➖ remove python 3.7 * ⬆️ update deps * 👷 add python 3.12 and 3.13 on ci * 👷 add python 3.14 * ⬆️ add python versions * 🔥 remove poetry configs and prospector * ♻️ change to uv * 🎨 code format * ✅ update tests * 🔧 add lock file * 👷 update ci * ➕ add pip audit * 🔨 update to pip audit * 👷 update to pip audit * ✅ add tests * 🚨 fix lint
1 parent 8eb58a5 commit 7bb79e8

File tree

15 files changed

+2342
-2311
lines changed

15 files changed

+2342
-2311
lines changed

.github/workflows/ci.yml

Lines changed: 49 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,43 @@
11
name: Continous Integration
2+
23
on:
34
push:
45
branches: [ main ]
56
pull_request:
67
branches: [ main ]
78

9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
env:
14+
UV_SYSTEM_PYTHON: 1
15+
16+
permissions:
17+
contents: read
18+
819
jobs:
920
linting:
1021
runs-on: ubuntu-latest
1122
steps:
1223
- name: Checkout 🛎️
13-
uses: actions/checkout@v3
24+
uses: actions/checkout@v6
1425

1526
- name: Setup Python 🐍
16-
uses: actions/setup-python@v4
27+
uses: actions/setup-python@v6
1728
with:
18-
python-version: 3.9
19-
20-
- name: Install Poetry 📦️
21-
uses: abatilo/actions-poetry@v2
22-
23-
- name: Config poetry ⚙️
24-
run : |
25-
poetry config virtualenvs.create true --local
26-
poetry config virtualenvs.in-project true --local
29+
python-version: '3.12'
2730

28-
- name: Load cached venv 🗃
29-
id: cached-poetry-dependencies
30-
uses: actions/cache@v3
31+
- name: Install uv 📦️
32+
uses: astral-sh/setup-uv@v7
3133
with:
32-
path: .venv
33-
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
34+
enable-cache: true
35+
cache-dependency-glob: |
36+
pyproject.toml
37+
uv.lock
3438
3539
- name: Install Dependencies 📌
36-
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
37-
run: poetry install --no-interaction
40+
run: uv sync --all-groups
3841

3942
- name: Linting 🔎
4043
run: make lint
@@ -44,72 +47,66 @@ jobs:
4447
strategy:
4548
fail-fast: false
4649
matrix:
47-
python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ]
50+
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13", "3.14" ]
4851
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
4952
defaults:
5053
run:
5154
shell: bash
5255
runs-on: ${{ matrix.os }}
5356
steps:
5457
- name: Checkout 🛎️
55-
uses: actions/checkout@v3
58+
uses: actions/checkout@v6
5659

5760
- name: Setup Python ${{ matrix.python-version }} 🐍
58-
id: setup-python
59-
uses: actions/setup-python@v4
61+
uses: actions/setup-python@v6
6062
with:
6163
python-version: ${{ matrix.python-version }}
6264

63-
- name: Install Poetry 📦️
64-
uses: abatilo/actions-poetry@v2
65-
66-
- name: Config poetry ⚙️
67-
run : |
68-
poetry config virtualenvs.create true --local
69-
poetry config virtualenvs.in-project true --local
70-
71-
- name: Load cached venv 🗃
72-
id: cached-poetry-dependencies
73-
uses: actions/cache@v3
65+
- name: Install uv 📦️
66+
uses: astral-sh/setup-uv@v7
7467
with:
75-
path: .venv
76-
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
68+
enable-cache: true
69+
cache-dependency-glob: |
70+
pyproject.toml
71+
uv.lock
7772
7873
- name: Install Dependencies 📌
79-
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
80-
run: poetry install --no-interaction --only main,test
74+
run: uv sync --only-group test
8175

8276
- name: Run Tests ✅
83-
run: poetry run pytest -v -l --full-trace --cache-clear tests/
77+
run: uv run pytest -v -l --full-trace --cache-clear tests/
78+
8479
codecov:
8580
needs: test
8681
runs-on: ubuntu-latest
82+
permissions:
83+
contents: read
8784
steps:
8885
- name: Checkout 🛎️
89-
uses: actions/checkout@v3
86+
uses: actions/checkout@v6
9087

9188
- name: Setup Python 🐍
92-
uses: actions/setup-python@v4
89+
uses: actions/setup-python@v6
9390
with:
94-
python-version: 3.9
91+
python-version: '3.12'
9592

96-
- name: Install Poetry 📦️
97-
uses: abatilo/actions-poetry@v2
98-
99-
- name: Config poetry ⚙️
100-
run : |
101-
poetry config virtualenvs.create true --local
102-
poetry config virtualenvs.in-project true --local
93+
- name: Install uv 📦️
94+
uses: astral-sh/setup-uv@v7
95+
with:
96+
enable-cache: true
97+
cache-dependency-glob: |
98+
pyproject.toml
99+
uv.lock
103100
104101
- name: Install Dependencies 📌
105-
run: poetry install --no-interaction --only main,test
102+
run: uv sync --only-group test
106103

107104
- name: Coverage ☂️
108-
run: poetry run pytest --cov --cov-report=xml
105+
run: uv run pytest --cov --cov-report=xml
109106

110107
- name: Upload Coverage 📤
111-
uses: codecov/codecov-action@v1
108+
uses: codecov/codecov-action@v5
112109
with:
113110
token: ${{ secrets.CODECOV_TOKEN }}
114-
file: ./coverage.xml
111+
files: ./coverage.xml
115112
fail_ci_if_error: true

.github/workflows/comment.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
name: issues
2+
23
on:
34
issues:
45
types: [closed]
6+
7+
permissions:
8+
issues: write
9+
510
jobs:
611
add-comment:
712
runs-on: ubuntu-latest
8-
permissions:
9-
issues: write
1013
steps:
1114
- name: Did I solve your problem?
12-
uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae
15+
uses: peter-evans/create-or-update-comment@v4
1316
with:
1417
issue-number: ${{ github.event.issue.number }}
1518
body: |
16-
Did I solve your problem?
19+
Did I solve your problem?
1720
Why not buy the devs a [coffee](https://ko-fi.com/guedesfelipe) to say thanks?

.github/workflows/deploy-docs.yml

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,53 @@
11
name: Deploy Docs
2+
23
on:
34
push:
45
branches: [ main ]
6+
7+
env:
8+
UV_SYSTEM_PYTHON: 1
9+
510
permissions:
611
contents: write
12+
713
jobs:
814
deploy-docs:
915
runs-on: ubuntu-latest
1016
steps:
11-
- uses: actions/checkout@v4
17+
- name: Checkout 🛎️
18+
uses: actions/checkout@v6
19+
1220
- name: Configure Git Credentials
1321
run: |
1422
git config user.name github-actions[bot]
1523
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
16-
- uses: actions/setup-python@v4
24+
25+
- name: Setup Python 🐍
26+
uses: actions/setup-python@v6
1727
with:
18-
python-version: 3.x
19-
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
20-
- uses: actions/cache@v3
28+
python-version: '3.12'
29+
30+
- name: Cache ID
31+
run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
32+
33+
- name: Cache MkDocs Material
34+
uses: actions/cache@v4
2135
with:
2236
key: mkdocs-material-${{ env.cache_id }}
2337
path: .cache
2438
restore-keys: |
2539
mkdocs-material-
26-
- run: pip install mkdocs-material mkdocs-meta-descriptions-plugin
40+
41+
- name: Install uv 📦️
42+
uses: astral-sh/setup-uv@v7
43+
with:
44+
enable-cache: true
45+
cache-dependency-glob: |
46+
pyproject.toml
47+
uv.lock
48+
49+
- name: Install Dependencies 📌
50+
run: uv sync --group dev
51+
2752
- name: Deploy docs 📝
28-
run: mkdocs gh-deploy --force
53+
run: uv run mkdocs gh-deploy --force

.github/workflows/publish_pypi.yml

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,37 @@ on:
44
release:
55
types: [ published ]
66

7+
env:
8+
UV_SYSTEM_PYTHON: 1
9+
710
permissions:
811
contents: read
12+
id-token: write
913

1014
jobs:
1115
build-n-publish:
1216
runs-on: ubuntu-latest
1317
steps:
1418
- name: Checkout 🛎️
15-
uses: actions/checkout@v3
19+
uses: actions/checkout@v6
1620

1721
- name: Setup Python 🐍
18-
uses: actions/setup-python@v4
22+
uses: actions/setup-python@v6
1923
with:
20-
python-version: 3.9
21-
22-
- name: Install Poetry 📦️
23-
uses: abatilo/actions-poetry@v2
24+
python-version: '3.12'
2425

25-
- name: Config poetry ⚙️
26-
run : |
27-
poetry config virtualenvs.create true --local
28-
poetry config virtualenvs.in-project true --local
29-
30-
- name: Load cached venv 🗃
31-
id: cached-poetry-dependencies
32-
uses: actions/cache@v3
26+
- name: Install uv 📦️
27+
uses: astral-sh/setup-uv@v7
3328
with:
34-
path: .venv
35-
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
36-
37-
- name: Install Dependencies 📌
38-
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
39-
run: poetry install --no-interaction
29+
enable-cache: true
30+
cache-dependency-glob: |
31+
pyproject.toml
32+
uv.lock
4033
4134
- name: Build 🏗
42-
run: poetry build
35+
run: uv build
4336

44-
- name: Publish to Pypi 📤
45-
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
37+
- name: Publish to PyPI 📤
38+
uses: pypa/gh-action-pypi-publish@v1.13.0
4639
with:
47-
user: __token__
48-
password: ${{ secrets.PYPI_API_TOKEN }}
40+
password: ${{ secrets.PYPI_API_TOKEN }}

.github/workflows/security.yml

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,43 @@
11
name: Security
2+
23
on:
34
push:
45
branches: [ main ]
56
pull_request:
67
branches: [ main ]
78

9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
env:
14+
UV_SYSTEM_PYTHON: 1
15+
16+
permissions:
17+
contents: read
18+
819
jobs:
920
check-security:
1021
runs-on: ubuntu-latest
1122
steps:
1223
- name: Checkout 🛎️
13-
uses: actions/checkout@v3
24+
uses: actions/checkout@v6
1425

1526
- name: Setup Python 🐍
16-
uses: actions/setup-python@v4
27+
uses: actions/setup-python@v6
1728
with:
18-
python-version: 3.9
19-
20-
- name: Install Poetry 📦️
21-
uses: abatilo/actions-poetry@v2
22-
23-
- name: Config poetry ⚙️
24-
run : |
25-
poetry config virtualenvs.create true --local
26-
poetry config virtualenvs.in-project true --local
29+
python-version: '3.12'
2730

28-
- name: Load cached venv 🗃
29-
id: cached-poetry-dependencies
30-
uses: actions/cache@v3
31+
- name: Install uv 📦️
32+
uses: astral-sh/setup-uv@v7
3133
with:
32-
path: .venv
33-
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
34+
enable-cache: true
35+
cache-dependency-glob: |
36+
pyproject.toml
37+
uv.lock
3438
3539
- name: Install Dependencies 📌
36-
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
37-
run: poetry install --no-interaction
40+
run: uv sync --group dev
3841

3942
- name: Check Security 🚓
40-
run: make sec
43+
run: make sec

.prospector.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)