
    0-Ph4                       d Z ddlmZ g dZddlmZmZ ddlZerddlmZm	Z	 ddl
mZmZ 	 ddlZ	 d=ddd>dZddd?dZn# e$ r 	 d=ddd>dZddd?dZY nw xY w	 ddlZ	 d=ddd>dZddd?dZn# e$ r 	 d=ddd>dZddd?dZY nw xY w	 ddlmZ 	 d=ddd>dZddd?dZn# e$ r 	 d=ddd>dZddd?dZY nw xY wddd@dZe	 	 dAdddBd&            Ze	 dAdddCd(            Z	 	 dAdddDd*ZedBd+            ZedCd,            Z	 	 dAdddDd-Zedg d.dEd1            Zedg d.dFd2            Zdg d.dGd3Z	 dHdddId8Z	 dJdddKd9ZdLd<ZdS )Ma   Fallback imagecodecs codecs.

This module provides alternative, pure Python and NumPy implementations of
some functions of the `imagecodecs`_ package. The functions may raise
`NotImplementedError`.

.. _imagecodecs: https://github.com/cgohlke/imagecodecs

    )annotations)bitorder_decodedelta_decodedelta_encodefloat24_decodelzma_decodelzma_encodepackbits_decodepackints_decodepackints_encodezlib_decodezlib_encodezstd_decodezstd_encode)TYPE_CHECKINGoverloadN)AnyLiteral)	DTypeLikeNDArrayoutlevel
int | Nonedatabytes | NDArray[Any]r   r   returnbytesc                  t          | t          j                  r|                                 } t	          j        |           S )zCompress LZMA.)
isinstancenumpyndarraytobyteslzmacompressr   r   r   s      U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tifffile/_imagecodecs.pyr	   r	   H   s5     dEM** 	"<<>>D}T"""    c              *    t          j        |           S )zDecompress LZMA.)r$   
decompressr   r   s     r'   r   r   T       t$$$r(   c                  ddl }dS Raise ImportError.r   Nr(   r$   )r   r   r   r$   s       r'   r	   r	   Z        	sr(   c                  ddl }dS r.   r0   )r   r   r$   s      r'   r   r   f       sr(   c                  t          | t          j                  r|                                 } t	          j        | |dn|          S )zCompress Zlib DEFLATE.N   )r    r!   r"   r#   zlibr%   r&   s      r'   r   r   p   s?     dEM** 	"<<>>D}T115AAAr(   c              *    t          j        |           S )zDecompress Zlib DEFLATE.)r6   r*   r+   s     r'   r   r   |   r,   r(   c                  ddl }dS r.   r6   )r   r   r   r6   s       r'   r   r      r1   r(   c                  ddl }dS r.   r9   )r   r   r6   s      r'   r   r      r3   r(   zstdc                  t          | t          j                  r|                                 } t	          j        | |          S )zCompress ZSTD.)r   )r    r!   r"   r#   r<   r%   r&   s      r'   r   r      s:     dEM** 	"<<>>D}T////r(   c              *    t          j        |           S )zDecompress ZSTD.)r<   r*   r+   s     r'   r   r      r,   r(   c                  ddl m} dS r/   r   r;   r(   compressionr<   )r   r   r   r<   s       r'   r   r      s     	%$$$$$sr(   c                  ddl m} dS r@   rA   )r   r   r<   s      r'   r   r      s    $$$$$$sr(   encodedc              2   g }|j         }d}	 	 t          | ||dz                      dz   }|dz  }|dk    r" || ||dz            d|z
  z             |dz  }n!|dk     r || |||z                       ||z  }l# t          $ r Y nw xY wt          |          S )aQ  Decompress PackBits encoded byte string.

    >>> packbits_decode(b'\x80\x80')  # NOP
    b''
    >>> packbits_decode(b'\x02123')
    b'123'
    >>> packbits_decode(
    ...     b'\xfe\xaa\x02\x80\x00\x2a\xfd\xaa\x03\x80\x00\x2a\x22\xf7\xaa'
    ... )[:-5]
    b'\xaa\xaa\xaa\x80\x00*\xaa\xaa\xaa\xaa\x80\x00*"\xaa\xaa\xaa\xaa\xaa'

    r   T      i  )extendord	TypeErrorr   )rD   r   
