import imp import wrapt from compat import PY2, PY3, exec_ DECORATORS_CODE = """ import wrapt @wrapt.decorator def passthru_decorator(wrapped, instance, args, kwargs): return wrapped(*args, **kwargs) """ decorators = imp.new_module('decorators') exec_(DECORATORS_CODE, decorators.__dict__, decorators.__dict__) class Class(object): @staticmethod def function(self, arg): '''documentation''' return arg Original = Class class Class(object): @decorators.passthru_decorator @staticmethod def function(self, arg): '''documentation''' return arg
PYPY = '__pypy__' in sys.builtin_module_names OBJECTS_CODE = """ class TargetBaseClass(object): "documentation" class Target(TargetBaseClass): "documentation" def target(): "documentation" pass """ objects = imp.new_module('objects') exec_(OBJECTS_CODE, objects.__dict__, objects.__dict__) def load_implementation(name): class mod: subclass = False kind = name if name == "slots": from lazy_object_proxy.slots import Proxy elif name == "simple": from lazy_object_proxy.simple import Proxy elif name == "cext": try: from lazy_object_proxy.cext import Proxy except ImportError: if PYPY:
import imp import wrapt from compat import exec_, getfullargspec DECORATORS_CODE = """ import wrapt @wrapt.decorator def passthru_decorator(wrapped, instance, args, kwargs): return wrapped(*args, **kwargs) """ decorators = imp.new_module('decorators') exec_(DECORATORS_CODE, decorators.__dict__, decorators.__dict__) class Class(object): @classmethod def function(self, arg): '''documentation''' return arg Original = Class class Class(object): @decorators.passthru_decorator @classmethod
PYPY = '__pypy__' in sys.builtin_module_names OBJECTS_CODE = """ class TargetBaseClass(object): "documentation" class Target(TargetBaseClass): "documentation" def target(): "documentation" pass """ objects = imp.new_module('objects') exec_(OBJECTS_CODE, objects.__dict__, objects.__dict__) def load_implementation(name): class FakeModule: subclass = False kind = name if name == "slots": from lazy_object_proxy.slots import Proxy elif name == "simple": from lazy_object_proxy.simple import Proxy elif name == "cext": try: from lazy_object_proxy.cext import Proxy except ImportError: if PYPY: