Source code for openjij.utils.decorator

from __future__ import annotations
import functools, warnings


[docs]def deprecated_alias(**aliases): def deco(f): @functools.wraps(f) def wrapper(*args, **kwargs): rename_kwargs(f.__name__, kwargs, aliases) return f(*args, **kwargs) return wrapper return deco
[docs]def rename_kwargs(func_name, kwargs, aliases): for alias, new in aliases.items(): if alias in kwargs: if new in kwargs: raise TypeError(f"{func_name} received both {alias} and {new}") warnings.warn(f"{alias} is deprecated; use {new}", DeprecationWarning) kwargs[new] = kwargs.pop(alias)
[docs]def disabled(func): def wrapper(*args, **kwargs): raise NotImplementedError(f"The function {func.__name__} is disabled.") return wrapper