Ë
    âQ(hR  ã                   óä  — d Z ddlZddlZddlZddlmZ ddlZddlZ	ddl
mZmZmZmZmZmZmZ ddlmZmZ ddlmZ g d¢Zej0                  d	k(  ZdZdZd
ZdZdZdZededededededdg d¢ddiZ eeeeeeeeeeedœZ!dZ"dZ#d
Z$ddddddœZ%e"de#de$d iZ& ejN                  ejP                  «      jR                  Z* G d!„ d"«      Z+ G d#„ d$«      Z, G d%„ d&e«      Z-d,d'„Z. G d(„ d)«      Z/ G d*„ d+«      Z0y)-z1 Classes for read / write of matlab (TM) 4 files
é    N)Úmulé   )ÚMatFileReaderÚ	docfillerÚmatdimsÚ
read_dtypeÚconvert_dtypesÚarr_to_charsÚarr_dtype_number)Úsqueeze_elementÚchars_to_strings)Úreduce)ÚMatFile4ReaderÚMatFile4WriterÚSYS_LITTLE_ENDIANÚ
VarHeader4Ú
VarReader4Ú
VarWriter4Ú	arr_to_2dÚmclass_infoÚmdtypes_templateÚmiDOUBLEÚmiINT16ÚmiINT32ÚmiSINGLEÚmiUINT16ÚmiUINT8ÚmxCHAR_CLASSÚmxFULL_CLASSÚmxSPARSE_CLASSÚnp_to_mtypesÚorder_codesÚlittleé   é   é   é   Úf8Úf4Úi4Úi2Úu2Úu1Úheader))Úmoptr*   )Úmrowsr*   )Úncolsr*   )Úimagfr*   )Únamlenr*   ÚU1)r(   Úc32Úc24Úc16r)   Úc8r*   r+   r,   r-   ÚS1ú<ú>zVAX D-floatzVAX G-floatÚCray)r   r   r$   r%   r&   ÚdoubleÚcharÚsparsec                   ó   — e Zd ZdZdZd„ Zy)r   Fc                 óJ   — || _         || _        || _        || _        || _        y ©N)ÚnameÚdtypeÚmclassÚdimsÚ
is_complex)ÚselfrC   rD   rE   rF   rG   s         úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/io/matlab/_mio4.pyÚ__init__zVarHeader4.__init__^   s'   € ð ˆŒ	ØˆŒ
ØˆŒØˆŒ	Ø$ˆ�ó    N)Ú__name__Ú
__module__Ú__qualname__Ú
is_logicalÚ	is_globalrJ   © rK   rI   r   r   Y   s   „ à€JØ€Ió
%rK   r   c                   óD   — e Zd ZdZd„ Zd„ Zdd„Zdd„Zd„ Zd„ Z	d„ Z
d	„ Zy
)r   z" Class to read matlab 4 variables c                 óš   — || _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        y rB   )Úfile_readerÚ
mat_streamÚdtypesÚchars_as_stringsÚ
squeeze_me)rH   rT   s     rI   rJ   zVarReader4.__init__n   s?   € Ø&ˆÔØ%×0Ñ0ˆŒØ!×(Ñ(ˆŒØ +× <Ñ <ˆÔØ%×0Ñ0ˆ�rK   c                 ó$  — t        | j                  | j                  d   «      }| j                  j                  t	        |d   «      «      j                  d«      }|d   dk  s|d   dkD  rt        d«      ‚t        |d   d«      \  }}|d	vr't        j                  d
t        |   › d�t        d¬«       t        |d«      \  }}|dk7  rt        d«      ‚t        |d«      \  }}|}|d   |d   f}|d   dk(  }	| j                  |   }
t        ||
|||	«      S )z% Read and return header for variable r.   r3   ó    r/   r   éˆ  z.Mat 4 mopt wrong format, byteswapping problem?éè  )r   r   z!We do not support byte ordering 'z'; returned data may be corruptr%   )Ú
stackleveléd   z,O in MOPT integer should be 0, wrong format?é
   r0   r1   r2   r   )r   rU   rV   ÚreadÚintÚstripÚ
