Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions source/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,23 @@ Glossary
extensions.


Implicit Namespace Package
Native Namespace Package

"Native namespace packages" and "implicit namespace packages" are two names for
the same type of namespace package. It's defined in :pep:`420`, and is available
in Python 3.3 and later.

The term "native" derives from the built-in feature of Python to create packages
without installing an extra package, such as setuptools, from outside the standard
library. The term "implicit" derives from the fact that you don't have to explicitly
declare the namespace package in a :file:`__init__.py` file.

This guide uses these names interchangeably.

.. seealso::
:ref:`native-namespace-packages`

Import Package

A Python module which can contain other modules or recursively, other
Expand Down
12 changes: 10 additions & 2 deletions source/guides/packaging-namespace-packages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@ from which the latter is discouraged:
#. Use `legacy namespace packages`_. This comprises `pkgutil-style namespace packages`_
and `pkg_resources-style namespace packages`_.

.. note::

:term:`Native namespace packages <Native Namespace Package>` and
:term:`implicit namespace packages <Implicit Namespace Package>` are two
names for the same thing. This guide uses these names interchangeably.

.. _native-namespace-packages:

Native namespace packages
-------------------------

Expand Down Expand Up @@ -159,8 +167,8 @@ Legacy namespace packages

These two methods, that were used to create namespace packages prior to :pep:`420`,
are now considered to be obsolete and should not be used unless you need compatibility
with packages already using this method. Also, :doc:`pkg_resources <setuptools:pkg_resources>`
has been deprecated.
with packages already using this method. Also,
:doc:`pkg_resources <setuptools:deprecated/pkg_resources>` has been deprecated.

To migrate an existing package, all packages sharing the namespace must be migrated simultaneously.

Expand Down
Loading