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)
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)
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
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