U
    EvfÒ
  ã                   @  sF   d dl mZ d dlZd dlmZ G dd„ dƒZedddœdd	„ƒZdS )
é    )ÚannotationsN)Ú	lru_cachec                   @  s6   e Zd ZdZdddddddœdd„Zddœd	d
„ZdS )ÚModeDescriptorzWrapper for mode strings.Ústrztuple[str, ...]ÚNone)ÚmodeÚbandsÚbasemodeÚbasetypeÚtypestrÚreturnc                 C  s"   || _ || _|| _|| _|| _d S ©N)r   r   r	   r
   r   )Úselfr   r   r	   r
   r   © r   ú1/tmp/pip-unpacked-wheel-ciywl2yd/PIL/ImageMode.pyÚ__init__   s
    zModeDescriptor.__init__)r   c                 C  s   | j S r   )r   )r   r   r   r   Ú__str__&   s    zModeDescriptor.__str__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      s   r   r   )r   r   c                 C  sÀ   t jdkrdnd}ddddd|d	 fdd
d|d fddddddddddddddddœ}| |kr~||  \}}}}t| ||||ƒS dddddd|d |d  d!d"d!d#d$d#d%œ}||  }t| ddd|ƒS )&z*Gets a mode descriptor for the given mode.Úlittleú<ú>)ÚLr   )Ú1z|b1)r   r   )r   ú|u1r   ÚI)r   Úi4ÚF)r   Zf4)ÚPr   )r    r   )ÚRGBr   )ÚRÚGÚBr   )r!   r   )r"   r#   r$   ÚXr   )r!   r   )r"   r#   r$   ÚAr   )r!   r   )ÚCÚMÚYÚKr   )r!   r   )r)   ZCbZCrr   )r!   r   )r   r&   r$   r   )r!   r   )ÚHÚSÚVr   )r!   r   )r"   r#   r$   Úar   )r!   r   )r$   r#   r"   r   )r   r   )r   r&   r   )r   r   )r   r.   r   )r!   r   )r    r&   r   )r   r   r   r   r    r!   ZRGBXZRGBAZCMYKZYCbCrZLABZHSVZRGBazBGR;15zBGR;16zBGR;24ZLAZLaZPAz<u2z<i2z>u2z>i2Úu2Úi2z<u4z>u4z<i4z>i4)zI;16zI;16SzI;16LzI;16LSzI;16BzI;16BSzI;16NzI;16NSzI;32zI;32BzI;32LzI;32SzI;32BSzI;32LS)ÚsysÚ	byteorderr   )r   ZendianÚmodesZ	base_modeZ	base_typer   Ztype_strZmapping_modesr   r   r   Úgetmode*   sR    éñr4   )Ú
__future__r   r1   Ú	functoolsr   r   r4   r   r   r   r   Ú<module>   s
   