utils/decorators.py
def cascade(func):
    """
    class method decorator, always returns the
    object that called the method
    """
    @wraps(func)
    def wrapper(self, *args, **kwargs):
        func(self, *args, **kwargs)
        return self
    return wrapper

    class method decorator, always returns the
    object that called the method
    
class method decorator, always returns the
object that called the method
class method decorator always returns the object that called the method
def cascade(func):
    @wraps(func)
    def wrapper(self, *args, **kwargs):
        func(self, *args, **kwargs)
        return self
    return wrapper
def cascade ( func ) : @ wraps ( func ) def wrapper ( self , * args , ** kwargs ) : func ( self , * args , ** kwargs ) return self return wrapper
class method decorator, always returns the
object that called the method
class method decorator always returns the object that called the method
"""
    class method decorator, always returns the
    object that called the method
    """
func