Skip to content

Commit f5bbc6c

Browse files
authored
chore!: Deprecate support for python 3.9 (#609)
* chore!: Deprecate support for python 3.9 * Remove 3.9
1 parent 769b9f7 commit f5bbc6c

6 files changed

Lines changed: 45 additions & 492 deletions

File tree

.github/workflows/test-python.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
strategy:
4545
fail-fast: true
4646
matrix:
47-
python-version: ["3.9", "3.10", "3.11", "3.12"]
47+
python-version: ["3.10", "3.11", "3.12"]
4848
steps:
4949
- uses: actions/checkout@v4
5050

.github/workflows/wheels.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,13 @@ jobs:
5252
version: "0.5.x"
5353

5454
- name: Install Python versions
55-
run: uv python install 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.10
55+
run: uv python install 3.10 3.11 3.12 3.13 3.14 pypy3.10
5656

5757
- name: Build wheels
5858
uses: PyO3/maturin-action@v1
5959
with:
6060
target: ${{ matrix.platform.target }}
61-
args: --release --out dist -i 3.9 -i 3.10 -i 3.11 -i 3.12 -i 3.13 -i 3.14 -i pypy3.10 --manifest-path obstore/Cargo.toml
61+
args: --release --out dist -i 3.10 -i 3.11 -i 3.12 -i 3.13 -i 3.14 -i pypy3.10 --manifest-path obstore/Cargo.toml
6262
sccache: "true"
6363
manylinux: ${{ matrix.platform.manylinux }}
6464
- name: Upload wheels
@@ -90,13 +90,13 @@ jobs:
9090
version: "0.5.x"
9191

9292
- name: Install Python versions
93-
run: uv python install 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.10
93+
run: uv python install 3.10 3.11 3.12 3.13 3.14 pypy3.10
9494

9595
- name: Build wheels
9696
uses: PyO3/maturin-action@v1
9797
with:
9898
target: ${{ matrix.platform.target }}
99-
args: --release --out dist -i 3.9 -i 3.10 -i 3.11 -i 3.12 -i 3.13 -i 3.14 -i pypy3.10 --manifest-path obstore/Cargo.toml
99+
args: --release --out dist -i 3.10 -i 3.11 -i 3.12 -i 3.13 -i 3.14 -i pypy3.10 --manifest-path obstore/Cargo.toml
100100
sccache: "true"
101101
manylinux: musllinux_1_2
102102
- name: Upload wheels
@@ -126,7 +126,7 @@ jobs:
126126
uses: PyO3/maturin-action@v1
127127
with:
128128
target: ${{ matrix.platform.target }}
129-
args: --release --out dist -i 3.9 -i 3.10 -i 3.11 -i 3.12 -i 3.13 --manifest-path obstore/Cargo.toml
129+
args: --release --out dist -i 3.10 -i 3.11 -i 3.12 -i 3.13 --manifest-path obstore/Cargo.toml
130130
sccache: "true"
131131
- name: Upload wheels
132132
uses: actions/upload-artifact@v4
@@ -153,13 +153,13 @@ jobs:
153153
version: "0.5.x"
154154

155155
- name: Install Python versions
156-
run: uv python install 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.10
156+
run: uv python install 3.10 3.11 3.12 3.13 3.14 pypy3.10
157157

158158
- name: Build wheels
159159
uses: PyO3/maturin-action@v1
160160
with:
161161
target: ${{ matrix.platform.target }}
162-
args: --release --out dist -i 3.9 -i 3.10 -i 3.11 -i 3.12 -i 3.13 -i 3.14 -i pypy3.10 --manifest-path obstore/Cargo.toml
162+
args: --release --out dist -i 3.10 -i 3.11 -i 3.12 -i 3.13 -i 3.14 -i pypy3.10 --manifest-path obstore/Cargo.toml
163163
sccache: "true"
164164
- name: Upload wheels
165165
uses: actions/upload-artifact@v4

obstore/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "obstore"
7-
requires-python = ">=3.9"
7+
requires-python = ">=3.10"
88
readme = "README.md"
99
dependencies = ["typing-extensions; python_version < '3.13'"]
1010
classifiers = [

pyproject.toml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "test-env"
33
version = "0.1.0"
44
description = "Add your description here"
55
readme = "README.md"
6-
requires-python = ">=3.9"
6+
requires-python = ">=3.10"
77
dependencies = []
88

99
[tool.uv]
@@ -44,11 +44,7 @@ dev-dependencies = [
4444
"tqdm>=4.67.1",
4545
"types-boto3[s3,sts]>=1.36.23",
4646
"types-requests>=2.31.0.6",
47-
]
48-
constraint-dependencies = [
49-
# ensure lockfile grabs wheels for pyproj for each Python version
50-
"urllib; python_version == '3.9'",
51-
"urllib>=2.0; python_version >= '3.10'",
47+
"urllib3>=2.0",
5248
]
5349

5450
[tool.uv.workspace]

tests/store/test_s3.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# ruff: noqa: PGH003
22

33
import pickle
4-
import sys
54
from datetime import datetime, timezone
65

76
import pytest
@@ -10,10 +9,6 @@
109
from obstore.store import S3Store, from_url
1110

1211

13-
@pytest.mark.skipif(
14-
sys.version_info < (3, 10),
15-
reason="Moto doesn't seem to support Python 3.9",
16-
)
1712
@pytest.mark.asyncio
1813
async def test_list_async(minio_store: S3Store):
1914
await minio_store.put_async("afile", b"hello world")
@@ -22,10 +17,6 @@ async def test_list_async(minio_store: S3Store):
2217
assert any("afile" in x["path"] for x in list_result)
2318

2419

25-
@pytest.mark.skipif(
26-
sys.version_info < (3, 10),
27-
reason="Moto doesn't seem to support Python 3.9",
28-
)
2920
@pytest.mark.asyncio
3021
async def test_get_async(minio_store: S3Store):
3122
await minio_store.put_async("afile", b"hello world")

0 commit comments

Comments
 (0)