[Python-Dev] __package__ attribute

Andrew Svetlov andrew.svetlov at gmail.com
Fri May 21 23:35:20 CEST 2010


For me it's the real bug in standard python import machinery.
I don't see any backward incompatibilities.
There are very hard to write any import-depended code based on
decision: was module imported in absolute or relative way.

If it's a bug I can create issue in python bugtracker and provide a
patch (for Python 3.2 and for 2.7 if later is required).

On Fri, May 21, 2010 at 10:18 PM, Andrew Svetlov
<andrew.svetlov at gmail.com> wrote:
> What are expected values for module.__package__?
> I see two different behaviors: importlib and standard python import.
> importlib processes __package__ pretty simple and clean:
> - for toplevel modules __package__ is empty string
> - for packages it's package name
> - for modules inside packages it's again package name
>
> Standard import follows another strategy:
> - it tries to setup __package__ only in case of relative import (see
> first 'if' in import.c:get_parent)
> - otherwise __package__ is untouched and None by default.
>
> For me importlib's way is better.
> I don't see any PEP specifying __package__ behavior.
>


More information about the Python-Dev mailing list