Source code for twin4build.utils.deprecation

# Standard library imports
import warnings


[docs] def deprecate_args(deprecated_args, new_args, positions, kwargs): value_map = {} for old_arg, new_arg, pos in zip(deprecated_args, new_args, positions): if old_arg in kwargs: if isinstance(pos, int): warnings.warn( f"Keyword argument '{old_arg}' is deprecated. Use positional argument '{new_arg}' instead at position {pos}.", DeprecationWarning, stacklevel=3, ) elif pos is None: warnings.warn( f"Keyword argument '{old_arg}' is deprecated. Use '{new_arg}' instead.", DeprecationWarning, stacklevel=3, ) else: raise ValueError(f"Invalid position: {pos}") value_map[new_arg] = kwargs[old_arg] kwargs.pop(old_arg) return value_map