Python 3.10 reaches end-of-life on 2026-10-04. Once that lands, we should drop support and clean up the workarounds it forces.
Changes required after dropping 3.10
pyproject.toml:
- Bump
requires-python from >=3.10 to >=3.11.
- Remove the
"Programming Language :: Python :: 3.10" classifier.
- Drop
tomli from the [docs] extra (backport for 3.10's missing tomllib).
- Remove
py310 from Black's target-version.
- Remove
typing_extensions>=4.0 from runtime dependencies if the Self cleanup below removes the last consumer.
docs/conf.py:
- Replace the
try: import tomllib / except ImportError: import tomli as tomllib fallback with a direct import tomllib.
tableauserverclient/ — typing_extensions.Self becomes typing.Self in ~10 files (grep-confirmed):
models/collection_item.py
models/extensions_item.py
models/groupset_item.py
models/group_item.py
models/reference_item.py
models/user_item.py
server/endpoint/endpoint.py
server/endpoint/jobs_endpoint.py
server/query.py
CI (.github/workflows/run-tests.yml): remove '3.10' from the test matrix.
Timing
Aim to file in a release published after 2026-10-04.
🤖 Generated with Claude Code
Python 3.10 reaches end-of-life on 2026-10-04. Once that lands, we should drop support and clean up the workarounds it forces.
Changes required after dropping 3.10
pyproject.toml:requires-pythonfrom>=3.10to>=3.11."Programming Language :: Python :: 3.10"classifier.tomlifrom the[docs]extra (backport for 3.10's missingtomllib).py310from Black'starget-version.typing_extensions>=4.0from runtimedependenciesif theSelfcleanup below removes the last consumer.docs/conf.py:try: import tomllib / except ImportError: import tomli as tomllibfallback with a directimport tomllib.tableauserverclient/—typing_extensions.Selfbecomestyping.Selfin ~10 files (grep-confirmed):models/collection_item.pymodels/extensions_item.pymodels/groupset_item.pymodels/group_item.pymodels/reference_item.pymodels/user_item.pyserver/endpoint/endpoint.pyserver/endpoint/jobs_endpoint.pyserver/query.pyCI (
.github/workflows/run-tests.yml): remove'3.10'from the test matrix.Timing
Aim to file in a release published after 2026-10-04.
🤖 Generated with Claude Code