Source code for aiida_vasp.utils.delegates

"""
Delegate types.

---------------
Module containing decorators and classes implementing delegate types.
"""
from functools import update_wrapper


[docs] def delegate_method_kwargs(prefix='_init_with_'): """ Get a kwargs delegating decorator. :params prefix: (str) common prefix of delegate functions """ def decorator(meth): """Decorate a class method to delegate kwargs.""" def wrapper(*args, **kwargs): for kwarg, value in kwargs.items(): getattr(args[0], prefix + kwarg)(value) meth(*args, **kwargs) update_wrapper(wrapper, meth) return wrapper return decorator