home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog 116
/
FreelogNo116-JuilletSeptembre2013.iso
/
Bureautique
/
gImageReader
/
gimagereader_0.9-1_win32.exe
/
bin
/
gtk
/
_lazyutils.pyc
(
.txt
)
< prev
next >
Wrap
Python Compiled Bytecode
|
2011-03-24
|
3KB
|
76 lines
# Source Generated with Decompyle++
# File: in.pyc (Python 2.7)
import sys
from types import ModuleType
class LazyModule(object):
def __init__(self, name, locals):
self._name = name
self._locals = locals
self._modname = '%s.%s' % (self._locals.get('__name__'), self._name)
def __getattr__(self, attr):
module = __import__(self._name, self._locals, { }, ' ')
sys.modules[self._modname] = module
if attr == '__members__':
return dir(module)
return None(module, attr)
class _NotLoadedMarker:
pass
_marker = _NotLoadedMarker()
class LazyDict(dict):
def __init__(self, module):
self._module = module
dict.__init__(self)
def __getitem__(self, name):
print name
return getattr(self._module, name)
class LazyNamespace(ModuleType):
def __init__(self, module, locals):
ModuleType.__init__(self, locals['__name__'])
self._imports = { }
ns = self.__dict__
ns.update(locals)
ns['__module__'] = self
lazy_symbols = { }
for symbol in module._get_symbol_names():
lazy_symbols[symbol] = ns[symbol] = _marker
ns.update(__dict__ = LazyDict(self), __bases__ = (ModuleType,), add_submodule = self.add_submodule)
def __getattribute__(_, name):
v = ns.get(name, _marker)
if v is not _marker:
return v
if None in lazy_symbols:
s = module._get_symbol(ns, name)
return s
if None in self._imports:
m = __import__(self._imports[name], { }, { }, ' ')
ns[name] = m
return m
raise None(name)
LazyNamespace.__getattribute__ = __getattribute__
def add_submodule(self, name, importname):
self._imports[name] = importname