mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-39481: Implementation for PEP 585 (#18239)
This implements things like `list[int]`, which returns an object of type `types.GenericAlias`. This object mostly acts as a proxy for `list`, but has attributes `__origin__` and `__args__` that allow recovering the parts (with values `list` and `(int,)`. There is also an approximate notion of type variables; e.g. `list[T]` has a `__parameters__` attribute equal to `(T,)`. Type variables are objects of type `typing.TypeVar`.
This commit is contained in:
parent
9cc3ebd7e0
commit
48b069a003
30 changed files with 830 additions and 53 deletions
|
@ -25,6 +25,7 @@ import sysconfig
|
|||
import tempfile
|
||||
import threading
|
||||
import time
|
||||
import types
|
||||
import unittest
|
||||
import uuid
|
||||
import warnings
|
||||
|
@ -4191,7 +4192,7 @@ class TestPEP519(unittest.TestCase):
|
|||
self.assertTrue(issubclass(FakePath, os.PathLike))
|
||||
|
||||
def test_pathlike_class_getitem(self):
|
||||
self.assertIs(os.PathLike[bytes], os.PathLike)
|
||||
self.assertIsInstance(os.PathLike[bytes], types.GenericAlias)
|
||||
|
||||
|
||||
class TimesTests(unittest.TestCase):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue