
    h
                     v    S r  SSKrSr SSKrSrSS jrS rSS jr	g! \ a    Sr Nf = f! \ a    Sr N&f = f)	z=
Support for serialization of numpy data types with msgpack.
    NTFc                    [         (       d  Uc  U $ U" U 5      $ [        (       a/  [        U [        R                  5      (       a  U R                  5       n [        U [        R                  5      (       a  U R                  R                  S:X  a  SnU R                  R                  nOSnU R                  R                  nSUUU R                  U R                  S   (       a  U R                  S.$ U R                  5       S.$ [        U [        R                  [        R                   45      (       a$  SU R                  R                  U R                  S.$ [        U ["        5      (       a  SU R%                  5       S	.$ Uc  U $ U" U 5      $ )
z0
Data encoder for serializing numpy data types.
V   V    TC_CONTIGUOUS)   nd   type   kind   shape   dataF)r   r	   r   )   complexr   )	has_numpyhas_cupy
isinstancecupyndarraygetnpdtypekinddescrstrshapeflagsdatatobytesbool_numbercomplex__repr__)objchainr   r   s       V/home/james-whalen/.local/lib/python3.13/site-packages/srsly/msgpack/_msgpack_numpy.pyencode_numpyr$      s,    9ms3s3xJsDLL11ggi#rzz"" 99>>S DIIOOEDIIMMEii!$>!:SXX
 	

 AD
 	
 
C"((BII.	/	/syy}}sxxHH	C	!	! 3<<>::ms3s3r   c                 b    [        U [        5      (       a  U R                  5       $ [        U 5      $ N)r   bytesdecoder   )xs    r#   tostrr*   :   s$    !Uxxz1vr   c                     SU ;   a  U S   SL ax  SU ;   a/  U S   S:X  a&  U S    Vs/ s H  n[        S U 5       5      PM     nnOU S   n[        R                  " U S   [        R                  " U5      S9R	                  U S	   5      $ U S   n[        R                  " U S   [        R                  " U5      S9S
   $ SU ;   a  [        [        U S   5      5      $ Uc  U $ U" U 5      $ s  snf ! [         a    Uc  U s $ U" U 5      s $ f = f)z-
Decoder for deserializing numpy data types.
r   Tr
   r   r	   c              3   `   #    U  H$  n[        U5      [        L a  [        U5      OUv   M&     g 7fr&   )typer'   r*   ).0ts     r#   	<genexpr>decode_numpy.<locals>.<genexpr>N   s$     M1a$q'U*:eAhA1s   ,.r   )r   r   r   r   )tupler   
frombufferr   reshaper   r*   KeyError)r!   r"   dr   s       r#   decode_numpyr7   A   s"   
4C<5zT! c>c'ld&: "%W!-A M1MM!-  E
  LE}}S\%IQQM  G}}S\%I!LL35W.//-37U3Z7   4ms3s34sA   $C+ C&AC+ 3C+ <C+ C+ C+ &C+ +D<DDr&   )
__doc__numpyr   r   ImportErrorr   r   r$   r*   r7    r   r#   <module>r<      s`   IH
4@4e  I  Hs    - **88