
    ȅ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      V/home/james-whalen/.local/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     94?"6q"??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/    
ll!		{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#    !#nnS!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##!DII;&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||$$clc##!DII;&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&    1J$.:c 7C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"      
CS41M! 566CSs   )r=   rG   rH   shapenumelndimsqueezerP   r   copy_r+   listtypezipAssertionError)outresultr_   can_fits     ` r   r\   r\      s    
{	FELL	)	)<<399$lln);chh!mG$) =cii[,V\\N!=  	

 
	FUDM	*	*F| 
CFsCS
 
 	
 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!l1oovr*   )r   r<   r=   rG   rH   r+   rf   rg   )rk   r<   s     r   ro   ro      sJ    !&%,,''v	FUDM	*	*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[+        XT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!      )CIC (22)Cs   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   wrapped5normalizer.<locals>.normalizer_inner.<locals>.wrapped   s   ##D)C^^FtFMMO45K 7#4#4#C#CCEIJTc9TJ  ),T==?)C  3v}}/12	3  "&!-ID FNoc$<8PSS!-  
 4(4(F JV#z(:(E(E(S XXt4t4>>
>>*e44 "!WF%>>&1D"11&LF %!$4!84!8!B!BJ nnU+&s4IJ!&)FMO 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]   ` "       * * NN;'		c5'4/	0LLF!23 NN;'	>>*%
..
#~~n->>*% >>*%^^ 8 8 
)3@=
	  &783#J*, *#3/ 80 %* 8'E 8'r   