Пример #1
0
def _decorate(obj):
    """Given an object with a magic docstrings, returns its decorated
    version; otherwise, returns None"""
    docstring=inspect.getdoc(obj) or ''
    MO=re.match(r'\[([\w_ ,]*)\]',docstring)
    # for instance [name_1, name_2, name_3] is matched
    if MO:
        decorators=MO.group(1).split(',')
        try: dclasses=[StoredDecorators.dic[n] for n in decorators]
        except KeyError: raise UnknownDecoratorError(n)
        dclasses=noconflict.remove_redundant(dclasses)
        decname=''.join([d.__name__ for d in dclasses])
        decorator=StoredDecorators.dic.get(decname)
        if not decorator: decorator=makecls()(decname,dclasses,{})
        if issubclass(decorator,ClassDecorator): return decorator(obj)()
        return decorator(obj)
Пример #2
0
def _decorate(obj):
    """Given an object with a magic docstrings, returns its decorated
    version; otherwise, returns None"""
    docstring = inspect.getdoc(obj) or ''
    MO = re.match(r'\[([\w_ ,]*)\]', docstring)
    # for instance [name_1, name_2, name_3] is matched
    if MO:
        decorators = MO.group(1).split(',')
        try:
            dclasses = [StoredDecorators.dic[n] for n in decorators]
        except KeyError:
            raise UnknownDecoratorError(n)
        dclasses = noconflict.remove_redundant(dclasses)
        decname = ''.join([d.__name__ for d in dclasses])
        decorator = StoredDecorators.dic.get(decname)
        if not decorator: decorator = makecls()(decname, dclasses, {})
        if issubclass(decorator, ClassDecorator): return decorator(obj)()
        return decorator(obj)
Пример #3
0
def composed(*dclasses):
    dclasses = noconflict.remove_redundant(dclasses)
    decname = ''.join([d.__name__ for d in dclasses])
    decorator = MetaDecorator.dic.get(decname)
    if not decorator: decorator = makecls()(decname, dclasses, {})
    return decorator
Пример #4
0
def composed(*dclasses):
    dclasses=noconflict.remove_redundant(dclasses)
    decname=''.join([d.__name__ for d in dclasses])
    decorator=MetaDecorator.dic.get(decname)
    if not decorator: decorator=makecls()(decname,dclasses,{})
    return decorator