Skip to content

Commit 5b3587d

Browse files
Merge branch 'main' into enable-cattrs-313-tests
2 parents b24856d + 21be122 commit 5b3587d

File tree

8 files changed

+434
-660
lines changed

8 files changed

+434
-660
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ jobs:
3838
# For available versions, see:
3939
# https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json
4040
python-version:
41-
- "3.8"
4241
- "3.9"
4342
- "3.9.12"
4443
- "3.10"
@@ -49,7 +48,6 @@ jobs:
4948
- "3.12.0"
5049
- "3.13"
5150
- "3.13.0"
52-
- "pypy3.8"
5351
- "pypy3.9"
5452
- "pypy3.10"
5553

.github/workflows/third_party.yml

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ jobs:
108108
cd typing_inspect
109109
pytest
110110
111-
pyanalyze:
112-
name: pyanalyze tests
111+
pycroscope:
112+
name: pycroscope tests
113113
needs: skip-schedule-on-fork
114114
strategy:
115115
fail-fast: false
@@ -125,26 +125,25 @@ jobs:
125125
allow-prereleases: true
126126
- name: Install uv
127127
run: curl -LsSf https://astral.sh/uv/install.sh | sh
128-
- name: Check out pyanalyze
129-
run: git clone --depth=1 https://github.com/quora/pyanalyze.git || git clone --depth=1 https://github.com/quora/pyanalyze.git
128+
- name: Check out pycroscope
129+
run: git clone --depth=1 https://github.com/JelleZijlstra/pycroscope.git || git clone --depth=1 https://github.com/JelleZijlstra/pycroscope.git
130130
- name: Checkout typing_extensions
131131
uses: actions/checkout@v4
132132
with:
133133
path: typing-extensions-latest
134-
- name: Install pyanalyze test requirements
134+
- name: Install pycroscope test requirements
135135
run: |
136136
set -x
137-
cd pyanalyze
138-
uv pip install --system 'pyanalyze[tests] @ .' --exclude-newer $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)
137+
cd pycroscope
138+
uv pip install --system 'pycroscope[tests] @ .' --exclude-newer $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)
139139
- name: Install typing_extensions latest
140140
run: uv pip install --system "typing-extensions @ ./typing-extensions-latest"
141141
- name: List all installed dependencies
142142
run: uv pip freeze
143-
# TODO: re-enable
144-
# - name: Run pyanalyze tests
145-
# run: |
146-
# cd pyanalyze
147-
# pytest pyanalyze/
143+
- name: Run pycroscope tests
144+
run: |
145+
cd pycroscope
146+
pytest pycroscope/
148147
149148
typeguard:
150149
name: typeguard tests
@@ -342,14 +341,41 @@ jobs:
342341
--force-dep "typing-extensions @ file://$(pwd)/../typing-extensions-latest" \
343342
-- -q --nomemory --notimingintensive
344343
344+
345+
litestar:
346+
name: litestar tests
347+
needs: skip-schedule-on-fork
348+
runs-on: ubuntu-latest
349+
timeout-minutes: 10
350+
strategy:
351+
fail-fast: false
352+
matrix:
353+
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
354+
steps:
355+
- name: Setup Python
356+
uses: actions/setup-python@v5
357+
with:
358+
python-version: ${{ matrix.python-version }}
359+
- name: Checkout litestar
360+
run: git clone --depth=1 https://github.com/litestar-org/litestar.git || git clone --depth=1 https://github.com/litestar-org/litestar.git
361+
- name: Checkout typing_extensions
362+
uses: actions/checkout@v4
363+
with:
364+
path: typing-extensions-latest
365+
- name: Install uv
366+
run: curl -LsSf https://astral.sh/uv/install.sh | sh
367+
- name: Run litestar tests
368+
run: uv run --with=../typing-extensions-latest -- python -m pytest tests/unit/test_typing.py tests/unit/test_dto
369+
working-directory: litestar
370+
345371
create-issue-on-failure:
346372
name: Create an issue if daily tests failed
347373
runs-on: ubuntu-latest
348374