out_extendins        r'   r
   r
      s     CJ	A
	GAAI&''!+AFA3ww
71q1u9-q9:::QS
71q1u9-...Q
	    ::s   A-A: :
BBrF   axisintdistbytes | bytearrayc                  d S N r   rO   rQ   r   s       r'   r   r      s	     Cr(   NDArray[Any]c                  d S rT   rU   rV   s       r'   r   r      	     3r(    bytes | bytearray | NDArray[Any]c              :   |dk    rt          d|d          t          | t          t          f          rdt	          j        | t          j                  } t	          j        | d          }t	          j        |d| d                   	                                S | j
        }|j        dk    r$|                     |j         d|j                   } t	          j        | |          }t          d	          g| j        z  }d||<   t	          j        |d| t#          |                   |          }| j
        j        sA|                    d
          }|                    |j
                                                  }|j        dk    r|                    |          S |S )zEncode Delta.rF   zdelta_encode with dist=# requires the 'imagecodecs' packagedtyper   )rO   fuNT)NotImplementedErrorr    r   	bytearrayr!   
frombufferuint8diffinsertr#   r^   kindview	byteorderitemsizeslicendimtupleisnativebyteswapnewbyteorder)r   rO   rQ   r   re   r^   keys          r'   r   r      s    qyy!KKKK
 
 	
 $	*++ 8EK888z$Q'''|D!T!W--55777JEzSyyEO>>en>>??:d&&&D#Dkk]TY6CCI<aeCjj!1===D: 4}}T""yy002233zSyyKr(   c                  d S rT   rU   rV   s       r'   r   r     	     Cr(   c                  d S rT   rU   rV   s       r'   r   r     rY   r(   c                 |dk    rt          d|d          ||j        j        sd}t          | t          t
          f          rTt          j        | t          j                  } t          j	        | dt          j        |          
                                S | j        j        dk    r| j        j        st          d	| j        d          |                     | j        j         d
| j        j                   }t          j	        |||j                  }|                    | j                  S t          j	        | || j        |          S )zDecode Delta.rF   zdelta_decode with dist=r\   Nr]   r   )rO   r^   r   r_   zdelta_decode with r`   )rO   r^   )ra   flags	writeabler    r   rb   r!   rc   rd   cumsumr#   r^   rg   rn   rh   ri   rj   )r   rO   rQ   r   rh   s        r'   r   r     s`    qyy!KKKK
 
 	
 sy2$	*++ EK888|q
 
 

'))	 z#z" 	%5TZ 5 5 5   yyDJ0HH4:3FHHII|Dt4:>>>yy$$$<4tzs   r(   )r   	_bitorderry   	list[Any]c                  d S rT   rU   r   r   ry   s      r'   r   r   ?  rs   r(   c                  d S rT   rU   r|   s      r'   r   r   E  rY   r(   c                 |sN|                     d           |                     t          j        |d         t          j                             t	          | t
          t          f          r|                     |d                   S 	 |                     d          }t          j	        |d         ||           | S # t          $ r}t          d          |d}~ww xY w)	aO  Reverse bits in each byte of bytes or numpy array.

    Decode data where pixels with lower column values are stored in the
    lower-order bits of the bytes (TIFF FillOrder is LSB2MSB).

    Parameters:
        data:
            Data to bit-reversed. If bytes type, a new bit-reversed
            bytes is returned. NumPy arrays are bit-reversed in-place.

    Examples:
        >>> bitorder_decode(b'\x01\x64')
        b'\x80&'
        >>> data = numpy.array([1, 666], dtype='uint16')
        >>> _ = bitorder_decode(data)
        >>> data
        array([  128, 16473], dtype=uint16)

    s    @ `P0pH(hX8xD$dT4tL,l\<|B"bR2r
J*jZ:zF&fV6vN.n^>~A!aQ1q	I)iY9yE%eU5uM-m]=}C#cS3sK+k[;{G'gW7wO/o_?r   r]   rd   rF   r   z<bitorder_decode of slices requires the 'imagecodecs' packageN)appendr!   rc   rd   r    r   rb   	translaterh   take
ValueErrorra   )r   r   ry   rh   excs        r'   r   r   K  s    4  L!	
 	
 	
  	))A,ekJJJKKK$	*++ ,~~il+++yy!!
9Q<40000   !J
 
	s   	3B= =
CCCr^   r   bitspersamplerunlenc              l   |dk    rt          j        | d          }t          j        |          }|dz  r@|                    d|d|dz  z
  z             }|ddd|f                             d          }|                    |          S |dv rt          j        | |          S t          d| d          )	aA  Decompress bytes to array of integers.

    This implementation only handles itemsizes 1, 8, 16, 32, and 64 bits.
    Install the Imagecodecs package for decoding other integer sizes.

    Parameters:
        data:
            Data to decompress.
        dtype:
            Numpy boolean or integer type.
        bitspersample:
            Number of bits per integer.
        runlen:
            Number of consecutive integers after which to start at next byte.

    Examples:
        >>> packints_decode(b'a', 'B', 1)
        array([0, 1, 1, 0, 0, 0, 0, 1], dtype=uint8)

    rF   z|B   rN   N)r          @   zpackints_decode of z0-bit integers requires the 'imagecodecs' package)r!   rc   
unpackbitsreshapeastypera   )r   r^   r   r   r   
data_arrays         r'   r   r     s    : %dD11
%j11
A: 	<#++B!fqj.0IJJJ#AAAwwJ/77;;J  '''''e,,,
	-m 	- 	- 	-  r(   c                   t          d          )zTightly pack integers.z2packints_encode requires the 'imagecodecs' packagera   )r   r   rO   r   s       r'   r   r     s     <  r(   ri   Literal['>', '<']c                    t          d          )z"Return float32 array from float24.z1float24_decode requires the 'imagecodecs' packager   )r   ri   s     r'   r   r     s     ;  r(   rT   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )rD   r   r   r   r   r   )rN   rF   )
