def print_args()

in muss/utils/training.py [0:0]


def print_args(func, collapse=True):
    '''Decorator to print arguments of function for logging purposes'''

    @wraps(func)  # To preserve the name and path for pickling purposes
    def wrapped_func(*args, **kwargs):
        args_str = str(args)
        kwargs_str = str(kwargs)
        if collapse:
            max_length = 1000
            if len(args_str) > max_length:
                args_str = f'{args_str[:1000]}...'
            if len(kwargs_str) > max_length:
                kwargs_str = f'{kwargs_str[:1000]}...'
        print(f'args={args_str}')
        print(f'kwargs={kwargs_str}')
        return func(*args, **kwargs)

    return wrapped_func