ValueErrorÚdivmodÚwarningsÚwarnr"   ÚUserWarningr   )rH   ÚdatarC   ÚMÚrestÚOÚPÚTrF   rG   rD   s              rI   Úread_headerzVarReader4.read_headeru   s,  € ä˜$Ÿ/™/¨4¯;©;°xÑ+@ÓAˆØ�‰×#Ñ#¤C¨¨X©Ó$7Ó8×>Ñ>¸wÓGˆØ�‰<˜!Ò˜t F™|¨dÒ2ÜÐMÓNÐNÜ˜˜f™ tÓ,‰ˆˆ4Ø�F‰?Ü�M‰MÐ=¼kÈ!¹nÐ=Mð N:ð :ä%°!õ5ô ˜˜sÓ#‰ˆˆ4Ø�Š6ÜÐKÓLÐLÜ˜˜rÓ"‰ˆˆ4ØˆØ�W‘˜t G™}Ð-ˆØ˜'‘] aÑ'ˆ
Ø—‘˜A‘ˆÜØØØØØóð 	rK   c                 ó>  — |j                   }|t        k(  r| j                  |«      }n\|t        k(  r+| j	                  |«      }|r@| j
                  r4t        |«      }n(|t        k(  r| j                  |«      S t        d|› �«      ‚|r| j                  rt        |«      S |S )NúNo reader for class code )rE   r   Úread_full_arrayr   Úread_char_arrayrW   r   r    Úread_sparse_arrayÚ	TypeErrorrX   r   )rH   ÚhdrÚprocessrE   Úarrs        rI   Úarray_from_headerzVarReader4.array_from_header�   s•   € Ø—‘ˆØ”\Ò!Ø×&Ñ& sÓ+‰CØ”|Ò#Ø×&Ñ& sÓ+ˆCÙ˜4×0Ò0Ü& sÓ+‘Ø”~Ò%à×)Ñ)¨#Ó.Ð.äÐ7¸°xÐ@ÓAÐAÙ�t—’Ü" 3Ó'Ð'Øˆ
rK   c                 óü  — |j                   }t        t        |j                  t	        j
                  |j                  «      «      }|t        kD  r(t        d|j                  j                  d«      › d�«      ‚| j                  j                  |«      }t        |«      |k7  r(t        d|j                  j                  d«      › d�«      ‚t	        j                  |j                  ||d¬«      }|r|j                  «       }|S )aì   Mat4 read using header `hdr` dtype and dims

        Parameters
        ----------
        hdr : object
           object with attributes ``dtype``, ``dims``. dtype is assumed to be
           the correct endianness
        copy : bool, optional
           copies array before return if True (default True)
           (buffer is usually read only)

        Returns
        -------
        arr : ndarray
            of dtype given by `hdr` ``dtype`` and shape given by `hdr` ``dims``
        z
