Skip to content

Commit

Permalink
Drop EOL Python 3.8 support (#1162)
Browse files Browse the repository at this point in the history
* Drop EOL Python 3.8 support

* Run pyupgrade --py39-plus on all files

* Revert using direct annotations in looponfail.py

We need to use string annotations otherwise we get this error:

```
ValueError: ("the use of non-builtin globals isn't supported", ['execnet', 'Any'])
```
  • Loading branch information
nicoddemus authored Dec 7, 2024
2 parents c3d7b77 + 31bee7c commit 39c62b3
Show file tree
Hide file tree
Showing 19 changed files with 25 additions and 29 deletions.
9 changes: 3 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ jobs:
fail-fast: false
matrix:
tox_env:
- "py38-pytestmin"
- "py38-pytestlatest"
- "py39-pytestmin"
- "py39-pytestlatest"
- "py310-pytestlatest"
- "py311-pytestlatest"
Expand All @@ -47,10 +46,8 @@ jobs:

os: [ubuntu-latest, windows-latest]
include:
- tox_env: "py38-pytestmin"
python: "3.8"
- tox_env: "py38-pytestlatest"
python: "3.8"
- tox_env: "py39-pytestmin"
python: "3.9"
- tox_env: "py39-pytestlatest"
python: "3.9"
- tox_env: "py310-pytestlatest"
Expand Down
1 change: 1 addition & 0 deletions changelog/1162.removal.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Dropped support for EOL Python 3.8.
3 changes: 1 addition & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,13 @@ classifiers = [
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
requires-python = ">=3.8"
requires-python = ">=3.9"
dependencies = [
"execnet>=2.1",
"pytest>=7.0.0",
Expand Down
2 changes: 1 addition & 1 deletion src/xdist/_path.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from collections.abc import Iterator
from itertools import chain
import os
from pathlib import Path
from typing import Callable
from typing import Iterator


def visit_path(
Expand Down
2 changes: 1 addition & 1 deletion src/xdist/dsession.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from __future__ import annotations

from collections.abc import Sequence
from enum import auto
from enum import Enum
from queue import Empty
from queue import Queue
import sys
from typing import Any
from typing import Sequence
import warnings

import execnet
Expand Down
2 changes: 1 addition & 1 deletion src/xdist/looponfail.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@

from __future__ import annotations

from collections.abc import Sequence
import os
from pathlib import Path
import sys
import time
from typing import Any
from typing import Sequence

from _pytest._io import TerminalWriter
import execnet
Expand Down
2 changes: 1 addition & 1 deletion src/xdist/newhooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@

from __future__ import annotations

from collections.abc import Sequence
import os
from typing import Any
from typing import Sequence
from typing import TYPE_CHECKING

import execnet
Expand Down
8 changes: 4 additions & 4 deletions src/xdist/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@
from __future__ import annotations

import collections
from collections.abc import Generator
from collections.abc import Iterable
from collections.abc import Sequence
import contextlib
import enum
import os
import sys
import time
from typing import Any
from typing import Generator
from typing import Iterable
from typing import Literal
from typing import Sequence
from typing import TypedDict
from typing import Union
import warnings
Expand Down Expand Up @@ -98,7 +98,7 @@ def replace(self, iterable: Iterable[Item]) -> None:
self._items = collections.deque(iterable)

@contextlib.contextmanager
def lock(self) -> Generator[collections.deque[Item], None, None]:
def lock(self) -> Generator[collections.deque[Item]]:
with self._lock:
try:
yield self._items
Expand Down
2 changes: 1 addition & 1 deletion src/xdist/report.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

from collections.abc import Sequence
from difflib import unified_diff
from typing import Sequence


def report_collection_diff(
Expand Down
2 changes: 1 addition & 1 deletion src/xdist/scheduler/each.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from __future__ import annotations

from typing import Sequence
from collections.abc import Sequence

import pytest

Expand Down
2 changes: 1 addition & 1 deletion src/xdist/scheduler/load.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

from collections.abc import Sequence
from itertools import cycle
from typing import Sequence

import pytest

Expand Down
2 changes: 1 addition & 1 deletion src/xdist/scheduler/loadscope.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from __future__ import annotations

from collections import OrderedDict
from collections.abc import Sequence
from typing import NoReturn
from typing import Sequence

import pytest

Expand Down
2 changes: 1 addition & 1 deletion src/xdist/scheduler/protocol.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

from collections.abc import Sequence
from typing import Protocol
from typing import Sequence

from xdist.workermanage import WorkerController

Expand Down
2 changes: 1 addition & 1 deletion src/xdist/scheduler/worksteal.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

from collections.abc import Sequence
from typing import NamedTuple
from typing import Sequence

import pytest

Expand Down
2 changes: 1 addition & 1 deletion src/xdist/workermanage.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations

from collections.abc import Sequence
import enum
import fnmatch
import os
Expand All @@ -9,7 +10,6 @@
from typing import Any
from typing import Callable
from typing import Literal
from typing import Sequence
from typing import Union
import uuid
import warnings
Expand Down
4 changes: 2 additions & 2 deletions testing/conftest.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from __future__ import annotations

from collections.abc import Generator
import shutil
from typing import Callable
from typing import Generator

import execnet
import pytest
Expand All @@ -12,7 +12,7 @@


@pytest.fixture(autouse=True)
def _divert_atexit(monkeypatch: pytest.MonkeyPatch) -> Generator[None, None, None]:
def _divert_atexit(monkeypatch: pytest.MonkeyPatch) -> Generator[None]:
import atexit

finalizers = []
Expand Down
2 changes: 1 addition & 1 deletion testing/test_dsession.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from __future__ import annotations

from collections.abc import Sequence
from typing import Any
from typing import cast
from typing import Sequence
from typing import TYPE_CHECKING

import execnet
Expand Down
3 changes: 1 addition & 2 deletions testing/test_remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from typing import Any
from typing import Callable
from typing import cast
from typing import Dict
from typing import Union
import uuid

Expand Down Expand Up @@ -90,7 +89,7 @@ def worker(request: pytest.FixtureRequest, pytester: pytest.Pytester) -> WorkerS

class TestWorkerInteractor:
UnserializerReport = Callable[
[Dict[str, Any]], Union[pytest.CollectReport, pytest.TestReport]
[dict[str, Any]], Union[pytest.CollectReport, pytest.TestReport]
]

@pytest.fixture
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[tox]
envlist =
linting
py{38,39,310,311,312,313}-pytestlatest
py{39,310,311,312,313}-pytestlatest
py310-pytestmain
py310-psutil
py310-setproctitle
Expand Down

0 comments on commit 39c62b3

Please sign in to comment.