Ë
    Z^(hz1  ã                  óà   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
Z
d dlmZmZmZmZ e	r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)Údefaultdict)ÚIterable)Ú	dataclass)ÚTYPE_CHECKINGN)Úmerge_debug_infoÚmerge_operator_dictsÚSelectiveBuildOperatorÚstrip_operator_overload_name)ÚNativeFunctionT)Úfrozenc                  ó  — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   d
ed<   ded<   edd„«       Zedd„«       Zedd„«       Zedd„«       Ze	 	 	 	 	 	 	 	 d d„«       Z	d!d„Z
d"d„Zd!d„Zd"d„Zd!d„Zd#d„Zd$d„Zd%d„Zy)&ÚSelectiveBuilderÚboolÚinclude_all_operatorsztuple[str, ...] | NoneÚ_debug_infoz!dict[str, SelectiveBuildOperator]Ú	operatorsúdict[str, list[str]]Úkernel_metadataÚet_kernel_metadataúset[str]Úcustom_classesÚbuild_featuresÚinclude_all_non_op_selectivesc                 ó0   — t         j                  ddi«      S )Nr   T©r   Úfrom_yaml_dict© ó    ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torchgen/selective_build/selector.pyÚget_nop_selectorz!SelectiveBuilder.get_nop_selectorF   s   € ä×.Ñ.Ð0GÈÐ/NÓOÐOr   c           
     óJ  — h d£}t        | j                  «       «      }t        ||z
  «      dkD  r,t        dj	                  dj                  ||z
  «      «      «      ‚| j                  dd«      }t        |t        «      sJ ‚d }d| v r)| d   }t        |t        «      sJ ‚t        d„ |D «       «      }i }| j                  d	i «      }t        |t        «      sJ ‚|j                  «       D ]  \  }}	t        j                  ||	«      ||<   Œ  i }
| j                  d
i «      }t        |t        «      sJ ‚|j                  «       D ]*  \  }}	|	D �cg c]  }t        |«      ‘Œ c}|
t        |«      <   Œ, | j                  di «      }t        |t        «      sJ ‚| j                  dg «      }t        |t         «      sJ ‚t        |«      }| j                  dg «      }t        |t         «      sJ ‚t        |«      }| j                  dd«      }t        |t        «      sJ ‚t#        ||||
||||«      S c c}w )N>   r   Ú
debug_infor   r   r   r   r   r   r   z!Got unexpected top level keys: {}ú,r   Fr#   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Ústr)Ú.0Úxs     r    ú	<genexpr>z2SelectiveBuilder.from_yaml_dict.<locals>.<genexpr>e   s   è ø€ Ò7¨!œs 1ŸvÑ7ùs   ‚r   r   r   r   r   r   )ÚsetÚkeysÚlenÚ	ExceptionÚformatÚjoinÚgetÚ
isinstancer   ÚlistÚtupleÚdictÚitemsr
   r   r'   r   r   )ÚdataÚvalid_top_level_keysÚtop_level_keysr   r#   Údi_listr   Úoperators_dictÚkÚvr   Úkernel_metadata_dictÚdtyper   r   r   r   s                    r    r   zSelectiveBuilder.from_yaml_dictJ   s@  € ò	 
Ðô ˜TŸY™Y›[Ó)ˆÜˆ~Ð 4Ñ4Ó5¸Ò9ÜØ3×:Ñ:Ø—H‘H˜^Ð.BÑBÓCóóð ð
 !%§¡Ð)@À%Ó HÐÜÐ/´Ô6Ð6Ð6àˆ
