PEP 649
E918446
PEP 649 is a Python enhancement proposal that introduces a new, lazy evaluation scheme for type annotations to improve performance and forward-reference handling.
All labels observed (1)
| Label | Occurrences |
|---|---|
| PEP 649 canonical | 1 |
How this entity was disambiguated
This entity first appeared as the object of triple T10763906 — resolving that mention is where its identity was fixed. The disambiguator weighed these candidate entities and picked the highlighted one (or “None”, minting a new entity). This is how homonymy is resolved: the same surface form can point to different entities.
Target entity: PEP 649 Context triple: [Python 3.10, implementsPEP, PEP 649]
-
A.
PEP 644
PEP 644 is the Python Enhancement Proposal that mandates OpenSSL 1.1.1 or newer as the minimum supported version for Python’s standard ssl module, aligning Python’s security features with modern TLS capabilities.
-
B.
PEP 634
PEP 634 is the Python Enhancement Proposal that formally specifies the semantics of structural pattern matching introduced in Python 3.10.
-
C.
PEP 624
PEP 624 is a Python Enhancement Proposal that specifies the removal of the Py_UNICODE encoder APIs from the CPython C API to streamline and modernize Unicode handling in Python.
-
D.
PEP 695
PEP 695 is a Python Enhancement Proposal that introduces a new, more concise syntax for type parameter declarations to improve the language’s support for generics and static typing.
-
E.
PEP 647
PEP 647 is the Python Enhancement Proposal that introduces "user-defined type guards," enabling more precise static type narrowing in Python code.
- F. None of above. chosen
- G. Unsure - the case is ambiguous/there is not enough information to decide.
Target entity: PEP 649 Target entity description: PEP 649 is a Python enhancement proposal that introduces a new, lazy evaluation scheme for type annotations to improve performance and forward-reference handling.
-
A.
PEP 644
PEP 644 is the Python Enhancement Proposal that mandates OpenSSL 1.1.1 or newer as the minimum supported version for Python’s standard ssl module, aligning Python’s security features with modern TLS capabilities.
-
B.
PEP 634
PEP 634 is the Python Enhancement Proposal that formally specifies the semantics of structural pattern matching introduced in Python 3.10.
-
C.
PEP 624
PEP 624 is a Python Enhancement Proposal that specifies the removal of the Py_UNICODE encoder APIs from the CPython C API to streamline and modernize Unicode handling in Python.
-
D.
PEP 695
PEP 695 is a Python Enhancement Proposal that introduces a new, more concise syntax for type parameter declarations to improve the language’s support for generics and static typing.
-
E.
PEP 647
PEP 647 is the Python Enhancement Proposal that introduces "user-defined type guards," enabling more precise static type narrowing in Python code.
- F. None of above. chosen
Statements (43)
| Predicate | Object |
|---|---|
| instanceOf | Python Enhancement Proposal ⓘ |
| affects |
class annotations
ⓘ
function annotations ⓘ module-level annotations ⓘ |
| aimsTo |
improve handling of forward references in annotations
ⓘ
improve performance of type annotations ⓘ |
| author | Brett Cannon NERFINISHED ⓘ |
| belongsTo | Python type system evolution ⓘ |
| category |
Language Design
ⓘ
Typing ⓘ |
| created | 2020-01-13 ⓘ |
| defines | descriptor-based protocol for accessing annotations ⓘ |
| discusses |
backwards compatibility for annotations
ⓘ
impact on introspection tools ⓘ interaction with typing module ⓘ migration path from PEP 563 semantics ⓘ runtime cost of evaluating annotations ⓘ |
| goal | make annotations cheaper at runtime while remaining usable for tooling ⓘ |
| intendedAudience |
Python core developers
ⓘ
library and framework authors using annotations ⓘ static type checker implementers ⓘ typing library authors ⓘ |
| language | Python NERFINISHED ⓘ |
| modifies | semantics of __annotations__ ⓘ |
| motivation |
avoid eager evaluation of annotations at function definition time
ⓘ
provide reliable access to unevaluated annotation expressions ⓘ |
| notes | stringized annotations from PEP 563 caused practical issues ⓘ |
| number | 649 ⓘ |
| proposes |
deferred evaluation of annotations
ⓘ
lazy evaluation of type annotations ⓘ |
| relatedTo |
PEP 563
NERFINISHED
ⓘ
PEP 649 alternative proposals for annotations ⓘ PEP 695 NERFINISHED ⓘ |
| replaces | PEP 563 NERFINISHED ⓘ |
| repository | https://peps.python.org/pep-0649/ ⓘ |
| scope | runtime semantics of annotations, not static typing rules ⓘ |
| status | Withdrawn ⓘ |
| supersedes | PEP 563: Postponed Evaluation of Annotations NERFINISHED ⓘ |
| targetsVersion | Python 3.x NERFINISHED ⓘ |
| title | Deferred Evaluation Of Annotations Using Descriptors NERFINISHED ⓘ |
| usesMechanism | descriptors for annotation evaluation ⓘ |
| withdrawnInFavorOf |
PEP 649 alternative design adopted in PEP 649 withdrawal rationale
ⓘ
PEP 695 NERFINISHED ⓘ |
How these facts were elicited
The pipeline generated the facts above by prompting gpt-5.1 with this entity's name + description and the instruction below.
You are a knowledge base construction expert. Given a subject entity and a description of it, return factual statements that you know for the subject as a JSON list of dictionaries(triples), where keys must be "subject", "predicate" and "object". The number of facts may be very high, between 25 to 50 or more, for very popular subjects. For less popular subjects, the number of facts can be very low, like 5 or 10. # Requirements - If you don't know the subject at all, return an empty list. - If the subject is not a named entity, return an empty list. - Include at least one triple where predicate is "instanceOf". - Do not get too wordy. - Separate several objects into multiple triples with one object.
Subject: PEP 649 Description of subject: PEP 649 is a Python enhancement proposal that introduces a new, lazy evaluation scheme for type annotations to improve performance and forward-reference handling.
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.