Ë
    ÄÓ^jŽ	  ã                  óø   — U d dl mZ d dlmZ d dlmZ erd dlmZmZm	Z	 d dlm
Z
 ddlmZ ddlmZ  e«       Zd	ed
<   eZ G d„ d«      Zdd„Zdd„Z ee«      dd„«       Ze  ee«      dd„«       Zedd„«       Zy)é    )Úannotations)Úcontextmanager)ÚTYPE_CHECKING)ÚCallableÚ	GeneratorÚHashable)ÚLiteralé   )Údispatch)Úhashablezset[Hashable]Ú_global_logic_variablesc                  ó8   — e Zd ZdZdZdd„Zd	d„ZeZd
d„Zdd„Z	y)ÚVarzLogic Variabler
   c                óÚ   — t        |«      dk(  r-dt        j                  › �}t        xj                  dz  c_        nt        |«      dk(  r|d   }t        j	                  | «      }||_        |S )Nr   Ú_r
   )Úlenr   Ú_idÚobjectÚ__new__Útoken)Úclsr   Úobjs      úu/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/fx/experimental/unification/variable.pyr   zVar.__new__   sW   € Üˆu‹:˜Š?ØœŸ™�y�MˆEÜ�GŠG�q‰LŽGÜ�‹Z˜1Š_Ø˜!‘HˆEä�n‰n˜SÓ!ˆØˆŒ	Øˆ
ó    c                ó2   — dt        | j                  «      z   S )Nú~)Ústrr   ©Úselfs    r   Ú__str__zVar.__str__#   s   € Ø”S˜Ÿ™“_Ñ$Ð$r   c                ód   — t        | «      t        |«      u xr | j                  |j                  k(  S ©N)Útyper   )r   Úothers     r   Ú__eq__z
Var.__eq__(   s'   € Ü�D‹zœT %›[Ð(ÒF¨T¯Z©Z¸5¿;¹;Ñ-FÐFr   c                óB   — t        t        | «      | j                  f«      S r"   )Úhashr#   r   r   s    r   Ú__hash__zVar.__hash__+   s   € Ü”T˜$“Z §¡Ð,Ó-Ð-r   N)r   r   Úreturnr   )r)   r   )r$   r   r)   Úbool)r)   Úint)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r    Ú__repr__r%   r(   © r   r   r   r      s&   „ Ùà
€Có	ó%ð €HóGô.r   r   c                 ó   — d„ S )Nc                 ó   — t        | Ž S r"   )r   )Úargss    r   ú<lambda>zvar.<locals>.<lambda>0   s
   € œ˜d˜€ r   r1   r1   r   r   Úvarr6   /   s   € Ù#Ð#r   c                 ó   — d„ S )Nc                óN   — t        | «      D �cg c]  }t        «       ‘Œ c}S c c}w r"   )Úranger6   )ÚnÚis     r   r5   zvars.<locals>.<lambda>4   s   € ¤U¨1£XÖ. ”c•eÒ.€ ùÒ.s   Ž"r1   r1   r   r   Úvarsr<   3   s   € Ù.Ð.r   c                 ó   — y)NTr1   )Úvs    r   Úisvarr?   7   s   € àr   c                óN   — t        t        xr t        | «      xr | t        v «      S r"   )r*   Ú_glvr   )Úos    r   r?   r?   ?   s   € ä”Ò2œ !›Ò2¨¬d¨Ó3Ð3r   c               '  ó(  K  — t         j                  «       }t         j                  t        | «      «       	 d–— t         j	                  «        t         j                  |«       y# t         j	                  «        t         j                  |«       w xY w­w)a  
    Context manager for logic variables

    Example:
        >>> # xdoctest: +SKIP("undefined vars")
        >>> from __future__ import with_statement
        >>> with variables(1):
        ...     print(isvar(1))
        True
        >>> print(isvar(1))
        False
        >>> # Normal approach
        >>> from unification import unify
        >>> x = var("x")
        >>> unify(x, 1)
        {~x: 1}
        >>> # Context Manager approach
        >>> with variables("x"):
        ...     print(unify("x", 1))
        {'x': 1}
    N)r   ÚcopyÚupdateÚsetÚclear)Ú	variablesÚold_global_logic_variabless     r   rH   rH   D   sk   è ø€ ô. "9×!=Ñ!=Ó!?ÐÜ×"Ñ"¤3 y£>Ô2ðCÛä×%Ñ%Ô'Ü×&Ñ&Ð'AÕBøô 	 ×%Ñ%Ô'Ü×&Ñ&Ð'AÕBüs   ‚3B¶A$ º*BÁ$+BÂBN)r)   zCallable[..., Var])r)   z)Callable[[int], list[Callable[..., Var]]])r>   r   r)   zLiteral[True])rB   r   r)   r*   )rH   r   r)   zGenerator[None, None, None])Ú
__future__r   Ú
contextlibr   Útypingr   Úcollections.abcr   r   r   r	   r   Úutilsr   rF   r   Ú__annotations__rA   r   r6   r<   r?   r   rH   r1   r   r   ú<module>rP      s–   ðÞ "å %Ý  ñ ß=Ñ=Ýå Ý ñ *-«Ð ˜Ó .Ø€÷.ñ .ó8$ó/ñ 
ˆ#ƒòó ðñ ñ 
ˆ&Óò4ó ð4ð òCó ñCr   