
    9j                     Z    d dl mZ d dlmZ ddlmZ dgZ ed      ded	ed
efd       Zy)    )Any)Proxy   )compatibilityannotateF)is_backward_compatiblevaltypereturnc                     t        | t              rO| j                  j                  r&t	        d| j                  j                   d| d      || j                  _        | S | S )a  
    Annotates a Proxy object with a given type.

    This function annotates a val with a given type if a type of the val is a torch.fx.Proxy object
    Args:
        val (object): An object to be annotated if its type is torch.fx.Proxy.
        type (object): A type to be assigned to a given proxy object as val.
    Returns:
        The given val.
    Raises:
        RuntimeError: If a val already has a type in its node.
    zJTried to annotate a value that already had a type on it! Existing type is z and new type is z. This could happen if you tried to annotate a function parameter value (in which case you should use the type slot on the function signature) or you called annotate on the same value twice)
isinstancer   noder
   RuntimeError)r	   r
   s     Q/media/conek/DATA/Code/OCR/venv/lib/python3.12/site-packages/torch/fx/annotate.pyr   r      sc     #u88==%%(XX]]O 4##'& )34  !CHHM

    N)	typingr   torch.fx.proxyr   _compatibilityr   __all__r
   r    r   r   <module>r      sE       ) , e,# T c  -r   