+ setattr(mod, name, origin)\r
+\r
+ return _create_decorator(origin, needs_origin, mode)\r
+\r
+\r
+def decorate(origin, needs_origin=True, mode=DecoratableObject.MODE_OVERRIDE):\r
+ if inspect.ismethod(origin):\r
+ return _decorate_method(origin, needs_origin, mode)\r
+\r
+ if inspect.isfunction(origin) or isinstance(origin, DecoratableObject):\r
+ return _decorate_function(origin, needs_origin, mode)\r