B
    „Ž0d[  ã            %   @   s€  d Z ddlZddlmZ dZdZdZdZdZ	d	Z
d
ZdZdZdZdZdZdZdZdZdZdZdZdZdZd	Zd
ZdZdZdZdZd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edededededededd d!d"d#d$gd%d&d'gd(d)d*gd+d,d'd-d.gd/d/iZ&ededededede de!de"dededi
Z'ed0ed1ed2ed3ed4e d5e!d6e"d7ed8ed9ed:ed;ed<ed=ed>e#d?e$d@iZ(eeeeeeee	eeee
eeeeedAœZ)eeeeeee!eeee"e eeeedBœZ*edCddDœedEddDœedFddDœiZ+dGdH„ Z,i Z-x4dID ],Z.ee&e.ƒee'e.ƒe,e+e.ƒdJœZ/e/e-e.< qöW G dKdL„ dLƒZ0G dMdN„ dNej1ƒZ2G dOdP„ dPej1ƒZ3G dQdR„ dRej1ƒZ4e 5dSdTdUdVg¡Z6dS )WzÂ Constants and classes for matlab 5 read and write

See also mio5_utils.pyx where these same constants arise as c enums.

If you make changes in this file, don't forget to change mio5_utils.pyx
é    Né   )Úconvert_dtypesé   é   é   é   é   é   é	   é   é   é   é   é   é   é   é   é
   é   Úi1Úu1Úi2Úu2Úi4Úu4Úf4Úf8Úi8Úu8Zfile_header)ÚdescriptionZS116)Zsubsystem_offsetr   )Úversionr   )Zendian_testZS2Ztag_full)Zmdtyper   )Z
byte_countr   Ztag_smalldata)Zbyte_count_mdtyper   )ÚdataZS4Zarray_flags)Z	data_typer   )Zflags_classr   )Znzmaxr   ÚU1Zint8Zuint8Zint16Zuint16Zint32Zuint32Zint64Zuint64ZsingleÚdoubleÚcellÚstructÚobjectÚcharÚsparseÚfunctionÚopaque)r   Úc32Úc24Úc16r   Úc8r   r   r   r   r   r   r   r   ÚS1r"   Úb1)r   r+   r,   r-   r   r.   r   r   r   r   r   r   r   r   r/   r0   Úutf_8)ÚcodecÚwidthÚutf_16Úutf_32c          	   C   s„   i }|dkrdpd}xf|   ¡ D ]Z\}}|d }yd |¡ W n tk
rZ   d||< wY nX |d dkrp||7 }|||< qW | ¡ S )	a¢   Convert codec template mapping to byte order

    Set codecs not on this system to None

    Parameters
    ----------
    template : mapping
       key, value are respectively codec name, and root name for codec
       (without byte order suffix)
    byte_order : {'<', '>'}
       code for little or big endian

    Returns
    -------
    codecs : dict
       key, value are name, codec (as in .encode(codec))
    ú<Z_leZ_ber2   ú Nr3   r   )ÚitemsÚencodeÚLookupErrorÚcopy)ÚtemplateZ
byte_orderÚcodecsZpostfixÚkÚvr2   © r@   úM/var/www/html/venv/lib/python3.7/site-packages/scipy/io/matlab/mio5_params.pyÚ_convert_codecs©   s    rB   z<>)ZdtypesÚclassesr=   c               @   s   e Zd ZdZdS )Ú
mat_structzÝ Placeholder for holding read data from structs

    We use instances of this class when the user passes False as a value to the
    ``struct_as_record`` parameter of the :func:`scipy.io.matlab.loadmat`
    function.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r@   r@   r@   rA   rD   Ò   s   rD   c               @   s"   e Zd ZdZddd„Zdd„ ZdS )ÚMatlabObjectz+ ndarray Subclass to contain matlab object Nc             C   s   t  |¡ | ¡}||_|S )N)ÚnpÚasarrayÚviewÚ	classname)ÚclsÚinput_arrayrM   Úobjr@   r@   rA   Ú__new__Þ   s    zMatlabObject.__new__c             C   s   t |dd ƒ| _d S )NrM   )ÚgetattrrM   )ÚselfrP   r@   r@   rA   Ú__array_finalize__ç   s    zMatlabObject.__array_finalize__)N)rE   rF   rG   rH   rQ   rT   r@   r@   r@   rA   rI   Ü   s   
	rI   c               @   s   e Zd ZdZdd„ ZdS )ÚMatlabFunctionz. Subclass to signal this is a matlab function c             C   s   t  |¡ | ¡}|S )N)rJ   rK   rL   )rN   rO   rP   r@   r@   rA   rQ   ï   s    zMatlabFunction.__new__N)rE   rF   rG   rH   rQ   r@   r@   r@   rA   rU   í   s   rU   c               @   s   e Zd ZdZdd„ ZdS )ÚMatlabOpaquez3 Subclass to signal this is a matlab opaque matrix c             C   s   t  |¡ | ¡}|S )N)rJ   rK   rL   )rN   rO   rP   r@   r@   rA   rQ   ö   s    zMatlabOpaque.__new__N)rE   rF   rG   rH   rQ   r@   r@   r@   rA   rV   ô   s   rV   )Ús0ÚO)Ús1rX   )Ús2rX   )ZarrrX   )7rH   ÚnumpyrJ   Zmiobaser   ZmiINT8ZmiUINT8ZmiINT16ZmiUINT16ZmiINT32ZmiUINT32ZmiSINGLEZmiDOUBLEZmiINT64ZmiUINT64ZmiMATRIXZmiCOMPRESSEDZmiUTF8ZmiUTF16ZmiUTF32ZmxCELL_CLASSZmxSTRUCT_CLASSZmxOBJECT_CLASSZmxCHAR_CLASSZmxSPARSE_CLASSZmxDOUBLE_CLASSZmxSINGLE_CLASSZmxINT8_CLASSZmxUINT8_CLASSZmxINT16_CLASSZmxUINT16_CLASSZmxINT32_CLASSZmxUINT32_CLASSZmxINT64_CLASSZmxUINT64_CLASSZmxFUNCTION_CLASSZmxOPAQUE_CLASSZmxOBJECT_CLASS_FROM_MATRIX_HZmdtypes_templateZmclass_dtypes_templateZmclass_infoZNP_TO_MTYPESZNP_TO_MXTYPESZcodecs_templaterB   ZMDTYPESZ	_bytecodeZ_defrD   ZndarrayrI   rU   rV   ZdtypeZOPAQUE_DTYPEr@   r@   r@   rA   Ú<module>   s  	

!

