summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_typing.py
Commit message (Collapse)AuthorAgeFilesLines
* gh-92106: Add test that subscription works on arbitrary TypedDicts (GH-92176)Miss Islington (bot)2022-05-031-0/+13
| | | | | (cherry picked from commit 81fb3548be5a18bf40a6f4505a02cc7fb72c9c34) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-46333: Honor `module` parameter in ForwardRef (GH-30536)Miss Islington (bot)2022-02-171-0/+12
| | | | | | | | | | | | The `module` parameter carries semantic information about the forward ref. Forward refs are different if they refer to different module even if they have the same name. This affects the `__eq__`, `__repr__` and `__hash__` methods. Co-authored-by: Andreas Hangauer <andreas.hangauer@siemens.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> (cherry picked from commit 6e7b813195f9bd6a2a15c1f00ef2c0180f6c751a) Co-authored-by: aha79 <34090357+aha79@users.noreply.github.com>
* bpo-46685: cover `TypeError` of `ForwardRef(1)` in `test_typing` (GH-31223)Miss Islington (bot)2022-02-091-0/+4
| | | | | (cherry picked from commit d2d1d49eaccaa83eb8873ba15f2fc9562143bc56) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* [3.9] bpo-46482: add a test for `typing.Annotation.__new__` (GH-30821) ↵Miss Islington (bot)2022-02-011-0/+7
| | | | | | | | | | (GH-31045) (cherry picked from commit 4c0612ad00ba45dbea2a86f7db6d21546cf243f8) Co-authored-by: Nikita Sobolev <mail@sobolevn.me> Automerge-Triggered-By: GH:Fidget-Spinner
* bpo-46539: Pass status of special typeforms to forward references (GH-30926)Miss Islington (bot)2022-01-271-0/+14
| | | | | | | | | | | Previously this didn't matter because there weren't any valid code paths that could trigger a type check with a special form, but after the bug fix for `Annotated` wrapping special forms it's now possible to annotate something like `Annotated['ClassVar[int]', (3, 4)]`. This change would also be needed for proposed future changes, such as allowing `ClassVar` and `Final` to nest each other in dataclasses. (cherry picked from commit ced50051bb752a7c1e616f4b0c001f37f0354f32) Co-authored-by: Gregory Beauregard <greg@greg.red>
* bpo-46529: increase coverage of `typing.Union.__repr__` method (GH-30911)Miss Islington (bot)2022-01-261-0/+9
| | | | | (cherry picked from commit d0c690b5f85c679de6059cf353fe0524e905530e) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* bpo-46491: Allow Annotated on outside of Final/ClassVar (GH-30864)Miss Islington (bot)2022-01-251-0/+8
| | | | | | | | We treat Annotated type arg as class-level annotation. This exempts it from checks against Final and ClassVar in order to allow using them in any nesting order. Automerge-Triggered-By: GH:gvanrossum (cherry picked from commit e1abffca45b60729c460e3e2ad50c8c1946cfd4e) Co-authored-by: Gregory Beauregard <greg@greg.red>
* bpo-46437: remove useless `hasattr` from `test_typing` (GH-30704)Miss Islington (bot)2022-01-191-9/+7
| | | | | (cherry picked from commit 263c0dd16017613c5ea2fbfc270be4de2b41b5ad) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* [3.9] bpo-46424: [typing] cover `Annotation[arg]` invalid usage in tests ↵Miss Islington (bot)2022-01-191-0/+4
| | | | | | | | (GH-30663) (GH-30692) (cherry picked from commit 32398294fb3fcf4ee74da54722fd0221c4e6cb74) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* bpo-46345: Add a test case for implicit `Optional` class attribute (GH-30535)Miss Islington (bot)2022-01-131-0/+6
| | | | | (cherry picked from commit 1de60155d5d01be2924e72fb68dd13d4fd00acd7) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* [3.9] bpo-45679: Fix caching of multi-value typing.Literal (GH-29334) (GH-29342)Serhiy Storchaka2021-11-031-0/+2
| | | | | | Literal[True, 2] is no longer equal to Literal[1, 2].. (cherry picked from commit 634984d7dbdd91e0a51a793eed4d870e139ae1e0) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-45280: Add test for empty `NamedTuple` in `test_typing` (GH-28559) ↵Miss Islington (bot)2021-09-261-0/+13
| | | | | | | | (GH-28570) Co-authored-by: Dong-hee Na <donghee.na92@gmail.com> (cherry picked from commit f56268a2cd38b3fe2be1e4361d3d8b581e73559b) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* [3.9] bpo-45166: fixes `get_type_hints` failure on `Final` (GH-28279) (GH-28561)Łukasz Langa2021-09-251-1/+17
| | | | | | | Co-authored-by: Łukasz Langa <lukasz@langa.pl> Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>. (cherry picked from commit 784905dbeff68cf788bbeefe0a675af1af04affc) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* [3.9] bpo-45121: Fix RecursionError when calling Protocol.__init__ from a ↵Ken Jin2021-09-081-0/+11
| | | | | subclass' __init__ (GH-28206) (GH-28233) Co-authored-by: Yurii Karabas <1998uriyyo@gmail.com>
* bpo-44806: Fix __init__ in subclasses of protocols (GH-27545) (GH-27559)Miss Islington (bot)2021-08-021-0/+36
| | | | | | | Non-protocol subclasses of protocol ignore now the __init__ method inherited from protocol base classes. (cherry picked from commit 043cd60abed09edddc7185bcf7d039771acc734d) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.9] bpo-41249: Fix postponed annotations for TypedDict (GH-27017) (GH-27205)Ken Jin2021-07-171-0/+10
| | | | | | | | | This fixes TypedDict to work with get_type_hints and postponed evaluation of annotations across modules. This is done by adding the module name to ForwardRef at the time the object is created and using that to resolve the globals during the evaluation. Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Co-authored-by: Germán Méndez Bravo <german.mb@gmail.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl>
* [3.9] Revert "[3.9] bpo-38908: Fix issue when non runtime_protocol does not ↵Ken Jin2021-05-121-8/+0
| | | | | | | raise TypeError (GH-26067)" (GH-26077) Reverts python/cpython#26075 Automerge-Triggered-By: GH:gvanrossum
* [3.9] bpo-38908: Fix issue when non runtime_protocol does not raise ↵Ken Jin2021-05-121-0/+8
| | | | | | | | | TypeError (GH-26067) (GH-26075) (cherry picked from commit c40486a) Co-authored-by: Yurii Karabas 1998uriyyo@gmail.com Automerge-Triggered-By: GH:gvanrossum
* bpo-42740: Fix get_args for PEP 585 collections.abc.Callable (GH-23963)Miss Islington (bot)2020-12-281-0/+5
| | | | | | PR 1/2. Needs backport to 3.9. (cherry picked from commit 4140f10a16f06c32fd49f9e21fb2a53abe7357f0) Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
* bpo-42059: Fix required/optional keys for TypedDict(..., total=False) ↵Miss Islington (bot)2020-12-141-0/+4
| | | | | | | (GH-22736) (GH-23747) (cherry picked from commit 67b769f5157c9dad1c7dd6b24e067b9fdab5b35d) Co-authored-by: Alex Grönholm <alex.gronholm@nextday.fi>
* [3.9] bpo-42195: Ensure consistency of Callable's __args__ in ↵kj2020-12-141-8/+0
| | | | | collections.abc and typing (GH-23765) Backport of GH-23060.
* bpo-42345: Fix hash implementation of typing.Literal (GH-23383)Miss Islington (bot)2020-11-191-0/+5
| | | | | | | | | | Fix hash implementation of `typing.Literal`. Update docs regarding `typing.Litaral` caching. Base implementation was done in PR GH-23294. (cherry picked from commit 1b54077ff6f5c1379e097e9f8e8648da9826d6ec) Co-authored-by: Yurii Karabas <1998uriyyo@gmail.com>
* [3.9] bpo-42345: Fix three issues with typing.Literal parameters (GH-23294) ↵Yurii Karabas2020-11-171-0/+25
| | | | | | | | | | | | | (GH-23335) Literal equality no longer depends on the order of arguments. Fix issue related to `typing.Literal` caching by adding `typed` parameter to `typing._tp_cache` function. Add deduplication of `typing.Literal` arguments. (cherry picked from commit f03d318ca42578e45405717aedd4ac26ea52aaed) Co-authored-by: Yurii Karabas <1998uriyyo@gmail.com>
* bpo-42233: Correctly repr GenericAlias when used with typing module (GH-23081)Miss Islington (bot)2020-11-071-0/+7
| | | | | | | | | | | | | | | | | | Noticed by @serhiy-storchaka in the bpo. `typing`'s types were not showing the parameterized generic. Eg. previously: ```python >>> typing.Union[dict[str, float], list[int]] 'typing.Union[dict, list]' ``` Now: ```python >>> typing.Union[dict[str, float], list[int]] 'typing.Union[dict[str, float], list[int]]' ``` Automerge-Triggered-By: GH:gvanrossum (cherry picked from commit 1f7dfb277e5b88cddc13e5024766be787a3e9127) Co-authored-by: kj <28750310+Fidget-Spinner@users.noreply.github.com>
* bpo-41341: Recursive evaluation of ForwardRef in get_type_hints (GH-21553)Miss Islington (bot)2020-07-261-0/+6
| | | | | | | | The issue raised by recursive evaluation is infinite recursion with recursive types. In that case, only the first recursive ForwardRef is evaluated. (cherry picked from commit 653f420b53a3aa87316cef59de8d3f5d9e11deb4) Co-authored-by: wyfo <joperez@hotmail.fr>
* bpo-39168: Remove the __new__ method of typing.Generic (GH-21327)Miss Islington (bot)2020-07-051-2/+0
| | | | | | Automerge-Triggered-By: @gvanrossum (cherry picked from commit 7fed75597fac11f9a6c769e2b6c6548fe0e4049d) Co-authored-by: Zackery Spytz <zspytz@gmail.com>
* bpo-40397: Fix subscription of nested generic alias without parameters. ↵Serhiy Storchaka2020-05-101-1/+12
| | | | (GH-20021)
* bpo-40389: Improve repr of typing.Optional (#19714)Vlad Serebrennikov2020-04-301-1/+1
|
* bpo-40443: Remove unused imports in tests (GH-19805)Victor Stinner2020-04-291-1/+1
|
* bpo-40398: Fix typing.get_args() for special generic aliases. (GH-19720)Serhiy Storchaka2020-04-271-2/+7
|
* bpo-40396: Support GenericAlias in the typing functions. (GH-19718)Serhiy Storchaka2020-04-261-1/+41
|
* bpo-39942:Fix failure in `TypeVar` when missing `__name__` (GH-19616)HongWeipeng2020-04-201-0/+7
| | | https://bugs.python.org/issue39942
* bpo-40185: Refactor typing.NamedTuple (GH-19371)Serhiy Storchaka2020-04-081-17/+11
|
* bpo-39481: Implementation for PEP 585 (#18239)Guido van Rossum2020-04-071-9/+10
| | | | | | | | | | | | 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`.
* bpo-40182: Remove the _field_types attribute of the NamedTuple class (GH-19368)Serhiy Storchaka2020-04-041-4/+2
|
* bpo-36517: Raise error on multiple inheritance with NamedTuple (GH-19363)Serhiy Storchaka2020-04-041-0/+7
|
* bpo-40086: Update/fix test_etree test case in test_typing (GH-19189)Furkan Önder2020-03-281-4/+2
|
* bpo-39627: Fix TypedDict totality check for inherited keys (#18503)Vlad Emelianov2020-02-131-0/+32
| | | (Adapted from https://github.com/python/typing/pull/700)
* bpo-39491: Merge PEP 593 (typing.Annotated) support (#18260)Jakub Stasiak2020-02-051-0/+234
| | | | | | | | | | | | | | | | | | | | | | | | | * bpo-39491: Merge PEP 593 (typing.Annotated) support PEP 593 has been accepted some time ago. I got a green light for merging this from Till, so I went ahead and combined the code contributed to typing_extensions[1] and the documentation from the PEP 593 text[2]. My changes were limited to: * removing code designed for typing_extensions to run on older Python versions * removing some irrelevant parts of the PEP text when copying it over as documentation and otherwise changing few small bits to better serve the purpose * changing the get_type_hints signature to match reality (parameter names) I wasn't entirely sure how to go about crediting the authors but I used my best judgment, let me know if something needs changing in this regard. [1] https://github.com/python/typing/blob/8280de241fd8c8afe727c7860254b753e383b360/typing_extensions/src_py3/typing_extensions.py [2] https://github.com/python/peps/blob/17710b879882454d55f82c2d44596e8e9f8e4bff/pep-0593.rst
* Better runtime TypedDict (GH-17214)Zac Hatfield-Dodds2019-11-241-0/+7
| | | | | This patch enables downstream projects inspecting a TypedDict subclass at runtime to tell which keys are optional. This is essential for generating test data with Hypothesis or validating inputs with typeguard or pydantic.
* bpo-37838: get_type_hints for wrapped functions with forward reference ↵benedwards142019-11-211-0/+15
| | | | | | (GH-17126) https://bugs.python.org/issue37838
* bpo-38405: Make nested subclasses of typing.NamedTuple pickleable. (GH-16641)Serhiy Storchaka2019-10-081-7/+21
|
* bpo-38191: Turn warnings into errors in NamedTuple() and TypedDict(). (GH-16238)Serhiy Storchaka2019-09-171-19/+8
|
* bpo-38191: Accept arbitrary keyword names in NamedTuple() and TypedDict(). ↵Serhiy Storchaka2019-09-171-0/+60
| | | | | | | | (GH-16222) This includes such names as "cls", "self", "typename", "_typename", "fields" and "_fields". Passing positional arguments by keyword is deprecated.
* bpo-37953: Fix deprecation warnings in test_typing (GH-16133)Zackery Spytz2019-09-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | self.assertEquals() is deprecated. ``` ./python -We -m test test_typing Run tests sequentially 0:00:00 load avg: 0.23 [1/1] test_typing test test_typing failed -- Traceback (most recent call last): File "/home/lubuntu2/cpython/Lib/test/test_typing.py", line 2382, in test_forward_equality_gth self.assertEquals(Union[c1, c1_gth], Union[c1]) File "/home/lubuntu2/cpython/Lib/unittest/case.py", line 1390, in deprecated_func warnings.warn( DeprecationWarning: Please use assertEqual instead. test_typing failed == Tests result: FAILURE == 1 test failed: test_typing Total duration: 140 ms Tests result: FAILURE ``` https://bugs.python.org/issue37953
* bpo-37953: Fix ForwardRef hash and equality checks (GH-15400)plokmijnuhby2019-09-131-0/+116
| | | | | Ideally if we stick a ForwardRef in a dictionary we would like to reliably be able to get it out again. https://bugs.python.org/issue37953
* bpo-38008: Move builtin protocol whitelist to mapping instead of list (GH-15647)Divij Rajkumar2019-09-121-0/+8
| | | | Fixes https://bugs.python.org/issue38008
* bpo-28556: Add a regression test to typing (GH-15396)Ivan Levkivskyi2019-08-221-0/+17
| | | | | | This adds a regression test for the issue found in the Python 2 backport, see https://github.com/python/typing/issues/656 https://bugs.python.org/issue28556
* closes bpo-33758: Skip test_get_type_hints_modules_forwardref. (GH-13977)Benjamin Peterson2019-06-111-2/+2
| | | This test "works" if things are run in the right order, so it's better to use @skip than @expectedFailure here.
* bpo-29262: Add get_origin() and get_args() introspection helpers to typing ↵Ivan Levkivskyi2019-05-301-0/+37
| | | | | | | | | | (GH-13685) This is an old feature request that appears from time to time. After a year of experimenting with various introspection capabilities in `typing_inspect` on PyPI, I propose to add these two most commonly used functions: `get_origin()` and `get_args()`. These are essentially thin public wrappers around private APIs: `__origin__` and `__args__`. As discussed in the issue and on the typing tracker, exposing some public helpers instead of `__origin__` and `__args__` directly will give us more flexibility if we will decide to update the internal representation, while still maintaining backwards compatibility. The implementation is very simple an is essentially a copy from `typing_inspect` with one exception: `ClassVar` was special-cased in `typing_inspect`, but I think this special-casing doesn't really help and only makes things more complicated.