Ë
    7^(h  ã                   óD   — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 dd„Z
y)	z5 Functions to support rewriting of SymPy expressions é    )ÚExpr)Úask)Úsubs)ÚrebuildÚunifyNc                 ó$   ‡ ‡‡‡‡— dˆˆˆ ˆˆfd„	}|S )aÜ   Rewrite rule.

    Transform expressions that match source into expressions that match target
    treating all ``variables`` as wilds.

    Examples
    ========

    >>> from sympy.abc import w, x, y, z
    >>> from sympy.unify.rewrite import rewriterule
    >>> from sympy import default_sort_key
    >>> rl = rewriterule(x + y, x**y, [x, y])
    >>> sorted(rl(z + 3), key=default_sort_key)
    [3**z, z**3]

    Use ``condition`` to specify additional requirements.  Inputs are taken in
    the same order as is found in variables.

    >>> rl = rewriterule(x + y, x**y, [x, y], lambda x, y: x.is_integer)
    >>> list(rl(z + 3))
    [3**z]

    Use ``assume`` to specify additional requirements using new assumptions.

    >>> from sympy.assumptions import Q
    >>> rl = rewriterule(x + y, x**y, [x, y], assume=Q.integer(x))
    >>> list(rl(z + 3))
    [3**z]

    Assumptions for the local context are provided at rule runtime

    >>> list(rl(w + z, Q.integer(z)))
    [z**w]
    c           
   3   ó(  •K  — t        ‰| i ‰	¬«      D ]v  }‰r$ ‰‰	D �cg c]  }|j                  ||«      ‘Œ c}Ž sŒ)‰rt        ‰j                  |«      |«      sŒG t	        |«      ‰«      }t        |t        «      rt        |«      }|–— Œx y c c}w ­w)N)Ú	variables)r   Úgetr   Úxreplacer   Ú
isinstancer   r   )
ÚexprÚassumptionsÚmatchÚvarÚexpr2ÚassumeÚ	conditionÚsourceÚtargetr
   s
        €€€€€úQ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/unify/rewrite.pyÚ
rewrite_rlzrewriterule.<locals>.rewrite_rl,   sˆ   øè ø€ Ü˜6 4¨°yÔAò 		ˆEÙÙ¸yÖI¸ §	¡	¨#¨sÕ 3ÒIÑJØÙœs 6§?¡?°5Ó#9¸;ÔGØØ”D˜“K Ó'ˆEÜ˜%¤Ô&Ü ›�Ø‹Kñ		ùâIùs   ƒBžB
·AB)T© )r   r   r
   r   r   r   s   ````` r   Úrewriteruler      s   ü€ ÷H
ñ 
ð Ðó    )r   NN)Ú__doc__Úsympy.core.exprr   Úsympy.assumptionsr   Úsympy.strategies.toolsr   Úsympy.unify.usympyr   r   r   r   r   r   ú<module>r!      s   ðÙ ;å  Ý !Ý 'ß -ô/r   