
    e
                    J    d dl mZ d dlZd dlmZ  G d d      Zedd       Zy)    )annotationsN)	lru_cachec                  8    e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 ddZddZy)ModeDescriptorzWrapper for mode strings.c                J    || _         || _        || _        || _        || _        y N)modebandsbasemodebasetypetypestr)selfr	   r
   r   r   r   s         //usr/lib/python3/dist-packages/PIL/ImageMode.py__init__zModeDescriptor.__init__   s'     	
      c                    | j                   S r   )r	   )r   s    r   __str__zModeDescriptor.__str__&   s    yyr   N)r	   strr
   ztuple[str, ...]r   r   r   r   r   r   returnNone)r   r   )__name__
__module____qualname____doc__r   r    r   r   r   r      sI    #  	
   
r   r   c                P   t         j                  dk(  rdnd}i dddddddd	|d
z   fdddd|dz   f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(}| |v r||    \  }}}}t        | ||||      S d)d*d)d*d+d,|d-z   |d.z   d/d0d/d1d2d1d3}||    }t        | d	dd|      S )4z*Gets a mode descriptor for the given mode.little<>1)Lr!   )r    z|b1r!   )r!   r!   )r!   |u1I)r#   i4F)r%   f4P)r'   r!   )r'   r"   RGB)r(   r!   )RGBr"   RGBX)r(   r!   )r)   r*   r+   Xr"   RGBA)r(   r!   )r)   r*   r+   Ar"   CMYK)r(   r!   )CMYKr"   YCbCr)r(   r!   )r3   CbCrr"   LAB)r(   r!   )r!   r/   r+   r"   HSV)r(   r!   )HSVr"   RGBa)r(   r!   )r)   r*   r+   ar"   zBGR;15)r(   r!   )r+   r*   r)   r"   zBGR;16zBGR;24LA)r!   r!   )r!   r/   r"   )r!   r!   )r!   r>   r"   )r(   r!   )r'   r/   r"   )La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	   endianmodes	base_mode	base_typer
   type_strmapping_modess           r   getmoderL   *   s    MMX-S3F 	& 	&	
 	c3. 	c3. 	& 	3 	9 	9 	9 	7 	3 	3" 	9#$ 	6%& 	6'( 	6)* 	++, ,-/E2 u}05d-	9eXdE9iJJ $4-M$ T"H$S(;;r   )r	   r   r   r   )
__future__r   rD   	functoolsr   r   rL   r   r   r   <module>rO      s.    # 
  * 5< 5<r   