[Python-ideas] Module lifecycle: simple alternative to PEP 3121/PEP 489

Nick Coghlan ncoghlan at gmail.com
Fri Apr 15 07:01:49 EDT 2016

On 15 April 2016 at 18:59, Nikita Nemkin <nikita at nemkin.ru> wrote:
> Thanks for your input. I now see how things evolved to the present state.
> in the context of PEP 451, my proposal would have been to move
> all default module creation tasks to ModuleType.tp_new (taking
> an optional spec parameter), making separate create and exec
> unnecessary. Too late, I guess.

That doesn't work either, as not only aren't modules in general
actually required to be instances of ModuleType (see [1]), we also
need to be able to create modules to hold __main__, os, sys and
_frozen_importlib before we have an import system to manipulate.

That's a large part of the reason we hived off import-sig from
python-ideas a while back - the import system involves a whole lot of
intertwined arcana stemming from accidents-of-implementation early in
Python's history, as well as the flexible import hook system that was
defined in PEP 302, so a separate list has proven useful for thrashing
out technical details, while we tend to use python-dev and
python-ideas more to check the end result is still comprehensible to
folks that aren't familiar with all those internals :)


[1] https://www.python.org/dev/peps/pep-0489/#the-py-mod-create-slot

Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-ideas mailing list