Typing PEPs
Introduction
This is the index of all Python Enhancement Proposals (PEPs) labelled under the ‘Typing’ topic. This is a sub-index of PEP 0, the PEP index.
Many recent PEPs propose changes to Python’s static type system or otherwise relate to type annotations. They are listed here for reference.
Index by Category
Other Informational PEPs
PEP | Title | Authors | |
---|---|---|---|
IF | 482 | Literature Overview for Type Hints | Łukasz Langa |
IF | 483 | The Theory of Type Hints | Guido van Rossum, Ivan Levkivskyi |
Accepted PEPs (accepted; may not be implemented yet)
Open PEPs (under consideration)
PEP | Title | Authors | ||
---|---|---|---|---|
S | 696 | Type defaults for TypeVarLikes | James Hilton-Balfe | 3.12 |
S | 702 | Marking deprecations using the type system | Jelle Zijlstra | 3.13 |
S | 705 | TypedMapping: Type Hints for Mappings with a Fixed Set of Keys | Alice Purcell | 3.12 |
S | 718 | Subscriptable functions | James Hilton-Balfe | 3.13 |
S | 724 | Stricter Type Guards | Rich Chiodo, Eric Traut, Erik De Bonte | 3.13 |
S | 727 | Documentation Metadata in Typing | Sebastián Ramírez | 3.13 |
Finished PEPs (done, with a stable interface)
PEP | Title | Authors | ||
---|---|---|---|---|
SF | 484 | Type Hints | Guido van Rossum, Jukka Lehtosalo, Łukasz Langa | 3.5 |
SF | 526 | Syntax for Variable Annotations | Ryan Gonzalez, Philip House, Ivan Levkivskyi, Lisa Roach, Guido van Rossum | 3.6 |
SF | 561 | Distributing and Packaging Type Information | Ethan Smith | 3.7 |
SF | 585 | Type Hinting Generics In Standard Collections | Łukasz Langa | 3.9 |
Abandoned, Withdrawn, and Rejected PEPs
PEP | Title | Authors | ||
---|---|---|---|---|
SR | 677 | Callable Type Syntax | Steven Troxler, Pradeep Kumar Srinivasan | 3.11 |
Numerical Index
PEP | Title | Authors | ||
---|---|---|---|---|
IF | 482 | Literature Overview for Type Hints | Łukasz Langa | |
IF | 483 | The Theory of Type Hints | Guido van Rossum, Ivan Levkivskyi | |
SF | 484 | Type Hints | Guido van Rossum, Jukka Lehtosalo, Łukasz Langa | 3.5 |
SF | 526 | Syntax for Variable Annotations | Ryan Gonzalez, Philip House, Ivan Levkivskyi, Lisa Roach, Guido van Rossum | 3.6 |
SA | 544 | Protocols: Structural subtyping (static duck typing) | Ivan Levkivskyi, Jukka Lehtosalo, Łukasz Langa | 3.8 |
SF | 561 | Distributing and Packaging Type Information | Ethan Smith | 3.7 |
SA | 563 | Postponed Evaluation of Annotations | Łukasz Langa | 3.7 |
SF | 585 | Type Hinting Generics In Standard Collections | Łukasz Langa | 3.9 |
SA | 586 | Literal Types | Michael Lee, Ivan Levkivskyi, Jukka Lehtosalo | 3.8 |
SA | 589 | TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys | Jukka Lehtosalo | 3.8 |
SA | 591 | Adding a final qualifier to typing | Michael J. Sullivan, Ivan Levkivskyi | 3.8 |
SA | 593 | Flexible function and variable annotations | Till Varoquaux, Konstantin Kashin | 3.9 |
SA | 604 | Allow writing union types as X | Y | Philippe PRADOS, Maggie Moss | 3.10 |
SA | 612 | Parameter Specification Variables | Mark Mendoza | 3.10 |
SA | 613 | Explicit Type Aliases | Shannon Zhu | 3.10 |
SA | 646 | Variadic Generics | Mark Mendoza, Matthew Rahtz, Pradeep Kumar Srinivasan, Vincent Siles | 3.11 |
SA | 647 | User-Defined Type Guards | Eric Traut | 3.10 |
SA | 649 | Deferred Evaluation Of Annotations Using Descriptors | Larry Hastings | 3.13 |
SA | 655 | Marking individual TypedDict items as required or potentially-missing | David Foster | 3.11 |
SA | 673 | Self Type | Pradeep Kumar Srinivasan, James Hilton-Balfe | 3.11 |
SA | 675 | Arbitrary Literal String Type | Pradeep Kumar Srinivasan, Graham Bleaney | 3.11 |
SR | 677 | Callable Type Syntax | Steven Troxler, Pradeep Kumar Srinivasan | 3.11 |
SA | 681 | Data Class Transforms | Erik De Bonte, Eric Traut | 3.11 |
SA | 688 | Making the buffer protocol accessible in Python | Jelle Zijlstra | 3.12 |
SA | 692 | Using TypedDict for more precise **kwargs typing | Franek Magiera | 3.12 |
SA | 695 | Type Parameter Syntax | Eric Traut | 3.12 |
S | 696 | Type defaults for TypeVarLikes | James Hilton-Balfe | 3.12 |
SA | 698 | Override Decorator for Static Typing | Steven Troxler, Joshua Xu, Shannon Zhu | 3.12 |
S | 702 | Marking deprecations using the type system | Jelle Zijlstra | 3.13 |
S | 705 | TypedMapping: Type Hints for Mappings with a Fixed Set of Keys | Alice Purcell | 3.12 |
S | 718 | Subscriptable functions | James Hilton-Balfe | 3.13 |
S | 724 | Stricter Type Guards | Rich Chiodo, Eric Traut, Erik De Bonte | 3.13 |
S | 727 | Documentation Metadata in Typing | Sebastián Ramírez | 3.13 |
PEP Types Key
- I — Informational: Non-normative PEP containing background, guidelines or other information relevant to the Python ecosystem
- P — Process: Normative PEP describing or proposing a change to a Python community process, workflow or governance
- S — Standards Track: Normative PEP with a new feature for Python, implementation change for CPython or interoperability standard for the ecosystem
PEP Status Key
- A — Accepted: Normative proposal accepted for implementation
- A — Active: Currently valid informational guidance, or an in-use process
- D — Deferred: Inactive draft that may be taken up again at a later time
- <No letter> — Draft: Proposal under active discussion and revision
- F — Final: Accepted and implementation complete, or no longer active
- P — Provisional: Provisionally accepted but additional feedback needed
- R — Rejected: Formally declined and will not be accepted
- S — Superseded: Replaced by another succeeding PEP
- W — Withdrawn: Removed from consideration by sponsor or authors