At 11:14 PM 8/2/04 -0400, Tim Peters wrote: >[Christian Tismer] >.. > > Yes, but I think you are almost an atom's distance apart off of > > the final solution. Grab it! > >If you mean this: > > >>> Maybe it could be as simple as saving a snapshot of > >>> sys.modules whenever importing of a module is begun, > >>> and if execution of its body doesn't complete, restoring > >>> the snapshot? > >then no, that's a long way off in CPython. There's no choke point for >when importing begins, or for when importing ends, and even >__builtin__.__import__ is routinely replaced. Guido latched on to the >only choke point there is: sooner or later, every import gimmick >worthy of the name has to execute "the module's" code, whether it be >direct import from Python, directly via C API calls, implicit package >__init__.py imports, imports arranged via magical importers (like the >.zip importer), etc. So that's what the patch targeted: there's one >routine that executes a module's initialization code, all imports go >thru it eventually, and that's the routine that now removes the >module's name from sys.modules if the initialization code barfs. It's worse than that... 'ihooks' and 'imputil', for example, both do: exec code in module.__dict__ so they'd need to be changed to support this fix as well. (Not to mention any third-party import hooks...)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4