
    9i
                     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     I/var/www/icac/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                 p   d | _         t          j        j                            | j                  \  }}|                    d          }t          |          dk    r't          |          dk    sJ 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_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"   sG   -1 "N0@@OO	6S!!u::>>u::???Q&QQQ #??  %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.effect@   s
    |r   c                      t          d          )NzUnable to directly set kernel.)RuntimeError)r   _s     r   r7   zEffectHolder.effectD   s    ;<<<r   r7   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   r6   s   r   deregister_effectz0EffectHolder.register.<locals>.deregister_effectP   s    $$&&&&&r   )r   r   )r   r7   r=   handles   `   r   registerzEffectHolder.registerH   s:     	' 	' 	' 	' 	' $$566r   )r   N)r   r	   r
   __doc__r-   r   r   propertyr   r   r7   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>rF      s                        4 3 3 3 3 3
9 9 9 9 9 9 9 9 9 9r   