
    /j                     l    d dl mZ d dlmZ d dlZ G d de          Zd dlmZ dZ G d d	          Z	dS )
    )Enum)OptionalNc                       e Zd ZdZdS )
EffectTypeOrderedN)__name__
__module____qualname__ORDERED     [/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/torch/_library/effects.pyr   r      s        GGGr   r   )RegistrationHandle)z8__torch__.torch.classes.quantized.Conv2dPackedParamsBasez8__torch__.torch.classes.quantized.Conv3dPackedParamsBasez;__torch__.torch.classes.quantized.EmbeddingPackedParamsBasez8__torch__.torch.classes.quantized.LinearPackedParamsBasez/__torch__.torch.classes.xnnpack.Conv2dOpContextz/__torch__.torch.classes.xnnpack.LinearOpContextz8__torch__.torch.classes.xnnpack.TransposeConv2dOpContextc                       e Zd ZdZdefdZddZedee	         fd            Z
e
j        d             Z
d	ee	         defd
ZdS )EffectHolderz2A holder where one can register an effect impl to.qualnamec                 <    || _         |                                  d S N)r   _set_default_effect)selfr   s     r   __init__zEffectHolder.__init__   s!    %  """""r   returnNc                 z   d | _         t          j        j                            | j                  \  }}|                    d          }t          |          dk    r,t          |          dk    rt          d| d          |\  }}nd}|dk    rd S | d| }t          j	        
                    ||          t          j	                            ||          }|j        D ]Z}t          |j        t          j                  r7|j                                        }|t"          v rDt$          j        | _          d S Yd S d S )	N.      zTried to split z' based on '.' but found more than 1 '.' higher_orderz::)_effecttorch_libraryutilsparse_namespacer   splitlenAssertionError_C_get_operation_overload_get_schema	arguments
isinstancetype	ClassTypestrskip_classesr   r   )r   	namespaceopnamer$   overloadschemaargtype_strs           r   r   z EffectHolder._set_default_effect"   sN   -1 "N0@@OO	6S!!u::>>5zzQ$UfUUU    %FHHH&&F))))8++FH==I X))&(;;F'  ch88 "x||~~H<// #-#5DLFF JI r   c                     | j         S r   )r   r   s    r   effectzEffectHolder.effectA   s
    |r   c                      t          d          )NzUnable to directly set kernel.)RuntimeError)r   _s     r   r8   zEffectHolder.effectE   s    ;<<<r   r8   c                 >     | _          fd}t          |          }|S )zvRegister an effect

        Returns a RegistrationHandle that one can use to de-register this
        effect.
        c                  0                                       d S r   )r   r7   s   r   deregister_effectz0EffectHolder.register.<locals>.deregister_effectQ   s    $$&&&&&r   )r   r   )r   r8   r>   handles   `   r   registerzEffectHolder.registerI   s:     	' 	' 	' 	' 	' $$566r   )r   N)r   r	   r
   __doc__r.   r   r   propertyr   r   r8   setterr   r@   r   r   r   r   r      s        <<# # # # #   > ,    X ]= = ]=x
3 8J      r   r   )
enumr   typingr   r    r   torch._library.utilsr   r/   r   r   r   r   <module>rG      s                        4 3 3 3 3 3
: : : : : : : : : :r   