Variable 'Úlatin1zL' has byte length longer than largest possible NumPy array on this platform.z!Not enough bytes to read matrix 'zŒ'; is this a badly-formed file? Consider listing matrices with `whosmat` and loading named matrices with `variable_names` kwarg to `loadmat`ÚF)ÚshaperD   ÚbufferÚorder)rD   r   r   rF   ÚnpÚint64ÚitemsizeÚ	_MAX_INTPrc   rC   ÚdecoderU   r`   ÚlenÚndarrayÚcopy)rH   ru   r†   ÚdtÚ	num_bytesr}   rw   s          rI   Úread_sub_arrayzVarReader4.read_sub_array    sí   € ð" �Y‰Yˆäœ3 §¡¬"¯(©(°2·;±;Ó*?Ó@ˆ	Ø”yÒ ÜØ˜SŸX™XŸ_™_¨XÓ6Ð7ð 8Mð NóOð Oð —‘×%Ñ% iÓ0ˆÜˆv‹;˜)Ò#ÜðØ—H‘H—O‘O HÓ-Ð.ð /DðEóFð Fô
 �j‰j˜sŸx™xØ!Ø &Ø"ô$ˆñ Ø—(‘(“*ˆCØˆ
rK   c                 ó˜   — |j                   r.| j                  |d¬«      }| j                  |d¬«      }||dz  z   S | j                  |«      S )aM   Full (rather than sparse) matrix getter

        Read matrix (array) can be real or complex

        Parameters
        ----------
        hdr : ``VarHeader4`` instance

        Returns
        -------
        arr : ndarray
            complex array if ``hdr.is_complex`` is True, otherwise a real
            numeric array
        F)r†   y              ð?)rG   r‰   )rH   ru   ÚresÚres_js       rI   rq   zVarReader4.read_full_arrayÇ   sU   € ð �>Š>à×%Ñ% c°Ð%Ó6ˆCØ×'Ñ'¨°%Ð'Ó8ˆEØ˜% "™*Ñ%Ð%Ø×"Ñ" 3Ó'Ð'rK   c                 óH  — | j                  |«      j                  t        j                  «      }|j	                  «       j                  d«      }t        j                  |j                  t        j                  d«      t        j                  |«      ¬«      j                  «       S )zñ latin-1 text matrix (char matrix) reader

        Parameters
        ----------
        hdr : ``VarHeader4`` instance

        Returns
        -------
        arr : ndarray
            with dtype 'U1', shape given by `hdr` ``dims``
        úlatin-1r4   ©r|   rD   r}   )r‰   Úastyper   Úuint8Útobytesrƒ   r…   rF   rD   Úarrayr†   )rH   ru   rw   ÚSs       rI   rr   zVarReader4.read_char_arrayÝ   sm   € ð ×!Ñ! #Ó&×-Ñ-¬b¯h©hÓ7ˆØ�K‰K‹M× Ñ  Ó+ˆÜ�z‰z §¡Ü "§¡¨£Ü!#§¡¨!£ô.ç.2©d«fð	5rK   c                 ó   — | j                  |«      }|dd…dd…f   }t        |d   «      t        |d   «      f}t        j                  |dd…df   d¬«      }t        j                  |dd…df   d¬«      }|dz  }|dz  }|j                  d   d	k(  rt        j                  |dd…d
f   d¬«      }n,t        j                  |dd…d
f   d¬«      }|dd…d	f   |_        t        j                  j                  |||ff|«      S )a¬   Read and return sparse matrix type

        Parameters
        ----------
        hdr : ``VarHeader4`` instance

        Returns
        -------
        arr : coo_array
            with dtype ``float`` and shape read from the sparse array data

        Notes
        -----
        MATLAB 4 real sparse arrays are saved in a N+1 by 3 array format, where
        N is the number of non-zero values. Column 1 values [0:N] are the
        (1-based) row indices of the each non-zero value, column 2 [0:N] are the
        column indices, column 3 [0:N] are the (real) values. The last values
        [-1,0:2] of the rows, column indices are shape[0] and shape[1]
        respectively of the output matrix. The last value for the values column
        is a padding 0. mrows and ncols values from the header give the shape of
        the stored matrix, here [N+1, 3]. Complex data are saved as a 4 column
        matrix, where the fourth column contains the imaginary component; the
        last value is again 0. Complex sparse data do *not* have the header
        ``imagf`` field set to True; the fact that the data are complex is only
        detectable because there are 4 storage columns.
        Néÿÿÿÿ)r–   r   )r–   r   r   Úintc©rD   r   r%   r$   ÚfloatÚcomplex)	r‰   ra   r   Úascontiguousarrayr|   ÚimagÚscipyr?   Ú	coo_array)rH   ru   r‹   ÚtmprF   ÚIÚJÚVs           rI   rs   zVarReader4.read_sparse_arrayï   s÷   € ð6 ×!Ñ! #Ó&ˆØ�#�2�#’a�%‰jˆä�C˜‘I“¤ C¨¡I£Ð/ˆÜ× Ñ  ¢Q q S¡°Ô7ˆÜ× Ñ  ¢Q q S¡°Ô7ˆØ	ˆQ‰ˆØ	ˆQ‰ˆØ�9‰9�Q‰<˜1ÒÜ×$Ñ$ Sª¨1¨¡X°GÔ<‰Aä×$Ñ$ Sª¨1¨¡X°IÔ>ˆAØš˜1˜‘XˆAŒFÜ�|‰|×%Ñ% q¨!¨A¨ i°Ó6Ð6rK   c                 óÎ  — |j                   }|t        k(  r%t        t        t        |j
                  «      «      }�nz|t        k(  r7t        t        t        |j
                  «      «      }| j                  �rA|dd }�n:|t        k(  �r"|j                  }|j
                  }t        |«      dk(  r|d   dk\  r|d   dk\  sy| j                  j                  |j                  |d   dz
  z  d«       t        j                  d|| j                  j!                  |j                  «      ¬«      }| j                  j                  |j                  |d   dz
  z  d«       t        j                  d|| j                  j!                  |j                  «      ¬«      }t	        |«      t	        |«      f}nt#        d|› �«      ‚| j$                  rt        |D �cg c]
  }|dk7  sŒ	|‘Œ c}«      }|S c c}w )	zwRead the shape of the array described by the header.
        The file position after this call is unspecified.
        Nr–   r$   r   r   rQ   r�   rp   )rE   r   ÚtupleÚmapra   rF   r   rW   r    rD   r„   rU   Úseekr�   r   r…   r`   rt   rX   )	rH   ru   rE   r|   r‡   rF   ÚrowsÚcolsÚxs	            rI   Úshape_from_headerzVarReader4.shape_from_header  sˆ  € ð —‘ˆØ”\Ò!Üœ#œc 3§8¡8Ó,Ó-ŠEØ”|Ò#Üœ#œc 3§8¡8Ó,Ó-ˆEØ×$Ó$Ø˜c˜r˜
