Skip to content

Commit 67e445d

Browse files
committed
feat! support Python 3.10 at a minimum
1 parent 588850d commit 67e445d

File tree

6 files changed

+94
-693
lines changed

6 files changed

+94
-693
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
python: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
20+
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
2121
steps:
2222
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2323
- uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
@@ -28,15 +28,6 @@ jobs:
2828
- name: Install dependencies
2929
run: uv sync --locked --dev
3030

31-
- name: Check formatting
32-
run: uv run ruff format --check .
33-
34-
- name: Lint
35-
run: uv run ruff check --extend-exclude .devbox
36-
37-
- name: Type Check
38-
run: uv run mypy
39-
4031
- name: Test
4132
run: uv run pytest
4233

@@ -47,7 +38,7 @@ jobs:
4738
strategy:
4839
fail-fast: false
4940
matrix:
50-
python: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
41+
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
5142
steps:
5243
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
5344
- uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0

.github/workflows/lint.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Python Lint
2+
3+
on:
4+
push:
5+
branches:
6+
- "main"
7+
pull_request: {}
8+
9+
defaults:
10+
run:
11+
shell: bash
12+
13+
jobs:
14+
lint:
15+
name: Python lint and typecheck
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
19+
- uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
20+
with:
21+
python-version: "3.14"
22+
enable-cache: true
23+
24+
- name: Install dependencies
25+
run: uv sync --locked --dev
26+
27+
- name: Check formatting
28+
run: uv run ruff format --check .
29+
30+
- name: Lint
31+
run: uv run ruff check --extend-exclude .devbox
32+
33+
- name: Type check
34+
run: uv run mypy

CLAUDE.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ uv run mypy # Type checking
2121

2222
### Testing
2323

24-
The SDK uses [nox](https://nox.thea.codes/) with [nox-uv](https://github.com/dantebben/nox-uv) for multi-version Python testing. This ensures compatibility across all supported Python versions (3.8-3.14).
24+
The SDK uses [nox](https://nox.thea.codes/) with [nox-uv](https://github.com/dantebben/nox-uv) for multi-version Python testing. This ensures compatibility across all supported Python versions (3.10-3.14).
2525

2626
**Quick testing with the test script:**
2727

@@ -116,4 +116,3 @@ When adding new features:
116116
2. Add Pydantic models in appropriate `types/` subdirectory
117117
3. Implement comprehensive tests using the sync_and_async marker
118118
4. Follow existing patterns for pagination, error handling, and type annotations
119-

noxfile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
nox.options.reuse_venv = "yes"
1818

1919
# All Python versions supported by the SDK (must match CI matrix)
20-
PYTHON_VERSIONS = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
20+
PYTHON_VERSIONS = ["3.10", "3.11", "3.12", "3.13", "3.14"]
2121

2222
# Default sessions to run
2323
nox.options.sessions = ["tests"]

pyproject.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ description = "WorkOS Python Client"
55
readme = "README.md"
66
license = "MIT"
77
authors = [{ name = "WorkOS", email = "team@workos.com" }]
8-
requires-python = ">=3.8"
8+
requires-python = ">=3.10"
99

1010
dependencies = [
1111
"cryptography>=44.0.2",
1212
"httpx~=0.28.1",
1313
"pydantic>=2.10.4",
14-
"pyjwt>=2.12.0 ; python_full_version >= '3.9'",
15-
"pyjwt>=2.9.0,<2.10 ; python_full_version == '3.8.*'",
14+
"pyjwt>=2.12.0",
1615
]
1716

1817
[project.urls]
@@ -36,8 +35,8 @@ test = [
3635
lint = ["ruff==0.14.5"]
3736
type_check = ["mypy==1.14.1"]
3837
nox = [
39-
"nox>=2024.10.9 ; python_version >= '3.9'",
40-
"nox-uv>=0.7.0 ; python_version >= '3.9'",
38+
"nox>=2024.10.9",
39+
"nox-uv>=0.7.0",
4140
]
4241

4342

0 commit comments

Comments
 (0)