Drop support for EOL Python 3.7 (#246)
* Drop support for EOL Python 3.7
* Use Black mirror for faster pre-commit
diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml
index 7bb7c70..660273b 100644
--- a/.github/workflows/check.yml
+++ b/.github/workflows/check.yml
@@ -18,13 +18,12 @@
fail-fast: false
matrix:
py:
- - "3.12.0-beta.1"
+ - "pypy3.9" # ahead to start it earlier because takes longer
+ - "3.12"
- "3.11"
- "3.10"
- - "pypy3.9" # ahead to start it earlier because takes longer
- "3.9"
- "3.8"
- - "3.7"
os:
- ubuntu-22.04
- windows-2022
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 541ca5d..b62e333 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -9,7 +9,7 @@
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- - repo: https://github.com/psf/black
+ - repo: https://github.com/psf/black-pre-commit-mirror
rev: 23.11.0
hooks:
- id: black
@@ -19,7 +19,7 @@
- id: tox-ini-fmt
args: ["-p", "fix"]
- repo: https://github.com/tox-dev/pyproject-fmt
- rev: "1.5.1"
+ rev: "1.5.3"
hooks:
- id: pyproject-fmt
additional_dependencies: ["tox>=4.6.4"]
diff --git a/pyproject.toml b/pyproject.toml
index f6df973..9e0c101 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -24,7 +24,7 @@
{ name = "Ofek Lev", email = "oss@ofek.dev" },
{ name = "Ronny Pfannschmidt", email = "opensource@ronnypfannschmidt.de" },
]
-requires-python = ">=3.7"
+requires-python = ">=3.8"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
@@ -32,7 +32,6 @@
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -45,9 +44,6 @@
dynamic = [
"version",
]
-dependencies = [
- 'typing-extensions>=4.7.1; python_version < "3.8"',
-]
optional-dependencies.docs = [
"furo>=2023.7.26",
"proselint>=0.13",
@@ -77,7 +73,7 @@
[tool.ruff]
select = ["ALL"]
line-length = 120
-target-version = "py37"
+target-version = "py38"
isort = {known-first-party = ["platformdirs", "tests"], required-imports = ["from __future__ import annotations"]}
ignore = [
"ANN101", # Missing type annotation for `self` in method
diff --git a/src/platformdirs/__init__.py b/src/platformdirs/__init__.py
index 3d5a5bd..93d67a9 100644
--- a/src/platformdirs/__init__.py
+++ b/src/platformdirs/__init__.py
@@ -14,11 +14,7 @@
if TYPE_CHECKING:
from pathlib import Path
-
- if sys.version_info >= (3, 8): # pragma: no cover (py38+)
- from typing import Literal
- else: # pragma: no cover (py38+)
- from typing_extensions import Literal
+ from typing import Literal
def _set_platform_dir_class() -> type[PlatformDirsABC]:
diff --git a/src/platformdirs/api.py b/src/platformdirs/api.py
index aa9ce7b..f5389e7 100644
--- a/src/platformdirs/api.py
+++ b/src/platformdirs/api.py
@@ -7,12 +7,7 @@
from typing import TYPE_CHECKING
if TYPE_CHECKING:
- import sys
-
- if sys.version_info >= (3, 8): # pragma: no cover (py38+)
- from typing import Literal
- else: # pragma: no cover (py38+)
- from typing_extensions import Literal
+ from typing import Literal
class PlatformDirsABC(ABC):
diff --git a/tox.ini b/tox.ini
index 1af7b63..1844288 100644
--- a/tox.ini
+++ b/tox.ini
@@ -8,7 +8,6 @@
py310
py39
py38
- py37
pypy3
type
coverage
@@ -82,7 +81,6 @@
py310
py39
py38
- py37
pypy3
[testenv:readme]