.. class:: ModuleSpec(name, loader, *, origin=None, loader_state=None, is_package=None)
- A specification for a module's import-system-related state.
+ A specification for a module's import-system-related state. This is
+ typically exposed as the module's ``__spec__`` attribute. In the
+ descriptions below, the names in parentheses give the corresponding
+ attribute available directly on the module object.
+ E.g. ``module.__spec__.origin == module.__file__``. Note however that
+ while the *values* are usually equivalent, they can differ since there is
+ no synchronization between the two objects. Thus it is possible to update
+ the module's ``__path__`` at runtime, and this will not be automatically
+ reflected in ``__spec__.submodule_search_locations``.
.. versionadded:: 3.4
import machinery to perform the boilerplate operations of loading,
whereas without a module spec the loader had that responsibility.
-See :class:`~importlib.machinery.ModuleSpec` for more specifics on what
-information a module's spec may hold.
+The module's spec is exposed as the ``__spec__`` attribute on a module object.
+See :class:`~importlib.machinery.ModuleSpec` for details on the contents of
+the module spec.
.. versionadded:: 3.4