§
    ŠŠtjŽ	  ã                  ó$  — 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dS )#é    )Úannotations)Úcontextmanager)ÚTYPE_CHECKING)ÚCallableÚ	GeneratorÚHashable)ÚLiteralé   )Údispatch)Úhashablezset[Hashable]Ú_global_logic_variablesc                  ó:   — e Zd ZdZdZdd„Zdd„ZeZdd„Zdd„Z	dS )ÚVarzLogic Variabler
   Útokenr   Úreturnc                óî   — t          |¦  «        dk    r%dt          j        › �}t          xj        dz  c_        nt          |¦  «        dk    r|d         }t                               | ¦  «        }||_        |S )Nr   Ú_r
   )Úlenr   Ú_idÚobjectÚ__new__r   )Úclsr   Úobjs      úh/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/fx/experimental/unification/variable.pyr   zVar.__new__   sd   € Ýˆu‰:Œ:˜Š?ˆ?Ø!�œ�M�MˆEÝˆGŒG�q‰LˆGŒGˆGÝ�‰ZŒZ˜1Š_ˆ_Ø˜!”HˆEå�nŠn˜SÑ!Ô!ˆØˆŒ	Øˆ
ó    Ústrc                ó0   — dt          | j        ¦  «        z   S )Nú~)r   r   ©Úselfs    r   Ú__str__zVar.__str__#   s   € Ø•S˜œ‘_”_Ñ$Ð$r   Úotherr   Úboolc                ó^   — t          | ¦  «        t          |¦  «        u o| j        |j        k    S ©N)Útyper   )r    r"   s     r   Ú__eq__z
Var.__eq__(   s'   € Ý�D‰zŒz�T %™[œ[Ð(ÐF¨T¬Z¸5¼;Ò-FÐFr   Úintc                óH   — t          t          | ¦  «        | j        f¦  «        S r%   )Úhashr&   r   r   s    r   Ú__hash__zVar.__hash__+   s   € Ý•T˜$‘Z”Z ¤Ð,Ñ-Ô-Ð-r   N)r   r   r   r   )r   r   )r"   r   r   r#   )r   r(   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r!   Ú__repr__r'   r+   © r   r   r   r      sz   € € € € € ØÐà
€Cð	ð 	ð 	ð 	ð%ð %ð %ð %ð €HðGð Gð Gð Gð.ð .ð .ð .ð .ð .r   r   r   úCallable[..., Var]c                 ó   — d„ S )Nc                 ó   — t          | Ž S r%   )r   )Úargss    r   ú<lambda>zvar.<locals>.<lambda>0   s
   € �˜d˜€ r   r1   r1   r   r   Úvarr7   /   s   € Ø#Ð#Ð#r   ú)Callable[[int], list[Callable[..., Var]]]c                 ó   — d„ S )Nc                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó*   — g | ]}t          ¦   «         ‘ŒS r1   )r7   )Ú.0Úis     r   ú
<listcomp>z*vars.<locals>.<lambda>.<locals>.<listcomp>4   s   € Ð.Ð.Ð. •c‘e”eÐ.Ð.Ð.r   )Úrange)Úns    r   r6   zvars.<locals>.<lambda>4   s   € Ð.Ð.¥U¨1¡X¤XÐ.Ñ.Ô.€ r   r1   r1   r   r   ÚvarsrA   3   s   € Ø.Ð.Ð.r   ÚvúLiteral[True]c                ó   — dS )NTr1   )rB   s    r   ÚisvarrE   7   s   € àˆ4r   Úor   r#   c                óZ   — t          t          ot          | ¦  «        o| t          v ¦  «        S r%   )r#   Ú_glvr   )rF   s    r   rE   rE   ?   s$   € å•Ð2� !™œÐ2¨­d¨Ñ3Ô3Ð3r   Ú	variablesr   úGenerator[None, None, None]c               '  ój  K  — t                                ¦   «         }t                                t          | ¦  «        ¦  «         	 dV — t                                ¦   «          t                                |¦  «         dS # t                                ¦   «          t                                |¦  «         w xY 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)rI   Úold_global_logic_variabless     r   rI   rI   D   s    è è € õ. "9×!=Ò!=Ñ!?Ô!?ÐÝ×"Ò"¥3 y¡>¤>Ñ2Ô2Ð2ðCØˆˆˆå×%Ò%Ñ'Ô'Ð'Ý×&Ò&Ð'AÑBÔBÐBÐBÐBøõ 	 ×%Ò%Ñ'Ô'Ð'Ý×&Ò&Ð'AÑBÔBÐBÐBøøøs   ÁA= Á=5B2N)r   r2   )r   r8   )rB   r   r   rC   )rF   r   r   r#   )rI   r   r   rJ   )Ú
__future__r   Ú
contextlibr   Útypingr   Úcollections.abcr   r   r   r	   r   Úutilsr   rN   r   Ú__annotations__rH   r   r7   rA   rE   r   rI   r1   r   r   ú<module>rW      s•  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à %Ð %Ð %Ð %Ð %Ð %Ø  Ð  Ð  Ð  Ð  Ð  ð ð Ø=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØÐÐÐÐÐà Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð *-¨©¬Ð Ð .Ð .Ð .Ñ .Ø€ð.ð .ð .ð .ð .ñ .ô .ð .ð8$ð $ð $ð $ð/ð /ð /ð /ð 
€ˆ#�„ðð ð ñ „ðð €ð 
€ˆ&ÑÔð4ð 4ð 4ñ Ôð4ð ðCð Cð Cñ „ðCð Cð Cr   