
    ¯wgm                        d dl mZ d dlmZ  ed       G d d             Z	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 dd	Zdd
Zy)    )annotations)	dataclassT)frozenc                      e Zd ZU ded<   ded<   ded<   ded<   ded<   e	 	 	 	 	 	 dd	       Ze	 	 	 	 dd
       ZddZy)SelectiveBuildOperatorstrnameboolis_root_operatoris_used_for_traininginclude_all_overloadstuple[str, ...] | None_debug_infoc           
     R   h d}t        t        |j                               |z
        dkD  rCt        dj	                  dj                  t        |j                               |z
                    d|v r
| |d   k(  sJ |j                  dd      }t        |t              sJ |j                  dd      }t        |t              sJ |j                  d	d      }t        |t              sJ d }d
|v r)|d
   }t        |t              sJ t        d |D              }t        | ||||      S )N>   r	   
debug_infor   r   r   r   z!Got unexpected top level keys: {},r	   r   Tr   r   r   c              3  2   K   | ]  }t        |        y wN)r   ).0xs     f/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torchgen/selective_build/operator.py	<genexpr>z8SelectiveBuildOperator.from_yaml_dict.<locals>.<genexpr>W   s     7!s1v7s   r	   r   r   r   r   )lensetkeys	Exceptionformatjoinget
isinstancer
   listtupler   )op_nameop_infoallowed_keysr   r   r   r   di_lists           r   from_yaml_dictz%SelectiveBuildOperator.from_yaml_dict4   s7   
 s7<<>"\12Q63::HHS0<?@  Wgfo---";;'94@*D111&{{+A4H.555 ',CT J/666-1
7"l+Ggt,,,7w77J%-!5"7"
 	
    c                "    t        | dddd       S )NTr   )r   )r	   s    r   *from_legacy_operator_name_without_overloadzASelectiveBuildOperator.from_legacy_operator_name_without_overloada   s      &!!%"&
 	
r)   c                    | j                   | j                  | j                  d}| j                  | j                  |d<   |S )N)r   r   r   r   )r   r   r   r   )selfrets     r   to_dictzSelectiveBuildOperator.to_dictm   sG     $ 5 5$($=$=%)%?%?"

 ' $ 0 0C
r)   N)r$   r   r%   dict[str, object]returnr   )r	   r   r1   r   )r1   r0   )__name__
__module____qualname____annotations__staticmethodr(   r+   r/    r)   r   r   r      s}     I     ('*
*
0*
	*
 *
X 	
	
		
 	
	r)   r   c                J    | |y t        t        | xs d|xs dz               S )Nr7   )r#   r   lhsrhss     r   merge_debug_infor<   y   s-    
 {s{ciRCI2./00r)   c           
        t        | j                        t        |j                        k7  r8t        dt        | j                         dt        |j                         d      t        | j                  | j                  xs |j                  | j
                  xs |j
                  | j                  xs |j                  t        | j                  |j                              S )Nz8Expected both arguments to have the same name, but got 'z' and 'z	' insteadr   )	r   r	   r   r   r   r   r   r<   r   r9   s     r   combine_operatorsr>      s     388}CHH%Fs388}oU\]`adaiai]j\kktu
 	
 "XX --E1E1E !55Q9Q9Q!77T3;T;T$S__cooF r)   c                    i }t        | j                               t        |j                               z   D ]  \  }}|}||v rt        ||   |      }|||<   ! |S r   )r"   itemsr>   )r:   r;   	operatorsr$   opnew_ops         r   merge_operator_dictsrD      sg     46ICIIK(4		+<< $i&y'92>F#	'$ r)   c                *    | j                  d      d   S )N.r   )split)r$   s    r   strip_operator_overload_namerH      s    ==a  r)   N)r:   r   r;   r   r1   r   )r:   r   r;   r   r1   r   )r:   !dict[str, SelectiveBuildOperator]r;   rI   r1   rI   )r$   r   r1   r   )	
__future__r   dataclassesr   r   r<   r>   rD   rH   r7   r)   r   <module>rL      s    " ! $i i iX1	1	1 1	&<.	*	* '!r)   