
    i
                     ^    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	y)
    )Enum)OptionalNc                       e Zd ZdZy)
EffectTypeOrderedN)__name__
__module____qualname__ORDERED     P/var/www/html/engine/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e	   fd       Z
e
j                  d        Z
d	ee	   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                 x   d | _         t        j                  j                  j	                  | j
                        \  }}|j                  d      }t        |      dkD  rt        |      dk(  sJ 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_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   -1 "NN00@@O	6S!u:>u:? !&)PQ?  %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   r   r7   setterr   r?   r   r   r   r   r      sg    <# #< ,   ]]= =x
3 8J r   r   )
enumr   typingr   r    r   torch._library.utilsr   r.   r   r   r   r   <module>rF      s0        4
9 9r   