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:
Exemplo n.º 3
0
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: