ó
    Eñi"  ã                  ó�  • S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
JrJr  \R                  " S5      r\R                  \\\\4   r\R                  \\4   r\R                  " S5      r\R                  " S5      r\R                  " S	5      r\R                  " S
5      r\R                  " S5      r\R                  " S5      r\R                  " S\R8                  S9rS"S jrS"S jrS"S jrS"S jr S"S jr!S"S jr"S r#S"S jr$S"S jr%S"S jr&S"S jr'\\\ \!\\%\&\%\"\$\#\'S.r(S r)S#S jr*S r+\S4S jr,S"SS .S! jjr-g)$zX"Normalize" arguments: convert array_likes to tensors, dtypes to torch dtypes and so on.é    )ÚannotationsNé   )Ú_dtypesÚ_dtypes_implÚ_utilÚ	ArrayLikeÚ	DTypeLikeÚAxisLikeÚNDArrayÚCastingModesÚKeepDimsÚOutArrayÚNotImplementedType)Úboundc                ó2   • SSK Jn  U" U 5      R                  $ )Nr   )Úasarray)Ú_ndarrayr   Útensor)ÚxÚparmr   s      ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_numpy/_normalizations.pyÚnormalize_array_liker   .   s   € Ý!á�1‹:×ÑÐó    c                óR   • [         R                  " U 5      (       a  U $ [        X5      $ ©N)r   Úis_scalar_or_symbolicr   ©r   r   s     r   Únormalize_array_like_or_scalarr   4   s#   € Ü×)Ò)¨!×,Ñ,ØˆÜ Ó(Ð(r   c                ó    • U c  g [        X5      $ r   )r   r   s     r   Ú'normalize_optional_array_like_or_scalarr    :   s   € Ø�yØÜ)¨!Ó2Ð2r   c                ó"   • U c  S $ [        X5      $ r   ©r   r   s     r   Únormalize_optional_array_liker#   @   s   € ð ‘9ˆ4Ð?Ô"6°qÓ"?Ð?r   c                ó&   • [        S U  5       5      $ )Nc              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr   r"   )Ú.0Úvalues     r   Ú	<genexpr>Ú+normalize_seq_array_like.<locals>.<genexpr>G   s   é € Ð<º!°Ô% e×,Ð,º!ùó   ‚)Útupler   s     r   Únormalize_seq_array_liker,   F   s   € ÜÑ<¹!Ó<Ó<Ð<r   c                óT   • S nU b"  [         R                  " U 5      n U R                  nU$ r   )r   ÚdtypeÚtorch_dtype)r.   r   r/   s      r   Únormalize_dtyper0   J   s,   € à€KØÑÜ—’˜eÓ$ˆØ×'Ñ'ˆØÐr   c                óT   • XR                   :w  a  [        SUR                   S35      eg )NÚ'z' parameter is not supported.)ÚdefaultÚNotImplementedErrorÚname©Úargr   s     r   Únormalize_not_implementedr8   S   s/   € Ø
�l‰lÓÜ!Ø�—	‘	ˆ{Ð7Ð8ó
ð 	
ð r   c                ó^   • SSK Jn  [        X5      (       a  [        R                  " U 5      n U $ ©Nr   ©Úndarray)r   r<   Ú
isinstanceÚoperatorÚindex©r7   r   r<   s      r   Únormalize_axis_likerA   Z   s#   € Ý!ä�#×ÑÜ�nŠn˜SÓ!ˆØ€Jr   c                ó‚   • U c  U $ SSK Jn  [        X5      (       d  [        SUR                   S35      eU R
                  $ ©Nr   r;   r2   z' must be an array)r   r<   r=   Ú	TypeErrorr5   r   r@   s      r   Únormalize_ndarrayrE   b   s=   € à
�{Øˆ
å!ä�c×#Ñ#Ü˜!˜DŸI™I˜;Ð&8Ð9Ó:Ð:Ø�:‰:Ðr   c                ó¼   • U c  U $ SSK Jn  [        U [        R                  5      (       a  U" U 5      n [        X5      (       d  [        SUR                   S35      eU $ rC   )r   r<   r=   ÚtorchÚTensorrD   r5   r@   s      r   Únormalize_outarrayrI   n   sT   € à
�{Øˆ
Ý!ô �#”u—|‘|×$Ñ$Ù�c‹lˆä�c×#Ñ#Ü˜!˜DŸI™I˜;Ð&8Ð9Ó:Ð:Ø€Jr   c                ó0   • U S;  a  [        SU  S35      eU $ )N)ÚnoÚequivÚsafeÚ	same_kindÚunsafezMcasting must be one of 'no', 'equiv', 'safe', 'same_kind', or 'unsafe' (got 'z'))Ú
ValueErrorr6   s     r   Únormalize_castingrQ   ~   s.   € Ø
Ð@Ó@ÜØ[Ð\_Ð[`Ð`bÐcó
ð 	
ð €Jr   )r   ÚArrayLikeOrScalarzOptional[ArrayLike]zSequence[ArrayLike]zOptional[ArrayLikeOrScalar]zOptional[NDArray]zOptional[OutArray]r   zOptional[DTypeLike]r
   r   zOptional[CastingModes]c                ób   • [         R                  UR                  5      nU(       a  U" X5      $ U $ )z,Normalize arg if a normalizer is registered.)ÚnormalizersÚgetÚ
annotation)r7   r   Ú
normalizers      r   Úmaybe_normalizerX   –   s&   € ä—‘ §¡Ó1€JÞ$.‰:�cÓ Ð7°CÐ7r   Fc                ó   ^• U c  U$ [        U[        R                  5      (       a¥  UR                  U R                  :w  an  UR	                  5       S:H  =(       a    U R
                  S:H  nT(       a  U(       a  UR                  5       nO&[        SU R                   SUR                   S35      eU R                  R                  U5        U $ [        U[        [        45      (       a$  [        U5      " U4S j[        X5       5       5      $ [        e)Nr   r   z'Bad size of the out array: out.shape = z while result.shape = Ú.c              3  ó@   >#   • U  H  u  p[        XT5      v •  M     g 7fr   )Úmaybe_copy_to)r&   ÚoÚrÚpromote_scalar_results      €r   r(   Ú maybe_copy_to.<locals>.<genexpr>°   s"   øé € ð 
ÚCS¹4¸1ŒM˜!Ð 5×6Ð6ÒCSùs   ƒ)r=   rG   rH   ÚshapeÚnumelÚndimÚsqueezerP   r   Úcopy_r+   ÚlistÚtypeÚzipÚAssertionError)ÚoutÚresultr_   Úcan_fits     ` r   r\   r\   Ÿ   sÛ   ø€ à
�{ØˆÜ	�FœEŸL™L×	)Ñ	)Ø�<‰<˜3Ÿ9™9Ó$Ø—l‘l“n¨Ñ)×;¨c¯h©h¸!©mˆGÞ$®ØŸ™Ó)‘ä Ø=¸c¿i¹i¸[Ø,¨V¯\©\¨N¸!ð=óð ð 	�
‰
×Ñ˜Ô Øˆ
Ü	�FœU¤D˜M×	*Ñ	*Ü�FŒ|ô 
ÜCFÀsÔCSó
ó 
ð 	
ô Ðr   c                óÆ   • SSK Jn  [        U [        R                  5      (       a  U" U 5      $ [        U [
        [        45      (       a  [        U 5      " S U  5       5      n U $ )Nr   r;   c              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr   )Úwrap_tensors)r&   r   s     r   r(   Úwrap_tensors.<locals>.<genexpr>½   s   é € Ð>²v°!œl¨1Ÿo˜o²vùr*   )r   r<   r=   rG   rH   r+   rf   rg   )rk   r<   s     r   ro   ro   ·   sJ   € Ý!ä�&œ%Ÿ,™,×'Ñ'Ù�v‹ÐÜ	�FœU¤D˜M×	*Ñ	*Ü�f”Ñ>±vÓ>Ó>ˆØ€Mr   c                óX   • U(       a  U" U R                  5       5      $ SSKJn  U" U 5      $ r:   )Úitemr   r<   )ÚvaluesÚpy_typeÚreturn_scalarr<   s       r   Úarray_or_scalarrv   Á   s#   € ÞÙ�v—{‘{“}Ó%Ð%å%á�v‹Ðr   )r_   c               ó*   ^• U4S jnU c  U$ U" U 5      $ )Nc                óJ   >^ • [         R                  " T 5      U U4S j5       nU$ )Nc            
     óÞ  >• [         R                  " T5      nUR                  n[        [	        UR                  5       5      5      nUR                  [         R                  R                  :X  a  U  Vs/ s H  n[        XT5      PM     n nOF[        S [        XR                  5       5       5       5      U [        UR                  5       5      S  -   n UR                  5        VVs0 s H  u  peXfU;   a  [        XSU   5      OU_M     nnnT" U 0 UD6nS nSU;   a}  US   R                  S:X  aj  UR                  " U 0 UD6R                   nUR#                  SS5      (       a7  U S   n	UR#                  S5      n
[$        R&                  " XzU	R(                  5      nSU;   a<  Uc  UR                  " U 0 UD6R                   nUR#                  S5      n[+        X·T5      n[-        U5      nU$ s  snf s  snnf )Nc              3  ó<   #   • U  H  u  p[        X5      v •  M     g 7fr   )rX   )r&   r7   r   s      r   r(   ÚHnormalizer.<locals>.normalizer_inner.<locals>.wrapped.<locals>.<genexpr>Û   s!   é € ð â)C™I˜Cô (¨×2Ð2Ú)Cùs   ‚Úkeepdimsr   Fr   Úaxisrj   )ÚinspectÚ	signatureÚ
parametersÚnextÚiterrs   ÚkindÚ	ParameterÚVAR_POSITIONALrX   r+   rh   ÚlenÚitemsrV   ÚbindÚ	argumentsrU   r   Úapply_keepdimsrc   r\   ro   )ÚargsÚkwdsÚsigÚparamsÚfirst_paramr7   r5   rk   Ú
bound_argsr   r}   rj   Úfuncr_   s               €€r   ÚwrappedÚ5normalizer.<locals>.normalizer_inner.<locals>.wrappedÏ   sÔ  ø€ ä×#Ò# DÓ)ˆCØ—^‘^ˆFÜœt F§M¡M£OÓ4Ó5ˆKð ×Ñ¤7×#4Ñ#4×#CÑ#CÓCÙEIÓJÂT¸cœ¨Ö9ÁT�ÐJ�ô ñ ä),¨T·=±=³?Ô)Cóó ð œ3˜vŸ}™}›Ó/Ð1Ð2ñ	3ð ð "&§¡¤ôâ!-‘I�Dð ÀF»N”o c°$©<Ô8ÐPSÒSÙ!-ð ñ ñ
 ˜4Ð( 4Ñ(ˆFð ˆJØ˜VÓ#¨¨zÑ(:×(EÑ(EÈÓ(Sà ŸXšX tÐ4¨tÑ4×>Ñ>�
Ø—>‘> *¨e×4Ñ4ð " !™W�FØ%Ÿ>™>¨&Ó1�DÜ"×1Ò1°&ÀÇÁÓL�Fð ˜‹àÑ%Ø!$§¢¨4Ð!8°4Ñ!8×!BÑ!B�JØ —n‘n UÓ+�Ü& sÐ4IÓJ�Ü! &Ó)ˆFàˆMùòO Kùós   Á2G$Ã#"G))Ú	functoolsÚwraps)r‘   r’   r_   s   ` €r   Únormalizer_innerÚ$normalizer.<locals>.normalizer_innerÎ   s&   ù€ Ü	�Š˜Ó	õ.	ó 
ð.	ð` ˆr   © )Ú_funcr_   r–   s    ` r   rW   rW   Í   s!   ø€ õ2ðh �}ØÐá Ó&Ð&r   r   )F).Ú__doc__Ú
__future__r   r”   r~   r>   ÚtypesÚtypingrG   Ú r   r   r   ÚTypeVarr   ÚUnionÚintÚfloatÚcomplexÚboolÚScalarrR   r	   r
   r   r   r   r   r   r   r   r    r#   r,   r0   r8   rA   rE   rI   rQ   rT   rX   r\   ro   rv   rW   r˜   r   r   Ú<module>r¦      s]  ðñ `å "ã Û Û Û Û ã ç *Ñ *ð �NŠN˜;Ó'€	Ø	�‰�c˜5 '¨4Ð/Ñ	0€Ø—L‘L ¨FÐ!2Ñ3Ð à�NŠN˜;Ó'€	Ø�>Š>˜*Ó%€Ø
�.Š.˜Ó
#€Ø�~Š~˜nÓ-€Ø�>Š>˜*Ó%€ð �>Š>˜*Ó%€à—^’^Ø × 8Ñ 8ñÐ ô
ô)ô3ô@ô=ôò
ôô	ôô ð &Ø7Ø8Ø3Ø#JØ*Ø,Ø Ø*Ø#Ø3Ø/ñ€ò 8ôò0ð %*¸ô ð8'°E÷ 8'r   