U
    ڲgy
                     @  s`   d dl mZ d dlZd dlmZ d dlmZ ddlmZ G dd deZ	ed	dd
ddZ
dS )    )annotationsN)	lru_cache)
NamedTuple   )	deprecatec                   @  sH   e Zd ZU dZded< ded< ded< ded< ded< dd	d
dZdS )ModeDescriptorzWrapper for mode strings.strmodeztuple[str, ...]bandsZbasemodeZbasetypeZtypestr)returnc                 C  s   | j S )N)r	   )self r   1/tmp/pip-unpacked-wheel-xela2va7/PIL/ImageMode.py__str__!   s    zModeDescriptor.__str__N)__name__
__module____qualname____doc____annotations__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| dkrtt| d ||  \}}}}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RGBaBGR;15BGR;16BGR;24ZLAZLaZPA)r-   r.   r/      z<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   )r	   ZendianmodesZ	base_modeZ	base_typer
   Ztype_strZmapping_modesr   r   r   getmode%   sV    
r6   )
__future__r   r3   	functoolsr   typingr   Z
_deprecater   r   r6   r   r   r   r   <module>   s   