diff options
author | Guido van Rossum <guido@python.org> | 2020-04-07 16:50:06 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-07 16:50:06 (GMT) |
commit | 48b069a003ba6c684a9ba78493fbbec5e89f10b8 (patch) | |
tree | e67e71abd17516cea5fe1a1ec487bf929ab0b9fd /Lib/subprocess.py | |
parent | 9cc3ebd7e04cb645ac7b2f372eaafa7464e16b9c (diff) | |
download | cpython-48b069a003ba6c684a9ba78493fbbec5e89f10b8.zip cpython-48b069a003ba6c684a9ba78493fbbec5e89f10b8.tar.gz cpython-48b069a003ba6c684a9ba78493fbbec5e89f10b8.tar.bz2 |
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`.
Diffstat (limited to 'Lib/subprocess.py')
-rw-r--r-- | Lib/subprocess.py | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 1eeccea..86fdf27 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -52,6 +52,7 @@ import threading import warnings import contextlib from time import monotonic as _time +import types try: import pwd @@ -446,17 +447,7 @@ class CompletedProcess(object): args.append('stderr={!r}'.format(self.stderr)) return "{}({})".format(type(self).__name__, ', '.join(args)) - def __class_getitem__(cls, type): - """Provide minimal support for using this class as generic - (for example in type annotations). - - See PEP 484 and PEP 560 for more details. For example, - `CompletedProcess[bytes]` is a valid expression at runtime - (type argument `bytes` indicates the type used for stdout). - Note, no type checking happens at runtime, but a static type - checker can be used. - """ - return cls + __class_getitem__ = classmethod(types.GenericAlias) def check_returncode(self): @@ -1000,16 +991,7 @@ class Popen(object): obj_repr = obj_repr[:76] + "...>" return obj_repr - def __class_getitem__(cls, type): - """Provide minimal support for using this class as generic - (for example in type annotations). - - See PEP 484 and PEP 560 for more details. For example, `Popen[bytes]` - is a valid expression at runtime (type argument `bytes` indicates the - type used for stdout). Note, no type checking happens at runtime, but - a static type checker can be used. - """ - return cls + __class_getitem__ = classmethod(types.GenericAlias) @property def universal_newlines(self): |