Skip to content

Commit 483443a

Browse files
M5oulrudolfix
andauthored
Drop Py3.8 support to add potential Py3.13 support (#863)
* Drop Py3.8 support Officially EOL by Python project Run `poetry update` Drop "backports.zoneinfo", importlib-resources Bump time-machine, pytest-codspeed to last version which support Py3.13 https://github.com/adamchainz/time-machine/blob/main/CHANGELOG.rst https://github.com/CodSpeedHQ/pytest-codspeed/releases * Switch Ruff to ≥ Py3.9, apply changes Directly import `zoneinfo` and `importlib.resources` in the files where used * CI: Drop 3.7, 3.8 builds/tests * CI: Add 3.13 builds/tests * bumps to newest pyO3, converts Py into Bound --------- Co-authored-by: Marcin Rudolf <[email protected]>
1 parent 09d815a commit 483443a

23 files changed

+819
-933
lines changed

.github/workflows/release.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ jobs:
2020
platform: linux
2121
- os: windows
2222
ls: dir
23-
interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9 pypy3.10
23+
interpreter: 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
2424
- os: windows
2525
ls: dir
2626
target: aarch64
27-
interpreter: 3.11 3.12
27+
interpreter: 3.11 3.12 3.13
2828
- os: macos
2929
target: aarch64
30-
interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9 pypy3.10
30+
interpreter: 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
3131
- os: ubuntu
3232
platform: linux
3333
target: aarch64
@@ -45,13 +45,13 @@ jobs:
4545
- os: ubuntu
4646
platform: linux
4747
target: ppc64le
48-
interpreter: 3.7 3.8 3.9 3.10 3.11 3.12
48+
interpreter: 3.9 3.10 3.11 3.12 3.13
4949
# mimalloc not supported on manylinux2014 cross-compile container
5050
extra-build-args: --no-default-features
5151
- os: ubuntu
5252
platform: linux
5353
target: s390x
54-
interpreter: 3.7 3.8 3.9 3.10 3.11 3.12
54+
interpreter: 3.9 3.10 3.11 3.12 3.13
5555
# mimalloc not supported on manylinux2014 cross-compile container
5656
extra-build-args: --no-default-features
5757

@@ -71,7 +71,7 @@ jobs:
7171
target: ${{ matrix.target }}
7272
manylinux: ${{ matrix.manylinux || 'auto' }}
7373
container: ${{ matrix.container }}
74-
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.7 3.8 3.9 3.10 3.11 3.12 pypy3.7 pypy3.8 pypy3.9 pypy3.10' }} ${{ matrix.extra-build-args }}
74+
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10' }} ${{ matrix.extra-build-args }}
7575
rust-toolchain: stable
7676
docker-options: -e CI
7777

.github/workflows/tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
strategy:
3434
matrix:
3535
os: [Ubuntu, MacOS, Windows]
36-
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
36+
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
3737
defaults:
3838
run:
3939
shell: bash

README.rst

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ Pendulum
1111
:alt: Pendulum Build status
1212
:target: https://github.com/sdispater/pendulum/actions
1313

14-
1514
Python datetimes made easy.
1615

17-
Supports Python **3.8 and newer**.
16+
Supports Python **3.9 and newer**.
1817

1918

2019
.. code-block:: python

poetry.lock

+688-597
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

+6-11
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@ name = "pendulum"
33
version = "3.0.0"
44
description = "Python datetimes made easy"
55
readme = "README.rst"
6-
requires-python = ">=3.8"
6+
requires-python = ">=3.9"
77
license = { text = "MIT License" }
88
authors = [{ name = "Sébastien Eustace", email = "[email protected]" }]
99
keywords = ['datetime', 'date', 'time']
1010

1111
classifiers = [
1212
"License :: OSI Approved :: MIT License",
1313
"Programming Language :: Python :: 3",
14-
"Programming Language :: Python :: 3.8",
1514
"Programming Language :: Python :: 3.9",
1615
"Programming Language :: Python :: 3.10",
1716
"Programming Language :: Python :: 3.11",
@@ -21,9 +20,7 @@ classifiers = [
2120
dependencies = [
2221
"python-dateutil>=2.6",
2322
"tzdata>=2020.1",
24-
'backports.zoneinfo>=0.2.1; python_version < "3.9"',
2523
'time-machine>=2.6.0; implementation_name != "pypy"',
26-
'importlib-resources>=5.9.0; python_version < "3.9"'
2724
]
2825

2926
[project.urls]
@@ -46,17 +43,15 @@ keywords = ['datetime', 'date', 'time']
4643

4744

4845
[tool.poetry.dependencies]
49-
python = ">=3.8"
46+
python = ">=3.9"
5047
python-dateutil = ">=2.6"
51-
"backports.zoneinfo" = { version = ">=0.2.1", python = "<3.9" }
52-
time-machine = { version = ">=2.6.0", markers = "implementation_name != 'pypy'", optional = true }
48+
time-machine = { version = ">=2.16.0", markers = "implementation_name != 'pypy'", optional = true }
5349
tzdata = ">=2020.1"
54-
importlib-resources = { version = ">=5.9.0", python = "<3.9" }
5550

5651
[tool.poetry.group.test.dependencies]
5752
pytest = "^7.1.2"
5853
pytz = ">=2022.1"
59-
time-machine = ">=2.6.0"
54+
time-machine = ">=2.16.0"
6055
pytest-benchmark = "^4.0.0"
6156

6257
[tool.poetry.group.doc.dependencies]
@@ -79,7 +74,7 @@ cleo = { version = "^2.0.1", python = ">=3.8,<4.0" }
7974
tox = "^4.0.0"
8075

8176
[tool.poetry.group.benchmark.dependencies]
82-
pytest-codspeed = "^1.2.2"
77+
pytest-codspeed = "^3.0.0"
8378

8479
[tool.poetry.group.build.dependencies]
8580
maturin = ">=1.0,<2.0"
@@ -96,7 +91,7 @@ fix = true
9691
unfixable = [
9792
"ERA", # do not autoremove commented out code
9893
]
99-
target-version = "py38"
94+
target-version = "py39"
10095
line-length = 88
10196
extend-select = [
10297
"B", # flake8-bugbear

0 commit comments

Comments
 (0)