
    |h4                       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	 ddlZ	 d$dd	 	 	 	 	 	 	 d%dZddd&dZ	 ddlmZ 	 d$dd	 	 	 	 	 	 	 d%dZddd&dZddd'dZe	 	 d(dd	 	 	 	 	 	 	 	 	 d)d       Ze	 d(dd	 	 	 	 	 	 	 	 	 d*d       Z	 	 d(dd	 	 	 	 	 	 	 	 	 d+dZe	 	 	 	 	 	 	 	 	 	 d)d       Ze	 	 	 	 	 	 	 	 	 	 d*d       Z	 	 d(dd	 	 	 	 	 	 	 	 	 d+dZedg d	 	 	 	 	 	 	 d,d       Zedg d	 	 	 	 	 	 	 d-d       Zdg d	 	 	 	 	 	 	 d.d Z	 d/dd	 	 	 	 	 	 	 	 	 	 	 d0d!Z	 d1dd	 	 	 	 	 	 	 	 	 d2d"Z	 	 	 	 	 	 d3d#Zy# e$ r 	 d$dd	 	 	 	 	 	 	 d%dZddd&dZY Cw xY w# e$ r 	 d$dd	 	 	 	 	 	 	 d%dZddd&dZY Jw xY w# e$ r 	 d$dd	 	 	 	 	 	 	 d%dZddd&dZY Ow xY w)4a   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outc                  t        | t        j                        r| j                         } t	        j
                  |       S )zCompress LZMA.)
isinstancenumpyndarraytobyteslzmacompressdatalevelr   s      T/var/www/html/test/engine/venv/lib/python3.12/site-packages/tifffile/_imagecodecs.pyr	   r	   H   s,     dEMM*<<>D}}T""    c              ,    t        j                  |       S )zDecompress LZMA.)r   
decompressr!   r   s     r#   r   r   T       t$$r$   c                  ddl }yRaise ImportError.r   Nr$   r   )r!   r"   r   r   s       r#   r	   r	   Z   
     	r$   c                  ddl }yr*   r,   )r!   r   r   s      r#   r   r   f       r$   c                  t        | t        j                        r| j                         } t	        j
                  | |d      S |      S )zCompress Zlib DEFLATE.   )r   r   r   r   zlibr   r    s      r#   r   r   p   s:     dEMM*<<>D}}T1AA5AAr$   c              ,    t        j                  |       S )zDecompress Zlib DEFLATE.)r2   r&   r'   s     r#   r   r   |   r(   r$   c                  ddl }yr*   r2   )r!   r"   r   r2   s       r#   r   r      r-   r$   c                  ddl }yr*   r5   )r!   r   r2   s      r#   r   r      r/   r$   zstdc                  t        | t        j                        r| j                         } t	        j
                  | |      S )zCompress ZSTD.)r"   )r   r   r   r   r8   r   r    s      r#   r   r      s.     dEMM*<<>D}}T//r$   c              ,    t        j                  |       S )zDecompress ZSTD.)r8   r&   r'   s     r#   r   r      r(   r$   c                  ddl m} yr+   r   r7   r$   compressionr8   )r!   r"   r   r8   s       r#   r   r      s
     	%r$   c                  ddl m} yr<   r=   )r!   r   r8   s      r#   r   r      s    $r$   c                  g }|j                   }d}	 	 t        | ||dz          dz   }|dz  }|dkD  r || ||dz    d|z
  z         |dz  }n|dk  r || |||z           ||z  }Q# t        $ r Y t        |      S w xY w)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         i  )extendord	TypeErrorbytes)encodedr   
out_extendins        r#   r
   r
      s     CJ	AGAA&'!+AFA3w71q1u-q9:QS71q1u-.Q   :s   AA$ $	A:9A:c                   y N r!   axisdistr   s       r#   r   r      s     r$   c                   y rL   rM   rN   s       r#   r   r           r$   c              @   |dk7  rt        d|d      t        | t        t        f      rdt	        j
                  | t        j                        } t	        j                  | d      }t	        j                  |d| d         j                         S | j                  }|j                  dk(  r*| j                  |j                   d|j                         } t	        j                  | |      }t        d	      g| j                   z  }d||<   t	        j                  |d| t#        |         |      }| j                  j$                  s:|j'                  d
      }|j                  |j                  j)                               }|j                  dk(  r|j                  |      S |S )zEncode Delta.rA   zdelta_encode with dist=# requires the 'imagecodecs' packagedtyper   )rO   fuNT)NotImplementedErrorr   rF   	bytearrayr   
