U
    »mœd   ã                -   @   sÚ  d Z ddlZddlmZ ddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1g-ZdZd2Zd3Zd4Z	d5Z
d6Zd7Zd8Zd9Zd:Zd;Zd<Zd=Zd>Zd?ZdZd2Zd3Zd4Zd5Zd6Zd7Zd@Zd8ZdAZdBZd9Z d:Z!d;Z"d<Z#d=Z$d>Z%d?Z&edCedDedEe	dFe
dGedHedIedJedKedLedDedFedHdMdNdOdPdQgdRdSdTgdUdVdWgdXdYdTdZd[gd\d\iZ'edCedDedEedFe dGe!dHe"dKe#dLedIedJi
Z(ed]ed^ed_ed`e dae!dbe"dce#ddedeedfedgedhediedjedke$dle%dmiZ)eeeeeeee
eeeee	eeeednœZ*eeeeeee"e eee#e!eeeedoœZ+edpddqœedrd2dqœedsd4dqœiZ,dtdu„ Z-i Z.dvD ],Z/ee'e/ƒee(e/ƒe-e,e/ƒdwœZ0e0e.e/< �qRG dxd„ dƒZ1G dyd„ dej2ƒZ3G dzd„ dej2ƒZ4G d{d„ dej2ƒZ5e 6d|d}d~dg¡Z7dS )€zÂ 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ÚMDTYPESÚMatlabFunctionÚMatlabObjectÚMatlabOpaqueÚNP_TO_MTYPESÚNP_TO_MXTYPESÚOPAQUE_DTYPEÚcodecs_templateÚ
mat_structÚmclass_dtypes_templateÚmclass_infoÚmdtypes_templateÚmiCOMPRESSEDÚmiDOUBLEÚmiINT16ÚmiINT32ÚmiINT64ÚmiINT8ÚmiMATRIXÚmiSINGLEÚmiUINT16ÚmiUINT32ÚmiUINT64ÚmiUINT8ÚmiUTF16ÚmiUTF32ÚmiUTF8ÚmxCELL_CLASSÚmxCHAR_CLASSÚmxDOUBLE_CLASSÚmxFUNCTION_CLASSÚmxINT16_CLASSÚmxINT32_CLASSÚmxINT64_CLASSÚmxINT8_CLASSÚmxOBJECT_CLASSÚmxOBJECT_CLASS_FROM_MATRIX_HÚmxOPAQUE_CLASSÚmxSINGLE_CLASSÚmxSPARSE_CLASSÚmxSTRUCT_CLASSÚmxUINT16_CLASSÚmxUINT32_CLASSÚmxUINT64_CLASSÚmxUINT8_CLASSé   é   é   é   é   é   é	   é   é   é   é   é   é   é   é   é
   é   Úi1Úu1Úi2Úu2Úi4Úu4Úf4Úf8Úi8Úu8Zfile_header)ÚdescriptionZS116)Zsubsystem_offsetrJ   )ÚversionrE   )Zendian_testZS2Ztag_full)ZmdtyperG   )Z
byte_countrG   Ztag_smalldata)Zbyte_count_mdtyperG   )ÚdataZS4Zarray_flags)Z	data_typerG   )Zflags_classrG   )ZnzmaxrG   ÚU1Zint8Zuint8Zint16Zuint16Zint32Zuint32Zint64Zuint64ZsingleÚdoubleÚcellÚstructÚobjectÚcharÚsparseÚfunctionÚopaque)rI   Úc32Úc24Úc16rH   Úc8rJ   rF   rD   rB   rK   rG   rE   rC   ÚS1rO   Úb1)rI   rX   rY   rZ   rH   r[   rJ   rF   rD   rB   rK   rG   rE   rC   r\   r]   Úutf_8)ÚcodecÚwidthÚutf_16Úutf_32c              	   C   s‚   i }|dkrdpd}|   ¡ D ]\\}}|d }zd |¡ W n  tk
rZ   d||< Y qY nX |d dkrp||7 }|||< q| ¡ 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_ber_   ú Nr`   r   )ÚitemsÚencodeÚLookupErrorÚcopy)ÚtemplateZ
byte_orderÚcodecsZpostfixÚkÚvr_   © rm   úU/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/io/matlab/_mio5_params.pyÚ_convert_codecs·   s    

ro   z<>)ZdtypesÚclassesrj   c                   @   s   e Zd ZdZdS )r   zÒ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.loadmat` function.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rm   rm   rm   rn   r   à   s   c                   @   s"   e Zd ZdZddd„Zdd„ ZdS )r   zÎSubclass of ndarray to signal this is a matlab object.

    This is a simple subclass of :class:`numpy.ndarray` meant to be used
    by :func:`scipy.io.loadmat` and should not be instantiated directly.
    Nc                 C   s   t  |¡ | ¡}||_|S ©N)ÚnpÚasarrayÚviewÚ	classname)ÚclsÚinput_arrayry   Úobjrm   rm   rn   Ú__new__ð   s    zMatlabObject.__new__c                 C   s   t |dd ƒ| _d S )Nry   )Úgetattrry   )Úselfr|   rm   rm   rn   Ú__array_finalize__ù   s    zMatlabObject.__array_finalize__)N)rq   rr   rs   rt   r}   r€   rm   rm   rm   rn   r   é   s   
	c                   @   s   e Zd ZdZdd„ ZdS )r   z·Subclass for a MATLAB function.

    This is a simple subclass of :class:`numpy.ndarray` meant to be used
    by :func:`scipy.io.loadmat` and should not be directly instantiated.
    c                 C   s   t  |¡ | ¡}|S ru   ©rv   rw   rx   ©rz   r{   r|   rm   rm   rn   r}     s    zMatlabFunction.__new__N©rq   rr   rs   rt   r}   rm   rm   rm   rn   r   ÿ   s   c                   @   s   e Zd ZdZdd„ ZdS )r   z¼Subclass for a MATLAB opaque matrix.

    This is a simple subclass of :class:`numpy.ndarray` meant to be used
    by :func:`scipy.io.loadmat` and should not be directly instantiated.
    c                 C   s   t  |¡ | ¡}|S ru   r�   r‚   rm   rm   rn   r}     s    zMatlabOpaque.__new__Nrƒ   rm   rm   rm   rn   r     s   )Ús0ÚO)Ús1r…   )Ús2r…   )Zarrr…   )8rt   Únumpyrv   Z_miobaser   Ú__all__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r'   r    r+   r!   r*   r&   r0   r#   r-   r$   r.   r%   r/   r"   r)   r(   r   r   r   r   r	   r   ro   r   Z	_bytecodeZ_defr   Zndarrayr   r   r   Zdtyper
   rm   rm   rm   rn   Ú<module>   sÞ                                    õ              ý   ý è          ö                 ïïð   ý!þ	
ÿ