3535 github.repository == 'python/typing_extensions'
3636 || github.event_name != 'schedule'
3737 steps :
38- - run : true
38+ - run : " true"
3939
4040 pydantic :
4141 name : pydantic tests
9898 run : |
9999 set -x
100100 cd typing_inspect
101- uv pip install --system -r test-requirements.txt --exclude-newer $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)
101+ uv pip install --system -r test-requirements.txt --exclude-newer " $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)"
102102 - name : Install typing_extensions latest
103103 run : uv pip install --system "typing-extensions @ ./typing-extensions-latest"
104104 - name : List all installed dependencies
@@ -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,25 +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- - name : Run pyanalyze tests
143+ - name : Run pycroscope tests
144144 run : |
145- cd pyanalyze
146- pytest pyanalyze /
145+ cd pycroscope
146+ pytest pycroscope /
147147
148148 typeguard :
149149 name : typeguard tests
@@ -172,7 +172,7 @@ jobs:
172172 run : |
173173 set -x
174174 cd typeguard
175- uv pip install --system "typeguard[test] @ ." --exclude-newer $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)
175+ uv pip install --system "typeguard @ ." --group test --exclude-newer " $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)"
176176 - name : Install typing_extensions latest
177177 run : uv pip install --system "typing-extensions @ ./typing-extensions-latest"
178178 - name : List all installed dependencies
@@ -215,8 +215,8 @@ jobs:
215215 run : |
216216 set -x
217217 cd typed-argument-parser
218- uv pip install --system "typed-argument-parser @ ." --exclude-newer $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)
219- uv pip install --system pytest --exclude-newer $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)
218+ uv pip install --system "typed-argument-parser @ ." --exclude-newer " $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)"
219+ uv pip install --system pytest --exclude-newer " $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)"
220220 - name : Install typing_extensions latest
221221 run : uv pip install --system "typing-extensions @ ./typing-extensions-latest"
222222 - name : List all installed dependencies
@@ -253,7 +253,7 @@ jobs:
253253 run : |
254254 set -x
255255 cd mypy
256- uv pip install --system -r test-requirements.txt --exclude-newer $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)
256+ uv pip install --system -r test-requirements.txt --exclude-newer " $(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)"
257257 uv pip install --system -e .
258258 - name : Install typing_extensions latest
259259 run : uv pip install --system "typing-extensions @ ./typing-extensions-latest"
@@ -270,8 +270,7 @@ jobs:
270270 strategy :
271271 fail-fast : false
272272 matrix :
273- # skip 3.13 because msgspec doesn't support 3.13 yet
274- python-version : ["3.9", "3.10", "3.11", "3.12"]
273+ python-version : ["3.9", "3.10", "3.11", "3.12", "3.13"]
275274 runs-on : ubuntu-latest
276275 timeout-minutes : 60
277276 steps :
@@ -299,18 +298,89 @@ jobs:
299298 - name : Run cattrs tests
300299 run : cd cattrs; pdm run pytest tests
301300
301+ sqlalchemy :
302+ name : sqlalchemy tests
303+ needs : skip-schedule-on-fork
304+ strategy :
305+ fail-fast : false
306+ matrix :
307+ # PyPy is deliberately omitted here, since SQLAlchemy's tests
308+ # fail on PyPy for reasons unrelated to typing_extensions.
309+ python-version : [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
310+ checkout-ref : [ "main", "rel_2_0" ]
311+ # sqlalchemy tests fail when using the Ubuntu 24.04 runner
312+ # https://github.com/sqlalchemy/sqlalchemy/commit/8d73205f352e68c6603e90494494ef21027ec68f
313+ runs-on : ubuntu-22.04
314+ timeout-minutes : 60
315+ steps :
316+ - name : Setup Python
317+ uses : actions/setup-python@v5
318+ with :
319+ python-version : ${{ matrix.python-version }}
320+ allow-prereleases : true
321+ - name : Install uv
322+ run : curl -LsSf https://astral.sh/uv/install.sh | sh
323+ - name : Checkout sqlalchemy
324+ run : git clone -b ${{ matrix.checkout-ref }} --depth=1 https://github.com/sqlalchemy/sqlalchemy.git || git clone -b ${{ matrix.checkout-ref }} --depth=1 https://github.com/sqlalchemy/sqlalchemy.git
325+ - name : Checkout typing_extensions
326+ uses : actions/checkout@v4
327+ with :
328+ path : typing-extensions-latest
329+ - name : Install sqlalchemy test dependencies
330+ run : uv pip install --system tox setuptools
331+ - name : List installed dependencies
332+ # Note: tox installs SQLAlchemy and its dependencies in a different isolated
333+ # environment before running the tests. To see the dependencies installed
334+ # in the test environment, look for the line 'freeze> python -m pip freeze --all'
335+ # in the output of the test step below.
336+ run : uv pip list
337+ - name : Run sqlalchemy tests
338+ run : |
339+ cd sqlalchemy
340+ tox -e github-nocext \
341+ --force-dep "typing-extensions @ file://$(pwd)/../typing-extensions-latest" \
342+ -- -q --nomemory --notimingintensive
343+
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+
302371 create-issue-on-failure :
303372 name : Create an issue if daily tests failed
304373 runs-on : ubuntu-latest
305374
306375 needs :
307376 - pydantic
308377 - typing_inspect
309- - pyanalyze
378+ - pycroscope
310379 - typeguard
311380 - typed-argument-parser
312381 - mypy
313382 - cattrs
383+ - sqlalchemy
314384
315385 if : >-
316386 ${{
@@ -320,11 +390,12 @@ jobs:
320390 && (
321391 needs.pydantic.result == 'failure'
322392 || needs.typing_inspect.result == 'failure'
323- || needs.pyanalyze .result == 'failure'
393+ || needs.pycroscope .result == 'failure'
324394 || needs.typeguard.result == 'failure'
325395 || needs.typed-argument-parser.result == 'failure'
326396 || needs.mypy.result == 'failure'
327397 || needs.cattrs.result == 'failure'
398+ || needs.sqlalchemy.result == 'failure'
328399 )
329400 }}
330401
0 commit comments