’Ø”~Ó%Ø—‘ˆBØ—8‘8ˆDä˜“I ’N t¨A¡w°!¢|¸¸Q¹À1ºØð �O‰O× Ñ  §¡°°Q±¸!±Ñ!<¸aÔ@Ü—:‘: B¨bØ%)§_¡_×%9Ñ%9¸"¿+¹+Ó%FôHˆDà�O‰O× Ñ  §¡°°Q±¸!±Ñ!<¸aÔ@Ü—:‘: B¨bØ%)§_¡_×%9Ñ%9¸"¿+¹+Ó%FôHˆDô ˜“Y¤ D£	Ð*‰EäÐ7¸°xÐ@ÓAÐAà�?Š?Ü eÖ6 ¨q°A«vš1Ò6Ó7ˆEØˆùò 7s   Ç

G"ÇG"N©T)rL   rM   rN   Ú__doc__rJ   rn   rx   r‰   rq   rr   rs   rª   rQ   rK   rI   r   r   k   s/   „ Ù,ò1òó4ó"%òN(ò,5ò$(7óT rK   r   c                   óT   ‡ — e Zd ZdZeˆ fd„«       Zd„ Zd„ Zd„ Zd	d„Z	d
d„Z
d„ Zˆ xZS )r   z Reader for Mat4 files c                 ó:   •— t        ‰| �  |g|¢­i |¤Ž d| _        y)zR Initialize matlab 4 file reader

    %(matstream_arg)s
    %(load_args)s
        N)ÚsuperrJ   Ú_matrix_reader)rH   rU   ÚargsÚkwargsÚ	__class__s       €rI   rJ   zMatFile4Reader.__init__>  s$   ø€ ô 	‰Ñ˜Ð5 dÒ5¨fÒ5Ø"ˆÕrK   c                 ó  — | j                   j                  d«       t        | j                   t        j                  d«      «      }| j                   j                  d«       |dk(  ry|dk  s|dkD  rt
        xr dxs dS t
        xr dxs dS )Nr   r*   r:   r[   r;   )rU   r¦   r   r   rD   r   )rH   r/   s     rI   Úguess_byte_orderzMatFile4Reader.guess_byte_orderH  su   € Ø�‰×Ñ˜QÔÜ˜$Ÿ/™/¬2¯8©8°D«>Ó:ˆØ�‰×Ñ˜QÔØ�1Š9ØØ�!Š8�t˜d’{ä$Ò,¨Ò3°Ð3ä Ò( SÒ/¨CÐ/rK   c                 ób   — t        t        | j                  «      | _        t	        | «      | _        y)za Run when beginning read of variables

        Sets up readers from parameters in `self`
        N)r	   r   Ú
