Skip to content

Commit cf8f32a

Browse files
chore: upgrade deps and add python3.13 to ci (#519)
* Add python3.13 to ci * fix deps install errors * fix ci error * Upgrade deps * Rollback hypercorn to 0.14.4 as taskgroup does not support python3.8 * fix ci error * fix pydantic v1 test error * fix test error with pydantic * docs: explicit declare python3.13 support --------- Co-authored-by: Roberto Prevato <[email protected]>
1 parent acacf86 commit cf8f32a

File tree

4 files changed

+276
-79
lines changed

4 files changed

+276
-79
lines changed

Diff for: .github/workflows/main.yml

+15-16
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,23 @@ jobs:
3030
strategy:
3131
fail-fast: false
3232
matrix:
33-
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
33+
python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
3434
runs-on: windows-latest
3535
if: github.event_name == 'pull_request' || github.event_name == 'push'
3636

3737
steps:
38-
- uses: actions/checkout@v1
38+
- uses: actions/checkout@v4
3939
with:
4040
fetch-depth: 9
4141
submodules: false
4242

4343
- name: Use Python ${{ matrix.python-version }}
44-
uses: actions/setup-python@v4
44+
uses: actions/setup-python@v5
4545
with:
4646
python-version: ${{ matrix.python-version }}
4747

4848
- name: Install dependencies
4949
run: |
50-
pip install cython==3.0.2
5150
pip install -r requirements.txt
5251
pip install flake8
5352
@@ -77,24 +76,24 @@ jobs:
7776
fail-fast: false
7877
matrix:
7978
os: [ubuntu-latest]
80-
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
79+
python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
8180
runs-on: ${{ matrix.os }}
8281

8382
steps:
84-
- uses: actions/checkout@v1
83+
- uses: actions/checkout@v4
8584
with:
8685
fetch-depth: 9
8786
submodules: false
8887

8988
- name: Use Python ${{ matrix.python-version }}
90-
uses: actions/setup-python@v4
89+
uses: actions/setup-python@v5
9190
with:
9291
python-version: ${{ matrix.python-version }}
9392

9493
- name: Install dependencies
9594
run: |
9695
pip install -r requirements.txt
97-
pip install black==24.2.0 isort==5.13.2 flake8==7.0.0
96+
pip install black==24.8.0 isort==5.13.2 flake8==7.1.1
9897
9998
- name: Compile Cython extensions
10099
run: |
@@ -104,10 +103,10 @@ jobs:
104103
run: |
105104
pytest --doctest-modules --junitxml=junit/pytest-results-${{ matrix.os }}-${{ matrix.python-version }}.xml --cov=$PROJECT_NAME --cov-report=xml
106105
107-
- name: Run tests with Pydantic v2
106+
- name: Run tests with Pydantic v1
108107
run: |
109-
echo "[*] The previous tests used Pydantic v1, now running with v2"
110-
pip install -U pydantic==2.4.2
108+
echo "[*] The previous tests used Pydantic v2, now running with v1"
109+
pip install -U "pydantic<2"
111110
pytest
112111
113112
- name: Run linters
@@ -167,22 +166,22 @@ jobs:
167166
strategy:
168167
fail-fast: false
169168
matrix:
170-
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
169+
python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
171170
os: [ubuntu-latest, macos-latest, windows-latest]
172171

173172
steps:
174-
- uses: actions/checkout@v1
173+
- uses: actions/checkout@v4
175174
with:
176175
fetch-depth: 9
177176

178177
- name: Set up Python ${{ matrix.python-version }}
179-
uses: actions/setup-python@v4
178+
uses: actions/setup-python@v5
180179
with:
181180
python-version: ${{ matrix.python-version }}
182181

183182
- name: Install build dependencies
184183
run: |
185-
pip install cython==3.0.2
184+
pip install cython==3.0.11
186185
pip install --upgrade build
187186
188187
- name: Compile Cython extensions
@@ -229,7 +228,7 @@ jobs:
229228
path: dist
230229

231230
- name: Use Python 3.11
232-
uses: actions/setup-python@v1
231+
uses: actions/setup-python@v5
233232
with:
234233
python-version: '3.11'
235234

Diff for: pyproject.toml

+5-4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ classifiers = [
1717
"Programming Language :: Python :: 3.10",
1818
"Programming Language :: Python :: 3.11",
1919
"Programming Language :: Python :: 3.12",
20+
"Programming Language :: Python :: 3.13",
2021
"Environment :: Web Environment",
2122
"Operating System :: OS Independent",
2223
"Framework :: AsyncIO",
@@ -25,13 +26,13 @@ keywords = ["blacksheep", "web framework", "asyncio"]
2526
dependencies = [
2627
"httptools>=0.5",
2728
"certifi>=2022.9.24",
28-
"charset-normalizer~=3.1.0",
29+
"charset-normalizer~=3.4.0",
2930
"guardpost>=1.0.2",
3031
"rodi~=2.0.2",
3132
"essentials>=1.1.4,<2.0",
3233
"essentials-openapi>=1.0.6,<1.1",
33-
"python-dateutil~=2.8.2",
34-
"itsdangerous~=2.1.2",
34+
"python-dateutil~=2.9.0",
35+
"itsdangerous~=2.2.0",
3536
]
3637

3738
[tool.setuptools]
@@ -42,7 +43,7 @@ version = { attr = "blacksheep.__version__" }
4243

4344
[project.optional-dependencies]
4445
jinja = ["Jinja2~=3.1.2"]
45-
full = ["cryptography>=38.0.1,<41.1.0", "PyJWT~=2.6.0", "websockets~=10.3"]
46+
full = ["cryptography>=44.0.0,<45.0.0", "PyJWT~=2.9.0", "websockets~=13.1"]
4647

4748
[project.urls]
4849
"Homepage" = "https://github.com/Neoteroi/BlackSheep"

Diff for: requirements.txt

+44-43
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,60 @@
1-
annotated-types==0.6.0
2-
asgiref==3.7.2
3-
attrs==23.1.0
4-
blinker==1.6.3
5-
certifi==2023.7.22
6-
cffi==1.16.0
7-
charset-normalizer==3.3.1
1+
annotated-types==0.7.0
2+
asgiref==3.8.1
3+
attrs==24.2.0
4+
blinker==1.8.2
5+
certifi==2024.12.14
6+
cffi==1.17.1
7+
charset-normalizer==3.4.0
88
click==8.1.7
9-
coverage==7.3.2
10-
cryptography==41.0.6
11-
Cython==3.0.4; platform_system != "Windows"
9+
coverage==7.6.1
10+
cryptography==44.0.0
11+
Cython==3.0.11
1212
essentials==1.1.5
13-
essentials-openapi==1.0.8
14-
Flask==3.0.0
15-
gevent==23.9.1
16-
greenlet==3.0.0
13+
essentials-openapi==1.0.9
14+
Flask==3.0.3
15+
gevent==24.2.1
16+
greenlet==3.1.1
1717
guardpost==1.0.2
1818
h11==0.14.0
1919
h2==4.1.0
2020
hpack==4.0.0
21-
httptools==0.6.1
21+
httptools==0.6.4
2222
hypercorn==0.14.4
2323
hyperframe==6.0.1
24-
idna==3.4
24+
idna==3.10
2525
iniconfig==2.0.0
26-
itsdangerous==2.1.2
27-
Jinja2==3.1.3
28-
MarkupSafe==2.1.3
26+
itsdangerous==2.2.0
27+
Jinja2==3.1.4
28+
MarkupSafe==2.1.5
2929
mccabe==0.7.0
30-
packaging==23.2
31-
pluggy==1.3.0
30+
packaging==24.2
31+
pluggy==1.5.0
3232
priority==2.0.0
3333
py==1.11.0
34-
pycparser==2.21
35-
pydantic==2.4.2
36-
pydantic_core==2.10.1
37-
PyJWT==2.8.0
38-
pyparsing==3.1.1
39-
pytest==7.4.2
34+
pycparser==2.22
35+
pydantic==2.10.3
36+
pydantic-core==2.27.1
37+
PyJWT==2.9.0
38+
pyparsing==3.1.4
39+
pytest==8.3.4
4040
pytest-asyncio==0.21.1
41-
pytest-cov==4.1.0
42-
python-dateutil==2.8.2
43-
PyYAML==6.0.1
44-
regex==2023.10.3
45-
requests==2.31.0
46-
rodi==2.0.3
47-
setuptools==68.2.2
48-
six==1.16.0
41+
pytest-cov==5.0.0
42+
python-dateutil==2.9.0.post0
43+
PyYAML==6.0.2
44+
regex==2024.11.6
45+
requests==2.32.3
46+
rodi==2.0.6
47+
setuptools==75.3.0
48+
six==1.17.0
4949
toml==0.10.2
50-
tomli==2.0.1
51-
typing_extensions==4.8.0
52-
urllib3==2.0.7
53-
uvicorn==0.23.2
54-
wcwidth==0.2.8
55-
websockets==12.0
56-
Werkzeug==3.0.1
50+
tomli==2.2.1
51+
typing-extensions==4.12.2
52+
urllib3==2.2.3
53+
uvicorn==0.33.0
54+
wcwidth==0.2.13
55+
websockets==13.1
56+
Werkzeug==3.0.6
5757
wsproto==1.2.0
5858
zope.event==5.0
59-
zope.interface==6.1
59+
zope.interface==7.2
60+
build==1.2.2.post1

0 commit comments

Comments
 (0)