@@ -18,16 +18,14 @@ keywords = [
1818]
1919readme = " README.md"
2020license = {text = " MIT" }
21- requires-python = " >=3.10 "
21+ requires-python = " >=3.12 "
2222dependencies = []
2323classifiers = [
2424 " Development Status :: 3 - Alpha" ,
2525 " Framework :: AsyncIO" ,
2626 " Intended Audience :: Developers" ,
2727 " License :: OSI Approved :: MIT License" ,
2828 " Programming Language :: Python :: 3" ,
29- " Programming Language :: Python :: 3.10" ,
30- " Programming Language :: Python :: 3.11" ,
3129 " Programming Language :: Python :: 3.12" ,
3230 " Programming Language :: Python :: 3.13" ,
3331 " Topic :: Communications" ,
@@ -99,11 +97,19 @@ include = [
9997asyncio_mode = " auto"
10098
10199[tool .ruff ]
102- target-version = " py310 "
100+ target-version = " py312 "
103101line-length = 120
104102
105103[tool .ruff .lint ]
106104select = [" E" , " F" , " I" , " B" , " SIM" , " UP" ]
105+ # Modernization of pre-3.12 patterns is deferred to follow-up PRs; the 3.12
106+ # floor bump itself doesn't rewrite call sites. Re-enable these as the
107+ # codebase is migrated.
108+ ignore = [
109+ " UP017" , # datetime.timezone.utc → datetime.UTC (3.11+)
110+ " UP040" , # TypeAlias → PEP 695 `type` keyword (3.12+)
111+ " UP041" , # asyncio.TimeoutError → builtins TimeoutError (3.11+)
112+ ]
107113
108114[dependency-groups ]
109115dev = [
@@ -132,7 +138,7 @@ project-excludes = ["**/__pycache__", "**/.pytest_cache"]
132138disable-project-excludes-heuristics = true
133139use-ignore-files = false
134140
135- python-version = " 3.10 "
141+ python-version = " 3.12 "
136142python-platform = " linux"
137143
138144# Optional adapter deps that aren't in the default install. Treating them as
0 commit comments