rO   rP   rQ   rP   r   rR   r   r   r   r   )
rO   rP   rQ   rP   r   rW   r   r   r   rW   )
rO   rP   rQ   rP   r   rZ   r   r   r   r   )r   rR   r   r   ry   rz   r   r   )r   rW   r   r   ry   rz   r   rW   )r   rZ   r   r   ry   rz   r   r   )r   )r^   r   r   rP   r   rP   r   r   r   r   r   rW   )rN   )
r   rP   rO   rP   r   rW   r   r   r   r   )ri   r   r   r   r   rW   )__doc__
__future__r   __all__typingr   r   r!   r   r   numpy.typingr   r   r$   r	   r   ImportErrorr6   r   r   rB   r<   r   r   r
   r   r   r   r   r   r   rU   r(   r'   <module>r      sc  @  # " " " " "    + * * * * * * *  0########////////%KKK
 !
#
 
# 
# 
# 
# 
# 
# 37 % % % % % % %    
 !

 
 
 
 
 
 
 37        *&KKK
 !
B
 
B 
B 
B 
B 
B 
B 37 % % % % % % %     !

 
 
 
 
 
 
 37        ,%      
 !
0
 
0 
0 
0 
0 
0 
0 37 % % % % % % %    
 !

 
 
 
 
 
 
 37        * 6:      B 
 	      
 
78HL     
 	      B 
   

 
   
 	      D 
.22     

 
)-b     
 6 6 6 6 6 6| ) ) ) ) ) ) )` 	           s5   A AAA2 2B
	B
B% %B=<B=