ó
    ÇÎiï  ã                   ó<   • S r SSKJr  SSKJr  SSKJr  \S 5       rg)z3Standalone context managers for working with spies.é    )Úunicode_literals)Úcontextmanager)Ú	SpyAgencyc               /   ó˜   #   • [        5       nUR                  " U 0 UD6n Uv •  UR                  5         g! UR                  5         f = f7f)a:  Spy on a function.

By default, the spy will allow the call to go through to the original
function. This can be disabled by passing ``call_original=False`` when
initiating the spy. If disabled, the original function will never be
called.

This can also be passed a ``call_fake`` parameter pointing to another
function to call instead of the original. If passed, this will take
precedence over ``call_original``.

The spy will only remain throughout the duration of the context.

See :py:class:`~kgb.spies.FunctionSpy` for more details on arguments.

Args:
    *args (tuple):
        Positional arguments to pass to
        :py:class:`~kgb.spies.FunctionSpy`.

    **kwargs (dict):
        Keyword arguments to pass to
        :py:class:`~kgb.spies.FunctionSpy`.

Context:
    kgb.spies.FunctionSpy:
    The newly-created spy.
N)r   Úspy_onÚunspy)ÚargsÚkwargsÚagencyÚspys       ÚR/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/kgb/contextmanagers.pyr   r   
   s=   é € ô< ‹[€FØ
-Š-˜Ð
( Ñ
(€CðØŠ	à	‰	øˆ	‰	üs   ‚A
 5 ¤A
µAÁA
N)Ú__doc__Ú
__future__r   Ú
contextlibr   Ú
kgb.agencyr   r   © ó    r   Ú<module>r      s%   ðÙ 9å 'å %å  ð ñ#ó ñ#r   