[issue37519] Three inconsistent module attributes

Géry report at bugs.python.org
Mon Jul 15 10:09:52 EDT 2019


Géry <gery.ogam at gmail.com> added the comment:

@Brett Cannon

> PEPs actually become historical documents once they are implemented

Actually the inconsistency of the values of the 3 module attributes (``__file__``, ``__cached__`` and ``__package__``) is with respect to the other values within the current implementation (not only with respect to the values specified in PEP 451). Sorry if I did not explain this well. Let me detail:

For ``__file__``, if you look at the current output of the above "Imported modules" section, you have:

- __file__: None, for an imported namespace package;
- __file__: 'not set', for an imported built-in module;
- __file__: 'not set', for an imported frozen module,

which is inconsistent: it should always be 'not set' when ``__file__`` has no meaning.

For ``__cached__``, if you look at the current output of the above "Run modules" section, you have:

- __cached__: None, for a non-package module run from the file system (``python3 module.py``) or run from standard input (``cat module.py | python3``);
- __path__: 'not set', for a non-package module run from the file system (``python3 module.py``) or run from standard input (``cat module.py | python3``),

which is inconsistent: it should always be 'not set' when ``__cached__`` has no meaning, like it is already the case for ``__path__`` and other module attributes.

For ``__package__``, if you look at the current output of the above "Run modules" section, you have:

- __package__: None, for a non-package module run from the file system (``python3 module.py``) or run from standard input (``cat module.py | python3``);
- __package__: '', for a non-package module run from the module namespace (``python3 -m module``) or a package run from the file system (``python3 module/``).

which is inconsistent: it should always be ``''`` when there is no parent package for ``__package__`` to refer to.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue37519>
_______________________________________


More information about the Python-bugs-list mailing list