byte_orderrV   r   r°   )rH   s    rI   Úinitialize_readzMatFile4Reader.initialize_readT  s$   € ô
 %Ô%5°t·±ÓGˆŒÜ(¨Ó.ˆÕrK   c                 óD  — | j                   j                  «       }t        t        |j                  t        j                  |j                  j                  «      «      }|j                  r|j                  t        k(  s|dz  }| j                  j                  «       |z   }||fS )ab   Read and return header, next position

        Parameters
        ----------
        None

        Returns
        -------
        header : object
           object that can be passed to self.read_var_array, and that
           has attributes ``name`` and ``is_global``
        next_position : int
           position in stream of next variable
        r$   )r°   rn   r   r   rF   r   r€   rD   r�   rG   rE   r    rU   Útell)rH   ru   Úremaining_bytesÚnext_positions       rI   Úread_var_headerzMatFile4Reader.read_var_header\  s{   € ð ×!Ñ!×-Ñ-Ó/ˆä ¤ c§h¡h´·±¸¿¹×9KÑ9KÓ0LÓMˆØ�>Š> #§*¡*´Ò">Ø˜qÑ ˆOØŸ™×,Ñ,Ó.°Ñ@ˆØ�MÐ!Ð!rK   c                 ó:   — | j                   j                  ||«      S )a¥   Read array, given `header`

        Parameters
        ----------
        header : header object
           object with fields defining variable header
        process : {True, False}, optional
           If True, apply recursive post-processing during loading of array.

        Returns
        -------
        arr : array
           array with post-processing applied or not according to
           `process`.
        )r°   rx   )rH   r.   rv   s      rI   Úread_var_arrayzMatFile4Reader.read_var_arrays  s   € ð  ×"Ñ"×4Ñ4°V¸WÓEÐErK   c                 óF  — t        |t        «      r|g}n|�t        |«      }| j                  j	                  d«       | j                  «        i }| j                  «       sÂ| j                  «       \  }}|j                  €dn|j                  j                  d«      }|� ||vr| j                  j	                  |«       Œn| j                  |«      ||<   | j                  j	                  |«       |�"|j                  |«       t        |«      dk(  r	 |S | j                  «       sŒÂ|S )a,   get variables from stream as dictionary

        Parameters
        ----------
        variable_names : None or str or sequence of str, optional
            variable name, or sequence of variable names to get from Mat file /
            file stream. If None, then get all variables in file.
        r   ÚNonerz   )Ú
isinstanceÚstrÚlistrU   r¦   r¸   Úend_of_streamr½   rC   rƒ   r¿   Úremover„   )rH   Úvariable_namesÚmdictru   r¼   rC   s         rI   Úget_variableszMatFile4Reader.get_variables…  s  € ô �n¤cÔ*Ø,Ð-‰NØÐ'Ü! .Ó1ˆNØ�‰×Ñ˜QÔà×ÑÔØˆØ×$Ñ$Ô&Ø!%×!5Ñ!5Ó!7ÑˆC�Ø ŸX™XÐ-‘6°3·8±8·?±?À8Ó3LˆDØÐ)¨d¸.Ñ.HØ—‘×$Ñ$ ]Ô3ØØ×-Ñ-¨cÓ2ˆE�$‰KØ�O‰O× Ñ  Ô/ØÐ)Ø×%Ñ% dÔ+Ü�~Ó&¨!Ò+ØØˆð ×$Ñ$Õ&ð ˆrK   c                 óî  — | j                   j                  d«       | j                  «        g }| j                  «       s·| j	                  «       \  }}|j
                  €dn|j
                  j                  d«      }| j                  j                  |«      }t        j                  |j                  d«      }|j                  |||f«       | j                   j                  |«       | j                  «       sŒ·|S )z list variables from stream r   rÁ   rz   Úunknown)rU   r¦   r¸   rÅ   r½   rC   rƒ   r°   rª   r   ÚgetrE   Úappend)rH   Úvarsru   r¼   rC   r|   Úinfos          rI   Úlist_variableszMatFile4Reader.list_variables¤  sÅ   € à�‰×Ñ˜QÔà×ÑÔØˆØ×$Ñ$Ô&Ø!%×!5Ñ!5Ó!7ÑˆC�Ø ŸX™XÐ-‘6°3·8±8·?±?À8Ó3LˆDØ×'Ñ'×9Ñ9¸#Ó>ˆEÜ—?‘? 3§:¡:¨yÓ9ˆDØ�K‰K˜˜u dÐ+Ô,à�O‰O× Ñ  Ô/ð ×$Ñ$Õ&ð ˆrK   r«   rB   )rL   rM   rN   r¬   r   rJ   rµ   r¸   r½   r¿   rÉ   rÐ   Ú__classcell__)r³   s   @rI   r   r   <  s7   ø„ Ù!Øó#ó ð#ò