349375
needs:
350376
- pydantic
351377
- typing_inspect
352-
- pyanalyze
378+
- pycroscope
353379
- typeguard
354380
- typed-argument-parser
355381
- mypy
@@ -364,7 +390,7 @@ jobs:
364390
&& (
365391
needs.pydantic.result == 'failure'
366392
|| needs.typing_inspect.result == 'failure'
367-
|| needs.pyanalyze.result == 'failure'
393+
|| needs.pycroscope.result == 'failure'
368394
|| needs.typeguard.result == 'failure'
369395
|| needs.typed-argument-parser.result == 'failure'
370396
|| needs.mypy.result == 'failure'

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,28 @@
11
# Unreleased
22

3+
- Drop support for Python 3.8 (including PyPy-3.8). Patch by [Victorien Plot](https://github.com/Viicos).
4+
5+
New features:
6+
7+
- Add support for inline typed dictionaries ([PEP 764](https://peps.python.org/pep-0764/)).
8+
Patch by [Victorien Plot](https://github.com/Viicos).
9+
- Add `typing_extensions.Reader` and `typing_extensions.Writer`. Patch by
10+
Sebastian Rittau.
11+
12+
# Release 4.13.2 (April 10, 2025)
13+
314
- Fix `TypeError` when taking the union of `typing_extensions.TypeAliasType` and a
415
`typing.TypeAliasType` on Python 3.12 and 3.13.
516
Patch by [Joren Hammudoglu](https://github.com/jorenham).
17+
- Backport from CPython PR [#132160](https://github.com/python/cpython/pull/132160)
18+
to avoid having user arguments shadowed in generated `__new__` by
19+
`@typing_extensions.deprecated`.
20+
Patch by [Victorien Plot](https://github.com/Viicos).
621

722
# Release 4.13.1 (April 3, 2025)
823

924
Bugfixes:
25+
1026
- Fix regression in 4.13.0 on Python 3.10.2 causing a `TypeError` when using `Concatenate`.
1127
Patch by [Daraan](https://github.com/Daraan).
1228
- Fix `TypeError` when using `evaluate_forward_ref` on Python 3.10.1-2 and 3.9.8-10.

doc/conf.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
templates_path = ['_templates']
2828
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
2929

30-
intersphinx_mapping = {'py': ('https://docs.python.org/3', None)}
30+
# This should usually point to /3, unless there is a necessity to link to
31+
# features in future versions of Python.
32+
intersphinx_mapping = {'py': ('https://docs.python.org/3.14', None)}
3133

3234
add_module_names = False
3335

doc/index.rst

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ Example usage::
139139
Python version support
140140
----------------------
141141

142-
``typing_extensions`` currently supports Python versions 3.8 and higher. In the future,
142+
``typing_extensions`` currently supports Python versions 3.9 and higher. In the future,
143143
support for older Python versions will be dropped some time after that version
144144
reaches end of life.
145145

@@ -659,6 +659,18 @@ Protocols
659659

660660
.. versionadded:: 4.6.0
661661

662+
.. class:: Reader
663+
664+
See :py:class:`io.Reader`. Added to the standard library in Python 3.14.
665+
666+
.. versionadded:: 4.14.0
667+
668+
.. class:: Writer
669+
670+
See :py:class:`io.Writer`. Added to the standard library in Python 3.14.
671+
672+
.. versionadded:: 4.14.0
673+
662674
Decorators
663675
~~~~~~~~~~
664676

pyproject.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ build-backend = "flit_core.buildapi"
66
# Project metadata
77
[project]
88
name = "typing_extensions"
9-
version = "4.13.1"
10-
description = "Backported and Experimental Type Hints for Python 3.8+"
9+
version = "4.13.2"
10+
description = "Backported and Experimental Type Hints for Python 3.9+"
1111
readme = "README.md"
12-
requires-python = ">=3.8"
12+
requires-python = ">=3.9"
1313
license = "PSF-2.0"
1414
license-files = ["LICENSE"]
1515
keywords = [
@@ -34,7 +34,6 @@ classifiers = [
3434
"Operating System :: OS Independent",
3535
"Programming Language :: Python :: 3",
3636
"Programming Language :: Python :: 3 :: Only",
37-
"Programming Language :: Python :: 3.8",
3837
"Programming Language :: Python :: 3.9",
3938
"Programming Language :: Python :: 3.10",
4039
"Programming Language :: Python :: 3.11",
@@ -63,7 +62,7 @@ exclude = []
6362

6463
[tool.ruff]
6564
line-length = 90
66-
target-version = "py38"
65+
target-version = "py39"
6766

6867
[tool.ruff.lint]
6968
select = [

0 commit comments

Comments
 (0)