Исходный код dublib.Methods.Decorators

from ..CLI.TextStyler import FastStyler

import functools
import warnings

[документация] def deprecated(message: str | None = None): """ Декоратор: помечает функцию как устаревшую. :param message: Сопровождающее сообщение. :type message: str | None """ def decorator(function): @functools.wraps(function) def Wrapper(*args, **kwargs): Message = f" {message}" or "" Function = FastStyler(function.__name__).decorate.bold warnings.warn(f"{Function} is deprecated.{Message}", DeprecationWarning, stacklevel = 2) return function(*args, **kwargs) return Wrapper return decorator
[документация] def run_before_method(method_name: str): """ Декоратор: запускает публичный или защищённый метод, не принимающий аргументов, перед выполнением метода экземпляра класса. Запущенный метод имеет доступ к экземпляру. :param method_name: Имя метода. :type method_name: str """ if method_name.startswith("__"): raise ValueError("Only public and protected methods supported in @run_befor_method decorator.") def decorator(function): @functools.wraps(function) def Wrapper(*args, **kwargs): if args: Object = args[0] Method = getattr(Object, method_name, None) if Method and callable(Method): Method() return function(*args, **kwargs) return Wrapper return decorator