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
Process and Meta-PEPs
PEP | Title | Authors | |
---|---|---|---|
PA | 729 | Typing governance process | Jelle Zijlstra, Shantanu Jain |
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)
PEP | Title | Authors | ||
---|---|---|---|---|
SA | 563 | Postponed Evaluation of Annotations | Łukasz Langa | 3.7 |
SA | 649 | Deferred Evaluation Of Annotations Using Descriptors | Larry Hastings | 3.14 |
Open PEPs (under consideration)
PEP | Title | Authors | ||
---|---|---|---|---|
S | 718 | Subscriptable functions | James Hilton-Balfe | 3.13 |
S | 727 | Documentation in Annotated Metadata | Sebastián Ramírez | 3.13 |
S | 728 | TypedDict with Typed Extra Items | Zixuan James Li | 3.14 |
S | 746 | Type checking Annotated metadata | Adrian Garcia Badaracco | 3.14 |
S | 747 | Annotating Type Forms | David Foster, Eric Traut | 3.14 |
S | 749 | Implementing PEP 649 | Jelle Zijlstra | 3.14 |
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 | 544 | Protocols: Structural subtyping (static duck typing) | Ivan Levkivskyi, Jukka Lehtosalo, Łukasz Langa | 3.8 |
SF | 560 | Core support for typing module and generic types | Ivan Levkivskyi | 3.7 |
SF | 561 | Distributing and Packaging Type Information | Ethan Smith | 3.7 |
SF | 585 | Type Hinting Generics In Standard Collections | Łukasz Langa | 3.9 |
SF | 586 | Literal Types | Michael Lee, Ivan Levkivskyi, Jukka Lehtosalo | 3.8 |
SF | 589 | TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys | Jukka Lehtosalo | 3.8 |
SF | 591 | Adding a final qualifier to typing | Michael J. Sullivan, Ivan Levkivskyi | 3.8 |
SF | 593 | Flexible function and variable annotations | Till Varoquaux, Konstantin Kashin | 3.9 |
SF | 604 | Allow writing union types as X | Y | Philippe PRADOS, Maggie Moss | 3.10 |
SF | 612 | Parameter Specification Variables | Mark Mendoza | 3.10 |
SF | 613 | Explicit Type Aliases | Shannon Zhu | 3.10 |
SF | 646 | Variadic Generics | Mark Mendoza, Matthew Rahtz, Pradeep Kumar Srinivasan, Vincent Siles | 3.11 |
SF | 647 | User-Defined Type Guards | Eric Traut | 3.10 |
SF | 655 | Marking individual TypedDict items as required or potentially-missing | David Foster | 3.11 |
SF | 673 | Self Type | Pradeep Kumar Srinivasan, James Hilton-Balfe | 3.11 |
SF | 675 | Arbitrary Literal String Type | Pradeep Kumar Srinivasan, Graham Bleaney | 3.11 |
SF | 681 | Data Class Transforms | Erik De Bonte, Eric Traut | 3.11 |
SF | 688 | Making the buffer protocol accessible in Python | Jelle Zijlstra | 3.12 |
SF | 692 | Using TypedDict for more precise **kwargs typing | Franek Magiera | 3.12 |
SF | 695 | Type Parameter Syntax | Eric Traut | 3.12 |
SF | 696 | Type Defaults for Type Parameters | James Hilton-Balfe | 3.13 |
SF | 698 | Override Decorator for Static Typing | Steven Troxler, Joshua Xu, Shannon Zhu | 3.12 |
SF | 702 | Marking deprecations using the type system | Jelle Zijlstra | 3.13 |
SF | 705 | TypedDict: Read-only items | Alice Purcell | 3.13 |
SF | 742 | Narrowing types with TypeIs | Jelle Zijlstra | 3.13 |
Rejected, Superseded, and Withdrawn PEPs
PEP | Title | Authors | ||
---|---|---|---|---|
SR | 677 | Callable Type Syntax | Steven Troxler, Pradeep Kumar Srinivasan | 3.11 |
SW | 724 | Stricter Type Guards | Rich Chiodo, Eric Traut, Erik De Bonte | 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