Ø˜4ÑØ˜<Ñ(ˆGÜ˜g¤tÔ,Ð,Ð,äÑ7¨wÔ7Ó7ˆJàˆ	ØŸ™ +¨rÓ2ˆÜ˜.¬$Ô/Ð/Ð/à"×(Ñ(Ó*ò 	G‰DˆAˆqÜ1×@Ñ@ÀÀAÓFˆI�aŠLð	Gð ˆØ#Ÿx™xÐ(9¸2Ó>ÐÜÐ.´Ô5Ð5Ð5à(×.Ñ.Ó0ò 	B‰DˆAˆqØ?@Ö&A°e¤s¨5¥zÒ&AˆOœC ›FÒ#ð	Bð "ŸX™XÐ&:¸BÓ?ÐÜÐ,¬dÔ3Ð3Ð3àŸ™Ð"2°BÓ7ˆÜ˜.¬(Ô3Ð3Ð3Ü˜^Ó,ˆàŸ™Ð"2°BÓ7ˆÜ˜.¬(Ô3Ð3Ð3Ü˜^Ó,ˆà(,¯©Ð1PÐRWÓ(XÐ%ÜÐ7¼Ô>Ð>Ð>äØ!ØØØØØØØ)ó	
ð 		
ùò! 'Bs   ÅH c                óV   — t        j                  | «      }t        j                  |«      S r&   )ÚyamlÚ	safe_loadr   r   )Úconfig_contentsÚcontentss     r    Úfrom_yaml_strzSelectiveBuilder.from_yaml_strŽ   s!   € ä—>‘> /Ó2ˆÜ×.Ñ.¨xÓ8Ð8r   c                ó˜   — t        | «      5 }t        j                  |«      }t        j	                  |«      cd d d «       S # 1 sw Y   y xY wr&   )ÚopenrA   rB   r   r   )Úconfig_pathÚfrD   s      r    Úfrom_yaml_pathzSelectiveBuilder.from_yaml_path“   s=   € ä�+Óð 	= !Ü—~‘~ aÓ(ˆHÜ#×2Ñ2°8Ó<÷	=÷ 	=ò 	=ús   Œ*A Á A	c                óX   — i }| D ]  }|||ddœ||<   Œ t         j                  |ddœ«      S )NT)ÚnameÚis_root_operatorÚis_used_for_trainingÚinclude_all_overloads)r   r   r   )Ú
allow_listrM   rN   r   Úops        r    Ú&from_legacy_op_registration_allow_listz7SelectiveBuilder.from_legacy_op_registration_allow_list™   sO   € ð ˆ	Øò 	ˆBàØ$4Ø(<Ø)-ñ	ˆI�bŠMð	ô  ×.Ñ.à&Ø15ñó
ð 	
r   c                ó¢   — | j                   ry|| j                  v ryt        |«      }|| j                  v xr | j                  |   j                  S ©NT)r   r   r   rO   )ÚselfrL   s     r    Úis_operator_selectedz%SelectiveBuilder.is_operator_selected¬   sJ   € Ø×%Ò%Øà�4—>‘>Ñ!ØÜ+¨DÓ1ˆØ�t—~‘~Ð%ÒT¨$¯.©.¸Ñ*>×*TÑ*TÐTr   c                ó:   — t        |«      }| j                  |«      S r&   )Úop_name_from_native_functionrV   ©rU   ÚfuncÚop_names      r    Úis_native_function_selectedz,SelectiveBuilder.is_native_function_selectedµ   s   € Ü.¨tÓ4ˆØ×(Ñ(¨Ó1Ð1r   c                óB  — | j                  |«      sy| j                  ryt        ddddd ¬«      }|}|| j                  v r| j                  |   }t	        |«      }|}|| j                  v r| j                  |   }|j
                  xs |j                  xr |j
                  S )NFTÚ )rL   rM   rN   rO   r   )rV   r   r
   r   r   rN   rO   )rU   rL   Únot_training_oprQ   Úbase_ops        r    Ú!is_operator_selected_for_trainingz2SelectiveBuilder.is_operator_selected_for_training¹   s©   € Ø×(Ñ(¨Ô.ØØ×%Ò%Øä0ØØ"Ø!&Ø"'Øô
ˆð ˆØ�4—>‘>Ñ!Ø—‘ Ñ%ˆBä+¨DÓ1ˆØ!ˆØ�4—>‘>Ñ!Ø—n‘n TÑ*ˆGà×&Ñ&ò 
Ø×)Ñ)ÒJ¨g×.JÑ.Jð	
r   c                ó:   — t        |«      }| j                  |«      S r&   )rX   ra   rY   s      r    Ú(is_native_function_selected_for_trainingz9SelectiveBuilder.is_native_function_selected_for_trainingÓ   s   € Ü.¨tÓ4ˆØ×5Ñ5°gÓ>Ð>r   c                ó  — | j                  |«      sy| j                  ry|| j                  v r| j                  |   }|j                  S t	        |«      }|| j                  vry| j                  |   }|j
                  xr |j                  S )NFT)rV   r   r   rM   r   rO   )rU   rL   rQ   r`   s       r    rM   z!SelectiveBuilder.is_root_operator×   sƒ   € Ø×(Ñ(¨Ô.ØØ×%Ò%Øà�4—>‘>Ñ!Ø)-¯©¸Ñ)=ˆBØ×&Ñ&Ð&Ü+¨DÓ1ˆØ�t—~‘~Ñ%ØØ*.¯.©.¸Ñ*>ˆØ×,Ñ,ÒI°×1IÑ1IÐIr   c                óv   — | j                   s| j                  ry|| j                  v xr || j                  |   v S rT   )r   r   r   )rU   Ú
kernel_tagr?   s      r    Úis_kernel_dtype_selectedz)SelectiveBuilder.is_kernel_dtype_selectedæ   sC   € Ø×%Ò%¨×)KÒ)KØð ˜$×.Ñ.Ð.ò :Ø˜×-Ñ-¨jÑ9Ð9ð	
r   c                óp  — || j                   vr| j                  r|S g S t        «       }| j                   |   D ]r  }d}|D ]F  }|dk7  sŒ	|j                  d«      d   |j                  d«      d   k(  sŒ3|j	                  |«       d} n |rŒSd|vrt        d«      ‚|j	                  d«       Œt t        |«      S )zF
        Return a list of kernel keys that cover the used ops
        FÚdefaultú/é   TzMissing kernel for the model)r   r   r+   ÚsplitÚaddr.   r3   )rU   r[   Ú
kernel_keyÚ
result_setÚmodel_kernel_keysÚ	key_foundÚkeys          r    Úet_get_selected_kernelsz(SelectiveBuilder.et_get_selected_kernelsï   sÓ   € ð
 ˜$×1Ñ1Ñ1Ø!%×!;Ò!;�:ÐCÀÐCô “Uˆ
à!%×!8Ñ!8¸Ñ!Aò 	.ÐØˆIØ!ò �ð ˜9Ó$ØŸ	™	 #› qÑ)Ð->×-DÑ-DÀSÓ-IÈ!Ñ-LÓLà—N‘N 3Ô'Ø $�IÙðò Ø JÑ.Ü#Ð$BÓCÐCà—N‘N 9Õ-ð	.ô" �JÓÐr   c                óö  — | j                   | j                  dœ}i }| j                  j                  «       D ]  \  }}|j	                  «       ||<   Œ ||d<   | j
                  �t        | j
                  «      |d<   | j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}|d<   | j                  |d<   t        | j                  «      |d<   t        | j                  «      |d<   |S c c}}w )N)r   r   r   r#   r   r   r   r   )r   r   r   r6   Úto_dictr   Úsortedr   r   r   r   )rU   Úretr   r[   rQ   r<   r=   s          r    ru   zSelectiveBuilder.to_dict  sþ   € à-1×-OÑ-OØ%)×%?Ñ%?ñ"
ˆð ˆ	ØŸ>™>×/Ñ/Ó1ò 	.‰KˆG�RØ!#§¡£ˆI�gÒð	.à$ˆˆKÑà×ÑÐ'Ü & t×'7Ñ'7Ó 8ˆC�Ñð (,×';Ñ';×'AÑ'AÓ'C÷"
Ù#˜a ˆAŒv�a‹y‰Ló"
ˆÐÑð %)×$;Ñ$;ˆÐ Ñ!ä & t×':Ñ':Ó ;ˆÐÑä & t×':Ñ':Ó ;ˆÐÑàˆ
ùó"
s   ÂC5N)Úreturnr   )r7   údict[str, object]rx   r   )rC   r'   rx   r   )rH   r'   rx   r   )rP   r   rM   r   rN   r   rx   r   )rL   r'   rx   r   )rZ   r   rx   r   )rf   r'   r?   r'   rx   r   )r[   r'   rn   ú	list[str]rx   rz   )rx   ry   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__Ústaticmethodr!   r   rE   rJ   rR   rV   r\   ra   rc   rM   rg   rs   ru   r   r   r    r   r      só   … ð  Óð (Ó'ð 1Ó0ð *Ó)ð
 -Ó,ð
 Óð
 Óð $(Ó'àòPó ðPð òA
ó ðA
ðF ò9ó ð9ð ò=ó ð=ð
 ð
Øð
Ø04ð
ØLPð
à	ò
ó ð
ó$Uó2ó
ó4?óJó
ó ô<r   r   c                óÜ   — i }t        | j                  «       «      t        |j                  «       «      z   D ]3  \  }}t        |«      }||v r|t        ||   «      z  }t        |«      ||<   Œ5 |S r&   )r3   r6   r+   )ÚlhsÚrhsr   Útag_nameÚdtypesÚdtypes_copys         r    Úmerge_kernel_metadatar†   '  st   € ð -/€OÜ  §¡£Ó-´°S·Y±Y³[Ó0AÑAò 6Ñˆ�&Ü˜&“kˆØ�Ñ&Øœ3˜¨xÑ8Ó9Ñ9ˆKä$(¨Ó$5ˆ˜Ò!ð6ð Ðr   c                ó†  — t        t        «      }t        | j                  «       «      t        |j                  «       «      z   D ]J  }||   j	                  | j                  |g «      «       ||   j	                  |j                  |g «      «       ŒL |j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}S c c}}w r&   )r   r+   r3   r,   Úupdater1   r6   rv   )r�   r‚   Úmerge_et_kernel_metadatarQ   Úvals        r    r‰   r‰   6  s    € ô 5@ÄÓ4DÐÜ�3—8‘8“:Ó¤ c§h¡h£jÓ!1Ñ1ò =ˆØ  Ñ$×+Ñ+¨C¯G©G°B¸«OÔ<Ø  Ñ$×+Ñ+¨C¯G©G°B¸«OÕ<ð=ð ,D×+IÑ+IÓ+K×L¡  CˆB”�s“‰OÓLÐLùÓLs   Â#B=c           
     ó"  — | j                   xs |j                   }t        | j                  |j                  «      }t        | j                  |j                  «      }t        | j                  |j                  «      }t        | j                  |j                  «      }| j                  xs |j                  }| j                  j                  |j                  «      }| j                  j                  |j                  «      }	t        |||||||	|«      S r&   )r   r   r   r	   r   r†   r   r‰   r   r   r   Úunionr   r   )
r�   r‚   r   r#   r   r   r   r   r   r   s
             r    Úcombine_selective_buildersr�   B  sñ   € ð  ×5Ñ5ÒR¸×9RÑ9RÐÜ! #§/¡/°3·?±?ÓC€JÜ$ S§]¡]°C·M±MÓB€IÜ+¨C×,?Ñ,?À×ATÑATÓU€OÜ1Ø×Ñ × 6Ñ 6óÐð 	×)Ñ)ÒN¨S×-NÑ-Nð "ð ×'Ñ'×-Ñ-¨c×.@Ñ.@ÓA€NØ×'Ñ'×-Ñ-¨c×.@Ñ.@ÓA€NÜØØØØØØØØ%ó	ð 	r   c                óL   — | j                   › d| j                  j                  › �S )Nz::)Ú	namespacerZ   rL   )rI   s    r    rX   rX   ]  s!   € ð �k‰kˆ]˜"˜QŸV™VŸ[™[˜MÐ*Ð*r   )r�   r   r‚   r   rx   r   )r�   r   r‚   r   rx   r   )rI   r   rx   r'   )Ú
__future__r   Úcollectionsr   Úcollections.abcr   Údataclassesr   Útypingr   rA   Ú!torchgen.selective_build.operatorr   r	   r
   r   Útorchgen.modelr   r   r†   r‰   r�   rX   r   r   r    ú<module>r—      s¯   ðÝ "å #Ý $Ý !Ý  ã ÷ó ñ Ý-ñ �$Ô÷Fð Fó ðFðRØ	ðà	ðð óð	MØ	ð	Mà	ð	Mð ó	MðØ	ðØ 0ðàóô6+r   