0ò/ò"ó.Fó$ö>rK   r   c                 ón   — t        | |«      }t        |«      dkD  rt        d«      ‚| j                  |«      S )aŒ   Make ``arr`` exactly two dimensional

    If `arr` has more than 2 dimensions, raise a ValueError

    Parameters
    ----------
    arr : array
    oned_as : {'row', 'column'}, optional
       Whether to reshape 1-D vectors as row vectors or column vectors.
       See documentation for ``matdims`` for more detail

    Returns
    -------
    arr2d : array
       2-D version of the array
    r$   z=Matlab 4 files cannot save arrays with more than 2 dimensions)r   r„   rc   Úreshape)rw   Úoned_asrF   s      rI   r   r   µ  s<   € ô" �3˜Ó €DÜ
ˆ4ƒy�1‚}Üð (ó )ð 	)à�;‰;�tÓÐrK   c                   óD   — e Zd Zd„ Zd„ Zd„ Zeedfd„Zd„ Z	d„ Z
d„ Zd	„ Zy
)r   c                 óH   — |j                   | _         |j                  | _        y rB   )Úfile_streamrÔ   )rH   Úfile_writers     rI   rJ   zVarWriter4.__init__Î  s   € Ø&×2Ñ2ˆÔØ"×*Ñ*ˆ�rK   c                 óZ   — | j                   j                  |j                  d¬«      «       y )Nr{   )r~   )r×   Úwriter’   )rH   rw   s     rI   Úwrite_byteszVarWriter4.write_bytesÒ  s!   € Ø×Ñ×Ñ˜sŸ{™{°˜{Ó5Õ6rK   c                 ó:   — | j                   j                  |«       y rB   )r×   rÚ   )rH   Úss     rI   Úwrite_stringzVarWriter4.write_stringÕ  s   € Ø×Ñ×Ñ˜qÕ!rK   r   c                 ó6  — t        j                  dt        d   «      }t         }d}|dz  |dz  z   |dz  z   |z   |d<   |d   |d<   |d	   |d
<   ||d<   t	        |«      d	z   |d<   | j                  |«       |dz   }	| j                  |	j                  d«      «       y)a)   Write header for given data options

        Parameters
        ----------
        name : str
            name of variable
        shape : sequence
            Shape of array as it will be read in matlab
        P : int, optional
            code for mat4 data type, one of ``miDOUBLE, miSINGLE, miINT32,
            miINT16, miUINT16, miUINT8``
        T : int, optional
            code for mat4 matrix class, one of ``mxFULL_CLASS, mxCHAR_CLASS,
            mxSPARSE_CLASS``
        imagf : int, optional
            flag indicating complex
        rQ   r.   r   r\   r^   r_   r/   r0   r   r1   r2   r3   ú rz   N)r   Úemptyr   r   r„   rÛ   rÞ   Úencode)
rH   rC   r|   rl   rm   r2   r.   ri   rk   rh   s
             rI   Úwrite_headerzVarWriter4.write_headerØ  s»   € ô$ —‘˜"Ô.¨xÑ8Ó9ˆÜ!Ð!ˆØˆØ˜d™(Ø˜c™'ñ"à˜b™&ñ!ð ñˆˆv‰ð   ™(ˆˆw‰Ø ™(ˆˆw‰Øˆˆw‰Ü˜t›9 q™=ˆˆxÑØ×Ñ˜Ô Ø�d‰{ˆØ×Ñ˜$Ÿ+™+ hÓ/Õ0rK   c                 ó  — t         j                  j                  |«      r| j                  ||«       yt	        j
                  |«      }|j                  }|j                  s |j                  |j                  d«      «      }|j                  }|t        j                  u rt        d«      ‚|t        j                  u rt        d«      ‚|t        j                  t        j                  fv r| j!                  ||«       y| j#                  ||«       y)z¿ Write matrix `arr`, with name `name`

        Parameters
        ----------
        arr : array_like
           array to write
        name : str
           name in matlab workspace
        Nú=z!Cannot save object arrays in Mat4zCannot save void type arrays)r�   r?   ÚissparseÚwrite_sparser   ÚasarrayrD   Úisnativer�   ÚnewbyteorderÚtypeÚobject_rt   ÚvoidÚstr_Úbytes_Ú