frombufferuint8diffinsertr   rV   kindview	byteorderitemsizeslicendimtupleisnativebyteswapnewbyteorder)r!   rO   rP   r   r]   rV   keys          r#   r   r      sT    qy!&'JK
 	
 $	*+EKK8zz$Q'||D!T!W-5577JJEzzSyyEOO,Aenn-=>?::d&D#Dk]TYY6CCI<<aeCj!1=D::}}T"yy0023zzSyyKr$   c                   y rL   rM   rN   s       r#   r   r          r$   c                   y rL   rM   rN   s       r#   r   r     rR   r$   c              
   |dk7  rt        d|d      ||j                  j                  sd}t        | t        t
        f      rZt        j                  | t        j                        } t        j                  | dt        j                  |      j                         S | j                  j                  dk(  r| j                  j                  st        d	| j                  d      | j                  | j                  j                   d
| j                  j                          }t        j                  |||j                        }|j                  | j                        S t        j                  | || j                  |      S )zDecode Delta.rA   zdelta_decode with dist=rT   NrU   r   )rO   rV   r   rW   zdelta_decode with rX   )rO   rV   )rY   flags	writeabler   rF   rZ   r   r[   r\   cumsumr   rV   r_   rf   r`   ra   rb   )r!   rO   rP   r   r`   s        r#   r   r     s@    qy!&'JK
 	
 syy22$	*+EKK8||q

')	 zz#zz""%$TZZN 35 5  yyDJJ0014::3F3F2GHI||Dt4::>yy$$<<4tzzs r$   )r   	_bitorderc                   y rL   rM   r!   r   rq   s      r#   r   r   ?  rk   r$   c                   y rL   rM   rs   s      r#   r   r   E  rR   r$   c                 |sH|j                  d       |j                  t        j                  |d   t        j                               t	        | t
        t        f      r| j                  |d         S 	 | j                  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   rU   r\   rA   r   z<bitorder_decode of slices requires the 'imagecodecs' packageN)appendr   r[   r\   r   rF   rZ   	translater`   take
ValueErrorrY   )r!   r   rq   r`   excs        r#   r   r   K  s    4 !	
  	)))A,ekkJK$	*+~~il++yy!

9Q<40 !J
	s   6-B$ $	B>-B99B>c              J   |dk(  rvt        j                  | d      }t        j                  |      }|dz  r5|j                  d|d|dz  z
  z         }|ddd|f   j                  d      }|j	                  |      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)

    rA   z|B   N)r|          @   zpackints_decode of z0-bit integers requires the 'imagecodecs' package)r   r[   
unpackbitsreshapeastyperY   )r!   rV   bitspersamplerunlenr   
data_arrays         r#   r   r     s    : %%dD1
%%j1
A:#++B!fqj.0IJJ#AwwJ/77;J  '''e,,

m_ -- 	- r$   c                  t        d      )zTightly pack integers.z2packints_encode requires the 'imagecodecs' packagerY   )r!   r   rO   r   s       r#   r   r     s     < r$   c                   t        d      )z"Return float32 array from float24.z1float24_decode requires the 'imagecodecs' packager   )r!   ra   s     r#   r   r     s     ; r$   rL   )r"   z
int | Noner!   bytes | NDArray[Any]r   r   returnrF   )r!   rF   r   r   r   rF   )rG   rF   r   r   r   rF   )r}   rA   )
rO   intrP   r   r!   bytes | bytearrayr   r   r   rF   )
rO   r   rP   r   r!   NDArray[Any]r   r   r   r   )
rO   r   rP   r   r!    bytes | bytearray | NDArray[Any]r   r   r   r   )r!   r   r   r   rq   	list[Any]r   rF   )r!   r   r   r   rq   r   r   r   )r!   r   r   r   rq   r   r   r   )r   )rV   r   r   r   r   r   r!   rF   r   r   r   r   )r}   )
r   r   rO   r   r!   r   r   r   r   rF   )ra   zLiteral['>', '<']r!   rF   r   r   )__doc__
__future__r   __all__typingr   r   r   r   r   numpy.typingr   r   r   r	   r   ImportErrorr2   r   r   r>   r8   r   r   r
   r   r   r   r   r   r   rM   r$   r#   <module>r      s'  @ #  + #/%
 !
#
 
# 
#"
#
 
# 

# 37 %2&
 !
B
 
B 
B"
B
 
B 

B 37 %4% 
 !
0
 
0 
0"
0
 
0 

0 37 %2 6: B 
 	   	
 
  
 
78HL!$14
BE 
 	   	
* 
 B 
&)14
>A
 

 
!$,/
9< 
 	   	
* 
 D 
.22
(+?H
 

 
)-b
#&:C 
 6
*6 
	6
 6 6| ) ) ) 	)
 )
) 
) )` 	   	
 
 0
M  
 !

 
 
"

 
 

 37  P   !

 
 
"

 
 

 37  R  
 !

 
 
"

 
 

 37  s5   E+ F $F1 +F
FF.-F.1GG