
    9j
                     R    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y)	    )EnumNc                       e Zd ZdZy)
EffectTypeOrderedN)__name__
__module____qualname__ORDERED     V/media/conek/DATA/Code/OCR/venv/lib/python3.12/site-packages/torch/_library/effects.pyr   r      s    Gr   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                   z    e Zd ZdZdefdZddZededz  fd       Z	e	j                  d        Z	d	edz  defd
Zy)EffectHolderz2A holder where one can register an effect impl to.qualnamec                 2    || _         | j                          y N)r   _set_default_effect)selfr   s     r   __init__zEffectHolder.__init__   s    %  "r   returnNc                    d | _         t        j                  j                  j	                  | j
                        \  }}|j                  d      }t        |      dkD  r#t        |      dk7  rt        d| d      |\  }}nd}|dk(  ry | d| }t        j                  j                  ||      t        j                  j                  ||      }|j                  D ]`  }t        |j                  t        j                        s(|j                  j!                         }|t"        v rKt$        j&                  | _          y  y y )	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!   s   *. "NN00@@O	6S!u:>5zQ$%fX-TU   %FHH&;b)88++FH=I XX))&(;F'' chh8"xx||~H</ #-#5#5DL	 Jr   c                     | j                   S r   )r   r   s    r   effectzEffectHolder.effect@   s    ||r   c                     t        d      )NzUnable to directly set kernel.)RuntimeError)r   _s     r   r7   zEffectHolder.effectD   s    ;<<r   r7   c                 6     | _          fd}t        |      }|S )zvRegister an effect

        Returns a RegistrationHandle that one can use to de-register this
        effect.
        c                  &     j                          y r   )r   r6   s   r   deregister_effectz0EffectHolder.register.<locals>.deregister_effectP   s    $$&r   )r   r   )r   r7   r=   handles   `   r   registerzEffectHolder.registerH   s#     	' $$56r   )r   N)r   r   r	   __doc__r-   r   r   propertyr   r7   setterr   r?   r   r   r   r   r      sg    <# #> 
T)   ]]= =zD0 5G r   r   )enumr   r   r   torch._library.utilsr   r.   r   r   r   r   <module>rE      s-       4
: :r   