Skip to content

Instantly share code, notes, and snippets.

@dcolish
Created September 15, 2011 04:13
Show Gist options
  • Select an option

  • Save dcolish/1218518 to your computer and use it in GitHub Desktop.

Select an option

Save dcolish/1218518 to your computer and use it in GitHub Desktop.
More crazy importing
import imp
import sys
class ErrorlessImport(object):
def find_module(self, name, path):
try:
return TrueLoader(
imp.load_module, name, *imp.find_module(name, path))
except ImportError:
return FreeLoader()
class Mock(object):
def __repr__(self):
return "<Silly Human, I'm not real>"
def __eq__(self, b):
return True
def __getattr__(self, meh):
return Mock()
class TrueLoader:
def __init__(self, fn, name, *args):
self.fn = fn
self.name = name
self.args = args
def load_module(self, fullname):
return self.fn(self.name, *self.args)
class FreeLoader:
def load_module(self, fullname):
return Mock()
sys.meta_path += [ErrorlessImport()]
import whatever
import itertools
print str(itertools)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment