gh-148672: Document namespace subpackages inside regular packages (#150056)

This commit is contained in:
Taeknology 2026-06-02 04:22:42 +09:00 committed by GitHub
parent 59abdf8207
commit 9ba2a89179
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -122,6 +122,12 @@ Importing ``parent.one`` will implicitly execute ``parent/__init__.py`` and
``parent.three`` will execute ``parent/two/__init__.py`` and
``parent/three/__init__.py`` respectively.
A subdirectory inside a regular package that does not contain an
``__init__.py`` file is treated as an implicit
:ref:`namespace package <reference-namespace-package>` (a "namespace
subpackage") rooted in that parent. See :pep:`420` for the underlying
specification.
.. _reference-namespace-package:
@ -153,6 +159,12 @@ physically located next to ``parent/two``. In this case, Python will create a
namespace package for the top-level ``parent`` package whenever it or one of
its subpackages is imported.
Namespace packages may also be nested inside a regular package. When the
import system searches a regular package's ``__path__`` and encounters a
subdirectory that does not contain an ``__init__.py`` file, that
subdirectory becomes a :term:`portion` contributing to a namespace
subpackage of the enclosing regular package.
See also :pep:`420` for the namespace package specification.