
    ZMh                    L    d dl mZ d dlZd dlmZ d dlmZ  G d d          ZdS )    )annotationsN)BytesIO)IOc                  H    e Zd ZdZdZddd
ZddZedd            ZddZ	dS )GimpPaletteFilez'File handler for GIMP's palette format.RGBTfp	IO[bytes]limitboolreturnNonec                J   |                                                     d          sd}t          |          g }d}	 |r|dk    rn|dz  }|                                 }|snt          j        d|          r<|r$t          |          dk    rd	}t          |          |                    d
          t                    d
k     rd}t          |          |fdt          d
          D             z  }|rt          |          dk    rnt          |          | _
        d S )Ns   GIMP Paletteznot a GIMP palette filer   Ti     s   \w+:|#d   zbad palette file   )maxsplitzbad palette entryc              3  B   K   | ]}t          |                   V  d S N)int).0ivs     S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/PIL/GimpPaletteFile.py	<genexpr>z(GimpPaletteFile._read.<locals>.<genexpr>8   s-      44aAaD		444444    i   )readline
startswithSyntaxErrorrematchlensplit
ValueErrorrangebytespalette)selfr	   r   msgr'   r   sr   s          @r   _readzGimpPaletteFile._read   sD   {{}}''88 	#+Cc"""	 gFAA  x
A&&  'Q#(!#&&&##A1vvzz) oo%44445884444G W,,/	2 W~~r   c                0    |                      |           d S r   )r+   )r(   r	   s     r   __init__zGimpPaletteFile.__init__>   s    

2r   datar&   c                v    |                      |           }|                    t          |          d           |S )NF)__new__r+   r   )clsr.   r(   s      r   	frombyteszGimpPaletteFile.frombytesA   s2    {{3

74==%(((r   tuple[bytes, str]c                    | j         | j        fS r   )r'   rawmode)r(   s    r   
getpalettezGimpPaletteFile.getpaletteG   s    |T\))r   N)T)r	   r
   r   r   r   r   )r	   r
   r   r   )r.   r&   r   r   )r   r3   )
__name__
__module____qualname____doc__r5   r+   r-   classmethodr2   r6    r   r   r   r      s        11G &  &  &  &  &D       [
* * * * * *r   r   )
__future__r   r    ior   typingr   r   r<   r   r   <module>r@      sx     # " " " " " 				            1* 1* 1* 1* 1* 1* 1* 1* 1* 1*r   