PEP 420 (namespace packages)
E427619
PEP 420 (namespace packages) is a Python enhancement proposal that introduced implicit namespace packages, allowing portions of a single package to be split across multiple directories or distributions without requiring an __init__.py file.
All labels observed (1)
| Label | Occurrences |
|---|---|
| PEP 420 (namespace packages) canonical | 1 |
How this entity was disambiguated
This entity first appeared as the object of triple T4278079 — 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 420 (namespace packages) Context triple: [setuptools, supportsStandard, PEP 420 (namespace packages)]
-
A.
PEP 622
PEP 622 is a Python Enhancement Proposal that introduced the design for structural pattern matching syntax later adopted in Python 3.10.
-
B.
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.
-
C.
PEP 636
PEP 636 is a Python Enhancement Proposal that serves as a tutorial-style guide to the structural pattern matching feature introduced in Python 3.10.
-
D.
PEP 634
PEP 634 is the Python Enhancement Proposal that formally specifies the semantics of structural pattern matching introduced in Python 3.10.
-
E.
PEP 572
PEP 572 is the Python proposal that introduced the “walrus operator” (:=) for assignment expressions, allowing assignment within larger expressions.
- F. None of above. chosen
- G. Unsure - the case is ambiguous/there is not enough information to decide.
Target entity: PEP 420 (namespace packages) Target entity description: PEP 420 (namespace packages) is a Python enhancement proposal that introduced implicit namespace packages, allowing portions of a single package to be split across multiple directories or distributions without requiring an __init__.py file.
-
A.
PEP 622
PEP 622 is a Python Enhancement Proposal that introduced the design for structural pattern matching syntax later adopted in Python 3.10.
-
B.
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.
-
C.
PEP 636
PEP 636 is a Python Enhancement Proposal that serves as a tutorial-style guide to the structural pattern matching feature introduced in Python 3.10.
-
D.
PEP 634
PEP 634 is the Python Enhancement Proposal that formally specifies the semantics of structural pattern matching introduced in Python 3.10.
-
E.
PEP 503
PEP 503 is a Python Enhancement Proposal that defines the simple repository API used by package installers like pip to discover and download Python packages.
- F. None of above. chosen
Statements (46)
| Predicate | Object |
|---|---|
| instanceOf | Python Enhancement Proposal ⓘ |
| affectsModuleAttribute | __path__ ⓘ |
| allows | multiple distributions to contribute subpackages to the same top-level package name ⓘ |
| appliesToLanguage | Python NERFINISHED ⓘ |
| author | Python core developers (as recorded in the PEP document) ⓘ |
| backwardsCompatibility | coexists with pkgutil and pkg_resources namespace packages ⓘ |
| category | Imports ⓘ |
| clarifies | how finders and loaders handle namespace packages ⓘ |
| definesBehaviorFor | import system handling of namespace packages ⓘ |
| definesConcept | namespace package ⓘ |
| definesTerm |
namespace portion
ⓘ
portion (of a namespace package) ⓘ |
| designGoal |
make namespace packages a first-class feature of the import system
ⓘ
simplify package layout for large projects ⓘ |
| discourages |
use of pkg_resources.declare_namespace for new code
ⓘ
use of pkgutil.extend_path for new code ⓘ |
| doesNotRequire | __init__.py file in namespace package directories ⓘ |
| ensures | namespace packages participate in normal import semantics ⓘ |
| governs | creation of namespace packages without __init__.py ⓘ |
| impact |
packaging of large frameworks split across multiple distributions
ⓘ
third-party library distribution on PyPI ⓘ |
| introducedFeature | implicit namespace packages ⓘ |
| isDocumentedAt | https://peps.python.org/pep-0420/ ⓘ |
| isImplementedIn |
CPython
NERFINISHED
ⓘ
PyPy NERFINISHED ⓘ other Python 3 implementations ⓘ |
| keyIdea |
a package can be created by the presence of directories on sys.path with the same name and no __init__.py
ⓘ
namespace packages are created implicitly by the import system ⓘ portions of a namespace package can live in multiple directories on sys.path ⓘ |
| languageVersionIntroduced | Python 3.3 NERFINISHED ⓘ |
| motivation |
remove requirement for __init__.py in all package directories
ⓘ
support splitting a single logical package across multiple directories or distributions ⓘ |
| relatedTo |
PEP 273
NERFINISHED
ⓘ
PEP 302 NERFINISHED ⓘ PEP 328 NERFINISHED ⓘ PEP 382 NERFINISHED ⓘ PEP 395 NERFINISHED ⓘ PEP 406 NERFINISHED ⓘ |
| replacesMechanism |
pkg_resources-style namespace packages
ⓘ
pkgutil-style namespace packages ⓘ |
| requiresPythonVersionAtLeast | 3.3 ⓘ |
| specifies | how __spec__ and module spec interact with namespace packages ⓘ |
| status | Final ⓘ |
| title | Implicit Namespace Packages ⓘ |
| type | Standards Track PEP ⓘ |
| wasAcceptedFor | Python 3.3 import system ⓘ |
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 420 (namespace packages) Description of subject: PEP 420 (namespace packages) is a Python enhancement proposal that introduced implicit namespace packages, allowing portions of a single package to be split across multiple directories or distributions without requiring an __init__.py file.
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.