# example4.py import decorators decorators.enhance_classes() class C: "[Decorated]" # required docstring def identity(x): "[staticmethod]" return x class Inner: "[Decorated]" # required docstring def name(cls): "[classmethod]" return cls.__name__ assert C.identity(1) == 1 assert C.Inner.name() == 'Inner'
# example3.py import decorators decorators.enhance_classes() class C: "[Decorated]" # magic docstring here def do_nothing(self): "No magic docstring here" def identity(x): "[staticmethod]" return x class D(object): "Undecorated" # no magic docstring here def name(cls): "[classmethod]" return cls.__name__ c = C() d = D()
# example.py from example2 import identity, name import inspect, decorators decorators.enhance_classes("[Decorated]") class C1: # automagically converted to a decorated class identity = identity class C2: # automagically converted to a DecoratedLogged class "[Logged]" name = name c1 = C1() # C1 instance c2 = C2() # C2 instance
# example8.py from example2 import identity,name import inspect, decorators; decorators.enhance_classes("[Decorated]") class C1: # automagically converted to a Decorated class identity=identity class C2: # automagically converted to a DecoratedLogged class "[Logged]" name=name c1=C1() # C1 instance c2=C2() # C2 instance
# example4.py import decorators; decorators.enhance_classes() class C: "[Decorated]" # required docstring def identity(x): "[staticmethod]" return x class Inner: "[Decorated]" # required docstring def name(cls): "[classmethod]" return cls.__name__ assert C.identity(1) == 1 assert C.Inner.name() == 'Inner'
# example5.py import decorators; decorators.enhance_classes() class C: "[Decorated]" # required docstring def identity(x): "[staticmethod]" return x class Inner: "[Decorated]" # required docstring def name(cls): "[classmethod]" return cls.__name__ assert C.identity(1) == 1 assert C.Inner.name() == 'Inner'