summaryrefslogtreecommitdiffstats
path: root/Lib/typing.py
Commit message (Collapse)AuthorAgeFilesLines
* gh-105974: Revert unintentional behaviour change for protocols with ↵Alex Waygood2023-06-231-32/+33
| | | | non-callable members and custom `__subclasshook__` methods (#105976)
* gh-105570: Deprecate unusual ways of creating empty TypedDicts (#105780)Alex Waygood2023-06-141-2/+17
| | | Deprecate two methods of creating typing.TypedDict classes with 0 fields using the functional syntax: `TD = TypedDict("TD")` and `TD = TypedDict("TD", None)`. Both will be disallowed in Python 3.15. To create a TypedDict class with 0 fields, either use `class TD(TypedDict): pass` or `TD = TypedDict("TD", {})`.
* gh-105566: Deprecate unusual ways of creating `typing.NamedTuple` classes ↵Alex Waygood2023-06-141-3/+45
| | | | | | | (#105609) Deprecate creating a typing.NamedTuple class using keyword arguments to denote the fields (`NT = NamedTuple("NT", x=int, y=str)`). This will be disallowed in Python 3.15. Use the class-based syntax or the functional syntax instead. Two methods of creating `NamedTuple` classes with 0 fields using the functional syntax are also deprecated, and will be disallowed in Python 3.15: `NT = NamedTuple("NT")` and `NT = NamedTuple("NT", None)`. To create a `NamedTuple` class with 0 fields, either use `class NT(NamedTuple): pass` or `NT = NamedTuple("NT", [])`.
* gh-104873: Add typing.get_protocol_members and typing.is_protocol (#104878)Jelle Zijlstra2023-06-141-0/+42
| | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Miscellaneous improvements to the typing docs (#105529)Alex Waygood2023-06-091-6/+6
| | | Mostly, these are changes so that we use shorter sentences and shorter paragraphs. In particular, I've tried to make the first sentence introducing each object in the typing API short and declarative.
* Further improve docs for `typing.Annotated` (#105498)Alex Waygood2023-06-081-6/+8
|
* typing: Improve documentation of generic classes and aliases (#105369)Alex Waygood2023-06-071-3/+5
|
* gh-105430: Remove `typing._Immutable` unused internal helper (#105434)Nikita Sobolev2023-06-071-11/+0
|
* gh-105286: Further improvements to `typing.py` docstrings (#105363)Alex Waygood2023-06-071-25/+43
|
* gh-105286: Improve `typing.py` docstrings (#105287)Alex Waygood2023-06-051-217/+253
| | | | Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com> Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* gh-105280: Ensure `isinstance([], collections.abc.Mapping)` always evaluates ↵Alex Waygood2023-06-051-8/+20
| | | | to `False` (#105281)
* gh-105237: Allow calling `issubclass(X, typing.Protocol)` again (#105239)Alex Waygood2023-06-051-0/+4
|
* gh-105144: Runtime-checkable protocols: move all 'sanity checks' to ↵Alex Waygood2023-05-311-19/+15
| | | | `_ProtocolMeta.__subclasscheck__` (#105152)
* gh-104943: Remove mentions of old Python versions (#104945)Tomas R2023-05-261-4/+1
|
* gh-104786: Remove kwargs-based TypedDict creation (#104891)Tomas R2023-05-251-17/+2
| | | | | Deprecated since Python 3.11. Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-104935: typing: Fix interactions between `@runtime_checkable` and ↵Jelle Zijlstra2023-05-251-3/+3
| | | | | | | `Generic` (#104939) --------- Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-104797: Allow Protocols to inherit from collections.abc.Buffer (#104827)Jelle Zijlstra2023-05-241-1/+1
|
* gh-92871: Remove typing.{io,re} namespaces (#92873)Sebastian Rittau2023-05-231-42/+1
| | | | | | Closes #92871 Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
* Improve readability of `typing._ProtocolMeta.__instancecheck__` (#104649)Alex Waygood2023-05-191-13/+14
|
* gh-74690: Don't set special protocol attributes on non-protocol subclasses ↵Alex Waygood2023-05-181-6/+7
| | | | | of protocols (#104622) Don't set special protocol attributes on non-protocol subclasses of protocols
* gh-104555: Runtime-checkable protocols: Don't let previous calls to ↵Alex Waygood2023-05-171-7/+13
| | | | | `isinstance()` influence whether `issubclass()` raises an exception (#104559) Co-authored-by: Carl Meyer <carl@oddbird.net>
* typing: Use PEP 695 syntax in typing.py (#104553)Jelle Zijlstra2023-05-171-11/+17
| | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-104555: Fix isinstance() and issubclass() for runtime-checkable protocols ↵Alex Waygood2023-05-161-1/+1
| | | | | that use PEP 695 (#104556) Fixes #104555
* gh-103763: Implement PEP 695 (#103764)Jelle Zijlstra2023-05-161-421/+170
| | | | | | | | | | | | | | This implements PEP 695, Type Parameter Syntax. It adds support for: - Generic functions (def func[T](): ...) - Generic classes (class X[T](): ...) - Type aliases (type X = ...) - New scoping when the new syntax is used within a class body - Compiler and interpreter changes to support the new syntax and scoping rules Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Co-authored-by: Eric Traut <eric@traut.com> Co-authored-by: Larry Hastings <larry@hastings.org> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-91896: Revert some very noisy DeprecationWarnings for `ByteString` (#104424)Alex Waygood2023-05-131-24/+3
|
* gh-104415: Fix refleak tests for `typing.ByteString` deprecation (#104416)Nikita Sobolev2023-05-121-0/+9
|
* gh-91896: Improve visibility of `ByteString` deprecation warnings (#104294)Alex Waygood2023-05-121-1/+31
|
* gh-104392: Remove _paramspec_tvars from typing (#104393)Jelle Zijlstra2023-05-111-13/+6
| | | | This does nothing.
* gh-104328: Fix typo in ``typing.Generic`` multiple inheritance error message ↵Kirill Podoprigora2023-05-091-1/+1
| | | | (#104335)
* Improve assert_type phrasing (#104081)Shantanu2023-05-021-3/+4
| | | | | | | | | I'd like to make the fact that this does nothing at runtime really obvious, since I suspect this is unintuitive for users who are unfamiliar with static type checking. I thought of this because of https://discuss.python.org/t/add-arg-check-type-to-types/26384 wherein I'm skeptical that the user really did want `assert_type`.
* GH-103629: Update Unpack's repr in compliance with PEP 692 (#104048)Franek Magiera2023-05-011-1/+12
|
* GH-103699: Add `__orig_bases__` to various typing classes (#103698)Adrian Garcia Badaracco2023-04-231-2/+9
| | | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
* gh-97797: Mention `__metadata__` in docstrings of `typing.{_AnnotatedAlias, ↵Nikita Sobolev2023-04-101-0/+6
| | | | | | Annotated}` (#103405) Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Kirill <80244920+Eclips4@users.noreply.github.com>
* gh-74690: Further optimise `typing._ProtocolMeta.__instancecheck__` (#103280)Alex Waygood2023-04-051-1/+1
|
* gh-74690: typing: Call `_get_protocol_attrs` and `_callable_members_only` at ↵Alex Waygood2023-04-051-11/+14
| | | | protocol class creation time, not during `isinstance()` checks (#103160)
* gh-74690: typing: Simplify and optimise `_ProtocolMeta.__instancecheck__` ↵Alex Waygood2023-04-051-11/+3
| | | | (#103159)
* gh-102433: Use `inspect.getattr_static` in ↵Alex Waygood2023-04-021-5/+21
| | | | `typing._ProtocolMeta.__instancecheck__` (#103034)
* gh-74690: Micro-optimise `typing._get_protocol_attrs` (#103152)Alex Waygood2023-03-311-8/+12
| | | Improve performance of `isinstance()` checks against runtime-checkable protocols
* gh-74690: typing: Don't unnecessarily call `_get_protocol_attrs` twice in ↵Alex Waygood2023-03-311-10/+21
| | | | | `_ProtocolMeta.__instancecheck__` (#103141) Speed up `isinstance()` calls against runtime-checkable protocols
* gh-88965: typing: fix type substitution of a list of types after initial ↵Nikita Sobolev2023-03-231-7/+26
| | | | | | | | | | | | | | | | | | | `ParamSpec` substitution (#102808) Previously, this used to fail: ```py from typing import * T = TypeVar("T") P = ParamSpec("P") class X(Generic[P]): f: Callable[P, int] Y = X[[int, T]] Z = Y[str] ``` Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Add comments to `{typing,_collections_abc}._type_repr` about each other ↵Nikita Sobolev2023-03-161-0/+3
| | | | | (#102752) Remove `if` condition in `_collections_abc._type_repr` that's no longer needed, bringing it in sync with `typing._type_repr`.
* gh-102615: Use `list` instead of `tuple` in `repr` of paramspec (#102637)Nikita Sobolev2023-03-151-3/+4
| | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-101561: Add typing.override decorator (#101564)Steven Troxler2023-02-271-0/+41
| | | | Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-101015: Fix `typing.get_type_hints` with unpacked `*tuple` (PEP 646) ↵Nikita Sobolev2023-01-231-1/+4
| | | | (#101031)
* gh-86682: Adds sys._getframemodulename as an alternative to using _getframe ↵Steve Dower2023-01-131-2/+6
| | | | | (GH-99520) Also updates calls in collections, doctest, enum, and typing modules to use _getframemodulename first when available.
* Correct typo in typing.py (#100423)david-why2022-12-221-1/+1
| | | | In the docstring of `ParamSpec`, the name of `P = ParamSpec('P')` was mistakenly written as `'T'`.
* gh-99957: Add `frozen_default` parameter on `dataclass_transform` (#99958)Erik De Bonte2022-12-061-0/+4
|
* gh-98253: Break potential reference cycles in external code worsened by ↵Wenzel Jakob2022-11-301-3/+11
| | | | typing.py lru_cache (#98591)
* gh-99344, gh-99379, gh-99382: Fix issues in substitution of ParamSpec and ↵Serhiy Storchaka2022-11-291-41/+30
| | | | | | | | | | | TypeVarTuple (GH-99412) * Fix substitution of TypeVarTuple and ParamSpec together in user generics. * Fix substitution of ParamSpec followed by TypeVarTuple in generic aliases. * Check the number of arguments in substitution in user generics containing a TypeVarTuple and one or more TypeVar.
* gh-98852: Fix subscription of type aliases (GH-98920)Serhiy Storchaka2022-11-011-0/+4
| | | | | Fix subscription of type aliases containing bare generic types or types like TypeVar: for example tuple[A, T][int] and tuple[TypeVar, T][int], where A is a generic type, and T is a type variable.