At 09:55 PM 12/8/2007 +0100, Christian Heimes wrote: >Nick Coghlan wrote: > > I'm far from convinced that a from-scratch rewrite (particularly in C) > > is a great idea myself - that's why I suggested a PEP to look at some of > > the issues. > >Yesterday I wrote down a quick survey of codes with some use cases. Then >I compared my ideas with PJE's import tool. His working implementation >is almost identical to my idea. In my opinion we can copy his import >callback API and re-implement it in C. > > > Some curly questions I thought of myself: > > > > - What do we do if something is inserted in sys.modules directly, and > > then imported later? Do registered callbacks for that module trigger at > > all? If so, when? > >I'll answer the question with a list of use cases > >* a new callback is registered and module is not loaded > o callback is added to a registry: module name -> list of callbacks > >* module is inserted into sys.modules[] manually > o nothing happens
Note that in my implementation, an entry is added to sys.modules immediately, so this scenario can't happen without *replacing* the sys.modules entry. >* module is loaded with __import__() but callbacks weren't fired yet > o the existing import mechanism is called > o after the module is loaded and inserted into sys.modules > the callbacks are fired in reverse order (FILO). Why not FIFO? >What's the difference between lazy and weak importing? "Weak importing" is my name for having a run-this-on-import callback, implemented in terms of lazy importing. Lazy importing is putting a module object into sys.modules, but not loading its contents until you attempt to get or set a module attribute. _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com