diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 138070c..bf61a1d 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: python-version: [ - '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', + '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.8', 'pypy-3.10' ] diff --git a/asyncstdlib/asynctools.py b/asyncstdlib/asynctools.py index 556832a..dd23948 100644 --- a/asyncstdlib/asynctools.py +++ b/asyncstdlib/asynctools.py @@ -20,7 +20,6 @@ from ._core import aiter from .contextlib import nullcontext - S = TypeVar("S") diff --git a/asyncstdlib/builtins.py b/asyncstdlib/builtins.py index 1387f35..717dbae 100644 --- a/asyncstdlib/builtins.py +++ b/asyncstdlib/builtins.py @@ -22,7 +22,6 @@ Sentinel, ) - __ANEXT_DEFAULT = Sentinel("") diff --git a/pyproject.toml b/pyproject.toml index 703b31c..8f4b52a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] license = {"file" = "LICENSE"} keywords = ["async", "enumerate", "itertools", "builtins", "functools", "contextlib"] @@ -80,3 +81,6 @@ verboseOutput = true testpaths = [ "unittests", ] + +[tool.black] +target-version = ["py38", "py39","py310", "py311", "py312", "py313", "py314"] diff --git a/unittests/test_asynctools.py b/unittests/test_asynctools.py index 119f537..b519711 100644 --- a/unittests/test_asynctools.py +++ b/unittests/test_asynctools.py @@ -4,7 +4,6 @@ from .utility import sync, asyncify - CLOSED = "closed" diff --git a/unittests/test_functools_lru.py b/unittests/test_functools_lru.py index 1a509bc..f85c994 100644 --- a/unittests/test_functools_lru.py +++ b/unittests/test_functools_lru.py @@ -2,6 +2,7 @@ import sys import pytest +from typing_extensions import get_annotations, Format import asyncstdlib as a @@ -175,5 +176,7 @@ async def other_method(self): if name != "method": continue # test direct and literal annotation styles - assert Bar.method.__annotations__["int_arg"] in {int, "int"} - assert Bar().method.__annotations__["int_arg"] in {int, "int"} + assert get_annotations(Bar.method, format=Format.STRING)["int_arg"] == "int" + assert ( + get_annotations(Bar().method, format=Format.STRING)["int_arg"] == "int" + ) diff --git a/unittests/test_heapq.py b/unittests/test_heapq.py index 201b684..425e412 100644 --- a/unittests/test_heapq.py +++ b/unittests/test_heapq.py @@ -7,7 +7,6 @@ from .utility import sync, asyncify, awaitify - MERGE_SAMPLES = [ [[1, 2], [3, 4]], [[1, 2, 3], [4, 5, 6], [7, 8, 9]], diff --git a/unittests/utility.py b/unittests/utility.py index 479278d..ca2ff9e 100644 --- a/unittests/utility.py +++ b/unittests/utility.py @@ -13,7 +13,6 @@ from collections import deque from random import randint - T = TypeVar("T")