]> granicus.if.org Git - python/commit
bpo-29262: Add get_origin() and get_args() introspection helpers to typing (GH-13685)
authorIvan Levkivskyi <levkivskyi@gmail.com>
Thu, 30 May 2019 23:10:07 +0000 (00:10 +0100)
committerGitHub <noreply@github.com>
Thu, 30 May 2019 23:10:07 +0000 (00:10 +0100)
commit4c23aff065fb28aba789a211937a2af974842110
treef6f2757eb59d315e2835f7dcf8b2f1b7f18506ea
parent2a58b0636d1f620f8a85a2e4c030cc10551936a5
bpo-29262: Add get_origin() and get_args() introspection helpers to typing (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.
Doc/library/typing.rst
Lib/test/test_typing.py
Lib/typing.py
Misc/NEWS.d/next/Library/2019-05-30-21-25-14.bpo-29262.LdIzun.rst [new file with mode: 0644]