write_charÚwrite_numeric)rH   rw   rC   r‡   Údtts        rI   rÚ   zVarWriter4.writeù  sË   € ô �<‰<× Ñ  Ô%Ø×Ñ˜c 4Ô(ØÜ�j‰j˜‹oˆØ�Y‰YˆØ�{Š{Ø—*‘*˜RŸ_™_¨SÓ1Ó2ˆCØ�g‰gˆØ”"—*‘*ÑÜÐ?Ó@Ð@Ø”B—G‘G‰^ÜÐ:Ó;Ð;Ø”R—W‘WœbŸi™iÐ(Ñ(Ø�O‰O˜C Ô&ØØ×Ñ˜3 Õ%rK   c                 óô  — t        || j                  «      }|j                  j                  dk(  }	 t        |j                  j
                  dd     }| j                  ||j                  |t        |¬«       |r7| j                  |j                  «       | j                  |j                  «       y | j                  |«       y # t        $ r. |r|j                  d«      }n|j                  d«      }t        }Y Œ¥w xY w)NÚcr   Úc128r(   )rl   rm   r2   )r   rÔ   rD   Úkindr!   rÃ   ÚKeyErrorr�   r   rã   r|   r   rÛ   Úrealrœ   )rH   rw   rC   r2   rl   s        rI   rñ   zVarWriter4.write_numeric  sÕ   € Ü˜˜TŸ\™\Ó*ˆØ—	‘	—‘ #Ñ%ˆð	Ü˜SŸY™YŸ]™]¨1¨2Ð.Ñ/ˆAð 	×Ñ˜$ØŸ)™)ØÜ(Ø %ð	 	ô 	'ñ
 Ø×Ñ˜SŸX™XÔ&Ø×Ñ˜SŸX™XÕ&à×Ñ˜SÕ!øô ò 	ÙØ—j‘j Ó(‘à—j‘j Ó&�ÜŠAð	ús   ± C  Ã 4C7Ã6C7c                 ó‚  — |j                   j                  t        j                  k(  rA|j                   j                  t        j                   d«      j                  k7  rt        |«      }t        || j                  «      }|j                  }| j                  ||t        t        ¬«       |j                   j                  dk(  rnt        j                  |«      }t        j                  dt!        ||«      |¬«      }|j#                  «       j%                  d«      }t        j                  |d|¬«      }| j'                  |«       y )Nr4   ©rl   rm   ÚUrQ   r�   rŽ   r9   )rD   rë   r   rî   r�   r
   r   rÔ   r|   rã   r   r   rö   ÚmathÚprodr…   r   Úitemrâ   rÛ   )rH   rw   rC   rF   Ún_charsÚst_arrÚsts          rI   rð   zVarWriter4.write_char,  së   € Ø�9‰9�>‰>œRŸW™WÒ$¨¯©×);Ñ);¼r¿x¹xÈ»~×?VÑ?VÒ)VÜ˜sÓ#ˆCÜ˜˜TŸ\™\Ó*ˆØ�y‰yˆØ×ÑØØÜÜð	 	ô 	ð
 �9‰9�>‰>˜SÒ ä—i‘i “oˆGÜ—Z‘Z bÜ&6°s¸GÓ&DØ'*ô,ˆFð —‘“×%Ñ% iÓ0ˆBÜ—*‘* 4¨t¸BÔ?ˆCØ×Ñ˜ÕrK   c                 óP  — |j                  «       }|j                  j                  dk(  }t        j                  |j
                  dz   d|z   fd¬«      }|j                  |dd…df<   |j                  |dd…df<   |dd…dd	…fxx   dz  cc<   |r;|j                  j                  |dd…d	f<   |j                  j                  |dd…df<   n|j                  |dd…d	f<   |j                  |ddd	…f<   | j                  ||j                  t        t        ¬
