On Sun, Nov 30, 2014 at 12:05 AM, Steven D'Aprano <st...@pearwood.info> wrote: > On Sun, Nov 30, 2014 at 11:07:57AM +1300, Greg Ewing wrote: >> Nathaniel Smith wrote: >> >So pkgname/__new__.py might look like: >> > >> > import sys >> > from pkgname._metamodule import MyModuleSubtype >> > sys.modules[__name__] = MyModuleSubtype(__name__, docstring) >> > >> >To start with, the 'from >> >pkgname._metamodule ...' line is an infinite loop, >> >> Why does MyModuleSubtype have to be imported from pkgname? >> It would make more sense for it to be defined directly in >> __new__.py, wouldn't it? Isn't the purpose of separating >> stuff out into __new__.py precisely to avoid circularities >> like that? > > Perhaps I'm missing something, but won't that imply that every module > which wants to use a "special" module type has to re-invent the wheel? > > If this feature is going to be used, I would expect to be able to re-use > pre-written module types. E.g. having written "module with properties" > (so to speak) once, I can just import it and use it in my next project.
I expect you'd package the special metamodule class in a stand-alone package, not directly in the ones that use it. You could import other packages freely, just the one that you're currently defining would be unavailable. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com