On Sun, Oct 27, 2013 at 4:41 PM, PJ Eby <p...@telecommunity.com> wrote: > I'm talking about userspace code that implements lazy importing > features, like the lazyModule() function in this module: > > http://svn.eby-sarna.com/Importing/peak/util/imports.py?view=markup > > Specifically, I'm trying to get an idea of how much that code will > need to change under the PEP (and apparently under importlib in > general).
Depending on the outcome of issue19413, you shouldn't have to change anything. PEP 451 is aiming for strict backward compatibility. > Honestly, I'm finding all this stuff *really* confusing, which is kind > of worrying. I mean, I gather I'm one of the handful of people who > really understood how importing *used to work*, and I'm having a lot > of trouble wrapping my brain around the new world. > > (Granted, I think that may be because I understand how a lot of old > corner cases work, Like Nick, I would love more tests that cover these corner cases. It would have saved us (Brett especially) a lot of headache. At the least any description you can offer would be great. > but what's bugging me is that I no longer > understand how those old corners work under the new regime, nor do I > feel I understand what the *new* corners will be. This may also just > be communication problems, and the fact that it's been months since I > really walked through importlib line by line, and have never really > walked through it (or PEP 451) quite as thoroughly as I have import.c. > I also seem to be having trouble grokking why the motivating use > cases for PEP 451 can't be solved by just providing people with good > base classes to use for writing loaders -- i.e., I don't get why the > core protocol has to change to address the use case of writing loaders > more easily. The new protocol seems way more complex than PEP 302, What new protocol specifically? Finder.find_module() now returns a module spec instead of a loader. Loader.exec_module() gets used now rather than load_module(). Loaders don't have to worry about all the boilerplate stuff anymore (managing sys.modules and import-related module attributes). From my perspective PEP 451 is simplifying protocols. -eric > and ISTM the complexity could just be pushed off to the loader side of > the protocol without creating more interdependency between importlib > and the loaders.) _______________________________________________ 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