Ë
    iKêj¹  ã                   ó>   — d Z ddlmZ ddlmZ ddlmZ ddlmZ d„ Z	y)zó
This module provides tools for working with the :pypi:`dpcontracts` library,
because `combining contracts and property-based testing works really well
<https://hillelwayne.com/talks/beyond-unit-tests/>`_.

It requires ``dpcontracts >= 0.4``.
é    )ÚPreconditionError)Úreject)ÚInvalidArgument)Úproxiesc                 óv   ‡ — t        ‰ d«      st        ‰ j                  › d�«      ‚t        ‰ «      ˆ fd„«       }|S )aÔ  Decorate ``contract_func`` to reject calls which violate preconditions,
    and retry them with different arguments.

    This is a convenience function for testing internal code that uses
    :pypi:`dpcontracts`, to automatically filter out arguments that would be
    rejected by the public interface before triggering a contract error.

    This can be used as ``builds(fulfill(func), ...)`` or in the body of the
    test e.g. ``assert fulfill(func)(*args)``.
    Ú__contract_wrapped_func__z! has no dpcontracts preconditionsc                  óH   •— 	  ‰| i |¤ŽS # t         $ r t        «        Y y w xY w)N)r   r   )ÚargsÚkwargsÚcontract_funcs     €úa/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/extra/dpcontracts.pyÚinnerzfulfill.<locals>.inner*   s,   ø€ ð	Ù  $Ð1¨&Ñ1Ð1øÜ ò 	ÜŽHð	ús   ƒ ‹! !)Úhasattrr   Ú__name__r   )r   r   s   ` r   Úfulfillr      sO   ø€ ô �=Ð"=Ô>ÜØ×%Ñ%Ð&Ð&GÐHó
ð 	
ô ˆ]Óóó ðð €Ló    N)
Ú__doc__Údpcontractsr   Ú
hypothesisr   Úhypothesis.errorsr   Úhypothesis.internal.reflectionr   r   © r   r   ú<module>r      s   ðñõ *å Ý -Ý 2ór   