Skip to content

Commit

Permalink
Drop Py3.8 support to add potential Py3.13 support (#863)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
M5oul and rudolfix authored Dec 17, 2024
1 parent 09d815a commit 483443a
Show file tree
Hide file tree
Showing 23 changed files with 819 additions and 933 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ jobs:
platform: linux
- os: windows
ls: dir
interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9 pypy3.10
interpreter: 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
- os: windows
ls: dir
target: aarch64
interpreter: 3.11 3.12
interpreter: 3.11 3.12 3.13
- os: macos
target: aarch64
interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9 pypy3.10
interpreter: 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
- os: ubuntu
platform: linux
target: aarch64
Expand All @@ -45,13 +45,13 @@ jobs:
- os: ubuntu
platform: linux
target: ppc64le
interpreter: 3.7 3.8 3.9 3.10 3.11 3.12
interpreter: 3.9 3.10 3.11 3.12 3.13
# mimalloc not supported on manylinux2014 cross-compile container
extra-build-args: --no-default-features
- os: ubuntu
platform: linux
target: s390x
interpreter: 3.7 3.8 3.9 3.10 3.11 3.12
interpreter: 3.9 3.10 3.11 3.12 3.13
# mimalloc not supported on manylinux2014 cross-compile container
extra-build-args: --no-default-features

Expand All @@ -71,7 +71,7 @@ jobs:
target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }}
container: ${{ matrix.container }}
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 }}
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 }}
rust-toolchain: stable
docker-options: -e CI

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
strategy:
matrix:
os: [Ubuntu, MacOS, Windows]
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
defaults:
run:
shell: bash
Expand Down
3 changes: 1 addition & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@ Pendulum
:alt: Pendulum Build status
:target: https://github.com/sdispater/pendulum/actions


Python datetimes made easy.

Supports Python **3.8 and newer**.
Supports Python **3.9 and newer**.


.. code-block:: python
Expand Down
1,285 changes: 688 additions & 597 deletions poetry.lock

Large diffs are not rendered by default.

17 changes: 6 additions & 11 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,14 @@ name = "pendulum"
version = "3.0.0"
description = "Python datetimes made easy"
readme = "README.rst"
requires-python = ">=3.8"
requires-python = ">=3.9"
license = { text = "MIT License" }
authors = [{ name = "Sébastien Eustace", email = "[email protected]" }]
keywords = ['datetime', 'date', 'time']

classifiers = [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand All @@ -21,9 +20,7 @@ classifiers = [
dependencies = [
"python-dateutil>=2.6",
"tzdata>=2020.1",
'backports.zoneinfo>=0.2.1; python_version < "3.9"',
'time-machine>=2.6.0; implementation_name != "pypy"',
'importlib-resources>=5.9.0; python_version < "3.9"'
]

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


[tool.poetry.dependencies]
python = ">=3.8"
python = ">=3.9"
python-dateutil = ">=2.6"
"backports.zoneinfo" = { version = ">=0.2.1", python = "<3.9" }
time-machine = { version = ">=2.6.0", markers = "implementation_name != 'pypy'", optional = true }
time-machine = { version = ">=2.16.0", markers = "implementation_name != 'pypy'", optional = true }
tzdata = ">=2020.1"
importlib-resources = { version = ">=5.9.0", python = "<3.9" }

[tool.poetry.group.test.dependencies]
pytest = "^7.1.2"
pytz = ">=2022.1"
time-machine = ">=2.6.0"
time-machine = ">=2.16.0"
pytest-benchmark = "^4.0.0"

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

[tool.poetry.group.benchmark.dependencies]
pytest-codspeed = "^1.2.2"
pytest-codspeed = "^3.0.0"

[tool.poetry.group.build.dependencies]
maturin = ">=1.0,<2.0"
Expand All @@ -96,7 +91,7 @@ fix = true
unfixable = [
"ERA", # do not autoremove commented out code
]
target-version = "py38"
target-version = "py39"
line-length = 88
extend-select = [
"B", # flake8-bugbear
Expand Down
Loading

0 comments on commit 483443a

Please sign in to comment.