«       | j                  |«       y)zY Sparse matrices are 2-D

        See docstring for VarReader4.read_sparse_array
        rô   r   r%   r(   r˜   Nr–   r   r$   rú   )ÚtocoorD   rö   r   ÚzerosÚnnzÚrowÚcolrh   rø   rœ   r|   rã   r   r    rÛ   )rH   rw   rC   ÚAr2   Úijvs         rI   rç   zVarWriter4.write_sparse@  s  € ð
 �I‰I‹KˆØ—‘—‘ Ñ#ˆÜ�h‰h˜Ÿ™ ™	 1 U¡7Ð+°4Ô8ˆØ—U‘UˆˆCˆRˆC�ˆE‰
Ø—U‘UˆˆCˆRˆC�ˆE‰
ØˆCˆRˆC��!�ˆG‹˜Ñ‹ÙØŸ™Ÿ™ˆC����A�‰JØŸ™Ÿ™ˆC����A�ŠJàŸ™ˆC����A�‰JØ—g‘gˆˆBˆq�ˆsˆF‰Ø×ÑØØ�I‰IÜÜð	 	ô 	ð
 	×Ñ˜ÕrK   N)rL   rM   rN   rJ   rÛ   rÞ   r   r   rã   rÚ   rñ   rð   rç   rQ   rK   rI   r   r   Í  s4   „ ò+ò7ò"ð +3°lÈ!ó 1òB&ò:"ò,ó(rK   r   c                   ó    — e Zd ZdZdd„Zdd„Zy)r   z) Class for writing matlab 4 format files Nc                 ó6   — || _         |€d}|| _        d | _        y )Nr  )r×   rÔ   Ú_matrix_writer)rH   r×   rÔ   s      rI   rJ   zMatFile4Writer.__init__[  s#   € Ø&ˆÔØˆ?ØˆGØˆŒØ"ˆÕrK   c                 óŒ   — t        | «      | _        |j                  «       D ]!  \  }}| j                  j                  ||«       Œ# y)aç   Write variables in `mdict` to stream

        Parameters
        ----------
        mdict : mapping
           mapping with method ``items`` return name, contents pairs
           where ``name`` which will appeak in the matlab workspace in
           file load, and ``contents`` is something writeable to a
           matlab file, such as a NumPy array.
        write_header : {None, True, False}
           If True, then write the matlab file header before writing the
           variables. If None (the default) then write the file header
           if we are at position 0 in the stream. By setting False
           here, and setting the stream position to the end of the file,
           you can append variables to a matlab file
        N)r   r  ÚitemsrÚ   )rH   rÈ   rã   rC   Úvars        rI   Úput_variableszMatFile4Writer.put_variablesb  s@   € ô( )¨Ó.ˆÔØŸ™›ò 	1‰IˆD�#Ø×Ñ×%Ñ% c¨4Õ0ñ	1rK   rB   )rL   rM   rN   r¬   rJ   r  rQ   rK   rI   r   r   Y  s   „ Ù3ó#ô1rK   r   )r  )1r¬   Úsysre   rü   Úoperatorr   Únumpyr   Úscipy.sparser�   Ú_miobaser   r   r   r   r	   r
   r   Ú
_mio_utilsr   r   Ú	functoolsr   Ú__all__Ú	byteorderr   r   r   r   r   r   r   r   r!   r   r   r    r"   r   ÚiinfoÚintpÚmaxr‚   r   r   r   r   r   r   rQ   rK   rI   ú<module>r     sl  ðñã 
Û Û Ý ã ã ÷F÷ Fñ F÷ :Ý ò€ð —M‘M XÑ-Ð à€Ø€Ø
€Ø
€Ø€Ø
€ð ˆdØˆdØˆTØˆTØˆdØˆTØò !ð
 	ˆ$ðÐ ð  ØØØØ
Ø
Ø
Ø
Ø
Ø
Ø
ñ€ð €Ø€Ø€ð Ø
ØØØñ€ð �(Ø�&Ø�Hð€ð ˆB�H‰H�R—W‘WÓ×!Ñ!€	÷%ñ %÷$Nñ Nôbv�]ô vór÷0Iñ I÷X1ò 1rK   