Ë
    šÓ^j¨  ã                   óŽ   — d Z ddl­ ddlmZ ddlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZ ddlmZ ddlmZmZ ddlmZmZmZ g d¢Zy	)
at  Deprecation tooling for Python functions and classes.

This package provides a simple decorator-based approach to deprecate functions,
methods, and classes while automatically forwarding calls to their replacements.

Main Features:
    - Automatic call forwarding to new implementations
    - Argument mapping and renaming between old and new APIs
    - Customizable warning messages and output streams
    - Per-function and per-argument warning tracking to prevent log spam
    - Support for multiple deprecation levels via decorator stacking
    - Audit tools for CI pipelines: wrapper validation, expiry enforcement, chain detection
    - Testing utilities for writing deterministic tests

Core Components:

**Main Decorator** (:mod:`deprecate.deprecation`):
    - :func:`~deprecate.deprecation.deprecated`: Decorator for marking functions/methods as deprecated
    - :func:`~deprecate.utils.void`: Silences IDE and mypy warnings about unused parameters in deprecated stubs

**Audit** (:mod:`deprecate.audit`):
    - :func:`~deprecate.audit.validate_deprecation_wrapper`: Validate a single wrapper's configuration
    - :func:`~deprecate.audit.find_deprecation_wrappers`: Scan a package for all deprecated wrappers
    - :func:`~deprecate.audit.generate_deprecation_table`: Build compact or matrix markdown deprecation tables
    - :func:`~deprecate.audit.validate_deprecation_expiry`: Detect wrappers that outlived their ``remove_in`` deadline
    - :func:`~deprecate.audit.validate_deprecation_chains`: Detect deprecated wrappers chaining to
      other deprecated wrappers
    - :class:`~deprecate.audit.DeprecationWrapperInfo`: Structured result returned by the audit functions
    - :class:`~deprecate.audit.ChainType`: Enum describing the kind of deprecation chain detected

**Proxy** (:mod:`deprecate.proxy`):
    - :func:`~deprecate.proxy.deprecated_instance`: Wrap any object with deprecation warnings
    - :func:`~deprecate.proxy.deprecated_class`: Decorator for deprecating Enum/dataclass definitions

**Testing** (:mod:`deprecate.utils`):
    - :func:`~deprecate.utils.assert_no_warnings`: Context manager asserting that no warnings are raised

Quick Example:
    >>> from deprecate import deprecated
    >>>
    >>> def new_function(x: int) -> int:
    ...     '''New implementation.'''
    ...     return x * 2
    >>>
    >>> @deprecated(target=new_function, deprecated_in="1.0", remove_in="2.0")
    ... def old_function(x: int) -> int:
    ...     '''Old implementation - calls forwarded automatically.'''
    ...     pass
    >>>
    >>> result = old_function(5)  # Shows warning, returns 10
    >>> print(result)
    10

Complete Documentation:
    For detailed examples and use cases, see:
    https://borda.github.io/pyDeprecate

    Topics covered:
    - Simple function forwarding
    - Advanced argument mapping
    - Warning-only deprecation (``TargetMode.NOTIFY``)
    - Self-deprecation (``TargetMode.ARGS_REMAP``)
    - Multiple deprecation levels
    - Conditional skip (skip_if parameter)
    - Class deprecation
    - Automatic docstring updates
    - Auditing: wrapper configuration, expiry enforcement, chain detection
    - Testing deprecated code

é    )Ú*)Ú
TargetMode)Ú	ChainTypeÚDeprecatedCallableInfoÚDeprecationStatusÚDeprecationWrapperInfoÚ
TableStyleÚfind_deprecated_callablesÚfind_deprecation_wrappersÚgenerate_deprecation_tableÚvalidate_deprecated_callableÚvalidate_deprecation_chainsÚvalidate_deprecation_expiryÚvalidate_deprecation_wrapper)Ú
deprecated)Údeprecated_classÚdeprecated_instance)Úassert_no_warningsÚno_warning_callÚvoid)r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   N)Ú__doc__Údeprecate.__about__Údeprecate._typesr   Údeprecate.auditr   r   r   r   r	   r
   r   r   r   r   r   r   Údeprecate.deprecationr   Údeprecate.proxyr   r   Údeprecate.utilsr   r   r   Ú__all__© ó    ú]/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/deprecate/__init__.pyú<module>r"      sA   ðñEôN "Ý '÷÷ ÷ ó õ -ß A÷ñ ò�r    