Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

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 Langa
IF 483 The Theory of Type Hints GvR, Levkivskyi

Accepted PEPs (accepted; may not be implemented yet)

PEP Title Authors
SA 544 Protocols: Structural subtyping (static duck typing) Levkivskyi, Lehtosalo, Langa
SA 563 Postponed Evaluation of Annotations Langa
SA 586 Literal Types Lee, Levkivskyi, Lehtosalo
SA 589 TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys Lehtosalo
SA 591 Adding a final qualifier to typing Sullivan, Levkivskyi
SA 593 Flexible function and variable annotations Varoquaux, Kashin
SA 604 Allow writing union types as X | Y PRADOS, Moss
SA 612 Parameter Specification Variables Mendoza
SA 613 Explicit Type Aliases Zhu
SA 646 Variadic Generics Mendoza, Rahtz, Srinivasan, Siles
SA 647 User-Defined Type Guards Traut
SA 655 Marking individual TypedDict items as required or potentially-missing Foster
SA 673 Self Type Srinivasan, Hilton-Balfe
SA 675 Arbitrary Literal String Type Srinivasan, Bleaney
SA 681 Data Class Transforms De Bonte, Traut

Open PEPs (under consideration)

PEP Title Authors
S 649 Deferred Evaluation Of Annotations Using Descriptors Hastings
S 688 Making the buffer protocol accessible in Python Zijlstra
S 692 Using TypedDict for more precise **kwargs typing Magiera
S 695 Type Parameter Syntax Traut
S 696 Type defaults for TypeVarLikes Hilton-Balfe
S 698 Override Decorator for Static Typing Troxler, Xu, Zhu
S 702 Marking deprecations using the type system Zijlstra

Finished PEPs (done, with a stable interface)

PEP Title Authors
SF 484 Type Hints GvR, Lehtosalo, Langa
SF 526 Syntax for Variable Annotations Gonzalez, House, Levkivskyi, Roach, GvR
SF 561 Distributing and Packaging Type Information Smith
SF 585 Type Hinting Generics In Standard Collections Langa

Abandoned, Withdrawn, and Rejected PEPs

PEP Title Authors
SR 677 Callable Type Syntax Troxler, Srinivasan

Numerical Index

PEP Title Authors
IF 482 Literature Overview for Type Hints Langa
IF 483 The Theory of Type Hints GvR, Levkivskyi
SF 484 Type Hints GvR, Lehtosalo, Langa
SF 526 Syntax for Variable Annotations Gonzalez, House, Levkivskyi, Roach, GvR
SA 544 Protocols: Structural subtyping (static duck typing) Levkivskyi, Lehtosalo, Langa
SF 561 Distributing and Packaging Type Information Smith
SA 563 Postponed Evaluation of Annotations Langa
SF 585 Type Hinting Generics In Standard Collections Langa
SA 586 Literal Types Lee, Levkivskyi, Lehtosalo
SA 589 TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys Lehtosalo
SA 591 Adding a final qualifier to typing Sullivan, Levkivskyi
SA 593 Flexible function and variable annotations Varoquaux, Kashin
SA 604 Allow writing union types as X | Y PRADOS, Moss
SA 612 Parameter Specification Variables Mendoza
SA 613 Explicit Type Aliases Zhu
SA 646 Variadic Generics Mendoza, Rahtz, Srinivasan, Siles
SA 647 User-Defined Type Guards Traut
S 649 Deferred Evaluation Of Annotations Using Descriptors Hastings
SA 655 Marking individual TypedDict items as required or potentially-missing Foster
SA 673 Self Type Srinivasan, Hilton-Balfe
SA 675 Arbitrary Literal String Type Srinivasan, Bleaney
SR 677 Callable Type Syntax Troxler, Srinivasan
SA 681 Data Class Transforms De Bonte, Traut
S 688 Making the buffer protocol accessible in Python Zijlstra
S 692 Using TypedDict for more precise **kwargs typing Magiera
S 695 Type Parameter Syntax Traut
S 696 Type defaults for TypeVarLikes Hilton-Balfe
S 698 Override Decorator for Static Typing Troxler, Xu, Zhu
S 702 Marking deprecations using the type system Zijlstra

PEP Types Key

  • IInformational: Non-normative PEP containing background, guidelines or other information relevant to the Python ecosystem
  • PProcess: Normative PEP describing or proposing a change to a Python community process, workflow or governance
  • SStandards Track: Normative PEP with a new feature for Python, implementation change for CPython or interoperability standard for the ecosystem

More info in PEP 1.

PEP Status Key

  • AAccepted: Normative proposal accepted for implementation
  • AActive: Currently valid informational guidance, or an in-use process
  • DDeferred: Inactive draft that may be taken up again at a later time
  • <No letter>Draft: Proposal under active discussion and revision
  • FFinal: Accepted and implementation complete, or no longer active
  • PProvisional: Provisionally accepted but additional feedback needed
  • RRejected: Formally declined and will not be accepted
  • SSuperseded: Replaced by another succeeding PEP
  • WWithdrawn: Removed from consideration by sponsor or authors

More info in PEP 1.