
    dm                     t   d Z dZdZddlZddlmZ ddlmZmZ ddl	Z	 G d de          Z
 G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d d e          Z G d! d"e          Z G d# d$e          Z G d% d&e          Z G d' d(e          Z G d) d*e          Z G d+ d,e          Z G d- d.e          Z G d/ d0e          Z G d1 d2e          Z G d3 d4e          Z  G d5 d6e          Z! G d7 d8e          Z" G d9 d:e          Z# G d; d<e          Z$ G d= d>e          Z% G d? d@e          Z& G dA dBe          Z' G dC dDe          Z( G dE dFe          Z) G dG dHe          Z* G dI dJe          Z+ G dK dLe          Z, G dM dNe          Z- G dO dPe          Z. G dQ dRe          Z/dWdUZ0dV Z1dS )Xz3Additional numcodecs implemented using imagecodecs.z	2021.8.26)register_codecs    N)Codec)register_codec	get_codecc                   .    e Zd ZdZdZ	 ddZd ZddZdS )	AeczAEC codec for numcodecs.imagecodecs_aecNc                 >    || _         || _        || _        || _        d S Nbitspersampleflags	blocksizersi)selfr   r   r   r   s        5lib/python3.11/site-packages/imagecodecs/numcodecs.py__init__zAec.__init__2   s%     +
"    c                 \    t          j        || j        | j        | j        | j                  S )Nr   )imagecodecs
aec_encoder   r   r   r   r   bufs     r   encodez
Aec.encode:   s4    %,*n
 
 
 	
r   c                 ^    t          j        || j        | j        | j        | j        |          S )N)r   r   r   r   out)r   
aec_decoder   r   r   r   r   r   r   s      r   decodez
Aec.decodeC   s7    %,*n
 
 
 	
r   )NNNNr   __name__
__module____qualname____doc__codec_idr   r   r    r   r   r   r   -   s]        "" H CG   
 
 

 
 
 
 
 
r   r   c                   :    e Zd ZdZdZ	 	 	 	 	 	 	 ddZd ZddZdS )	AvifzAVIF codec for numcodecs.imagecodecs_avifNc                 h    || _         || _        || _        || _        || _        || _        || _        d S r   )levelspeedtilelog2r   pixelformat
maxthreadsindex)r   r+   r,   r-   r   r.   r/   r0   s           r   r   zAvif.__init__S   s;     

 *&$


r   c           	          t          j        |          }t          j        || j        | j        | j        | j        | j        | j	                  S )N)r+   r,   r-   r   r.   r/   )
numpyasarrayr   avif_encoder+   r,   r-   r   r.   r/   r   s     r   r   zAvif.encodee   sN    mC  &**],(
 
 
 	
r   c                 :    t          j        || j        |          S )N)r0   r   )r   avif_decoder0   r   s      r   r   zAvif.decodeq   s    &s$*#FFFFr   )NNNNNNNr   r    r&   r   r   r(   r(   N   ss        ##!H    $

 

 

G G G G G Gr   r(   c                   $    e Zd ZdZdZd ZddZdS )BitorderzBitorder codec for numcodecs.imagecodecs_bitorderc                 *    t          j        |          S r   )r   bitorder_encoder   s     r   r   zBitorder.encodez   s    *3///r   Nc                 .    t          j        ||          S Nr   )r   bitorder_decoder   s      r   r   zBitorder.decode}       *3C8888r   r   r!   r"   r#   r$   r%   r   r   r&   r   r   r8   r8   u   sB        ''%H0 0 09 9 9 9 9 9r   r8   c                   ,    e Zd ZdZdZd	dZd Zd
dZdS )
BitshufflezBitshuffle codec for numcodecs.imagecodecs_bitshuffle   r   c                 "    || _         || _        d S r   itemsizer   )r   rH   r   s      r   r   zBitshuffle.__init__   s     "r   c                 h    t          j        || j        | j                                                  S )NrG   )r   bitshuffle_encoderH   r   tobytesr   s     r   r   zBitshuffle.encode   s0    ,$-4>
 
 

'))	r   Nc                 F    t          j        || j        | j        |          S )N)rH   r   r   )r   bitshuffle_decoderH   r   r   s      r   r   zBitshuffle.decode   s)    ,$-4>s
 
 
 	
r   )rE   r   r   r    r&   r   r   rC   rC      sV        ))'H# # # #  

 
 
 
 
 
r   rC   c                   8    e Zd ZdZdZ	 	 	 	 	 	 ddZd Zd	dZdS )
BlosczBlosc codec for numcodecs.imagecodecs_bloscNrE   c                 Z    || _         || _        || _        || _        || _        || _        d S r   r+   
compressortypesizer   shuffle
numthreadsr   r+   rS   rT   r   rU   rV   s          r   r   zBlosc.__init__   2     
$ "$r   c           	          t          j        |          }t          j        || j        | j        | j        | j        | j        | j	                  S NrR   )
r2   r3   r   blosc_encoder+   rS   rT   r   rU   rV   r   s     r   r   zBlosc.encode   sL    mC  '*]nL
 
 
 	
r   c                 :    t          j        || j        |          S N)rV   r   )r   blosc_decoderV   r   s      r   r   zBlosc.decode   s%    'DO
 
 
 	
r   NNNNNrE   r   r    r&   r   r   rO   rO      sj        $$"H % % % % 

 

 


 
 
 
 
 
r   rO   c                   8    e Zd ZdZdZ	 	 	 	 	 	 ddZd Zd	dZdS )
Blosc2zBlosc2 codec for numcodecs.imagecodecs_blosc2NrE   c                 Z    || _         || _        || _        || _        || _        || _        d S r   rR   rW   s          r   r   zBlosc2.__init__   rX   r   c           	          t          j        |          }t          j        || j        | j        | j        | j        | j        | j	                  S rZ   )
r2   r3   r   blosc2_encoder+   rS   rT   r   rU   rV   r   s     r   r   zBlosc2.encode   sL    mC  (*]nL
 
 
 	
r   c                 :    t          j        || j        |          S r]   )r   blosc2_decoderV   r   s      r   r   zBlosc2.decode   s%    (DO
 
 
 	
r   r_   r   r    r&   r   r   ra   ra      sj        %%#H % % % % 

 

 


 
 
 
 
 
r   ra   c                   ,    e Zd ZdZdZddZd ZddZdS )	BrotlizBrotli codec for numcodecs.imagecodecs_brotliNc                 0    || _         || _        || _        d S r   r+   modelgwin)r   r+   rm   rn   s       r   r   zBrotli.__init__   s    
	


r   c                 P    t          j        || j        | j        | j                  S )Nrl   )r   brotli_encoder+   rm   rn   r   s     r   r   zBrotli.encode   s+    (tz	
 
 
 	
r   c                 .    t          j        ||          S r=   )r   brotli_decoder   s      r   r   zBrotli.decode       (#6666r   NNNr   r    r&   r   r   ri   ri      sV        %%#H   

 
 

7 7 7 7 7 7r   ri   c                   ,    e Zd ZdZdZddZd ZddZdS )Bz2zBz2 codec for numcodecs.imagecodecs_bz2Nc                     || _         d S r   r+   r   r+   s     r   r   zBz2.__init__       


r   c                 8    t          j        || j                  S Nry   )r   
bz2_encoder+   r   s     r   r   z
Bz2.encode   s    %c<<<<r   c                 .    t          j        ||          S r=   )r   
bz2_decoder   s      r   r   z
Bz2.decode      %cs3333r   r   r    r&   r   r   rv   rv      sV        "" H   = = =4 4 4 4 4 4r   rv   c                   ,    e Zd ZdZdZddZd Zd	dZdS )
DeflatezDeflate codec for numcodecs.imagecodecs_deflateNFc                 <    || _         t          |          | _        d S r   )r+   boolraw)r   r+   r   s      r   r   zDeflate.__init__
  s    
99r   c                 D    t          j        || j        | j                  S )N)r+   r   )r   deflate_encoder+   r   r   s     r   r   zDeflate.encode  s    )#TZTXNNNNr   c                 :    t          j        ||| j                  S )N)r   r   )r   deflate_decoder   r   s      r   r   zDeflate.decode  s    )#3DHEEEEr   )NFr   r    r&   r   r   r   r     s_        &&$H   O O OF F F F F Fr   r   c                   ,    e Zd ZdZdZd	dZd Zd
dZdS )DeltazDelta codec for numcodecs.imagecodecs_deltaNrE   c                     |d nt          |          | _        |d nt          j        |          j        | _        || _        || _        d S r   tupleshaper2   dtypestraxisdistr   r   r   r   r   s        r   r   zDelta.__init__  sG    "<TTe
"FTTE0B0B0F
				r   c                     | j         | j        8t          j        |          }|j         | j         k    sJ |j        | j        k    sJ t	          j        || j        | j                                                  S N)r   r   )	r   r   r2   r3   r   delta_encoder   r   rK   r   s     r   r   zDelta.encode   s|    : 	+TZ 	+-$$C9
****9
****'didi
 
 

'))	r   c                     | j         | j        ( t          j        || j                  j        | j          }t          j        || j        | j        |          S Nr   )r   r   r   )	r   r   r2   
frombufferreshaper   delta_decoder   r   r   s      r   r   zDelta.decode)  sa    : 	OTZ 	OA%"3dj999A4:NC'didiS
 
 
 	
r   )NNr   rE   r   r    r&   r   r   r   r     sV        $$"H     
 
 
 
 
 
r   r   c                   ,    e Zd ZdZdZddZd ZddZdS )	Float24zFloat24 codec for numcodecs.imagecodecs_float24Nc                 "    || _         || _        d S r   	byteorderrounding)r   r   r   s      r   r   zFloat24.__init__6  s    " r   c                 l    t          j        |          }t          j        || j        | j                  S )Nr   )r2   r3   r   float24_encoder   r   r   s     r   r   zFloat24.encode:  s6    mC  )4>DM
 
 
 	
r   c                 :    t          j        || j        |          S )N)r   r   )r   float24_decoder   r   s      r   r   zFloat24.decode@  s%    )4>s
 
 
 	
r   )NNr   r    r&   r   r   r   r   1  sV        &&$H! ! ! !
 
 

 
 
 
 
 
r   r   c                   ,    e Zd ZdZdZd	dZd Zd
dZdS )	FloatPredz-Floating Point Predictor codec for numcodecs.imagecodecs_floatpredr   rE   c                     t          |          | _        t          j        |          j        | _        || _        || _        d S r   r   r   s        r   r   zFloatPred.__init__K  s5    5\\
[''+
				r   c                     t          j        |          }|j        | j        k    sJ |j        | j        k    sJ t	          j        || j        | j                                                  S r   )	r2   r3   r   r   r   floatpred_encoder   r   rK   r   s     r   r   zFloatPred.encodeQ  si    mC  yDJ&&&&yDJ&&&&+didi
 
 

'))	r   Nc                     t          |t          j                  s( t          j        || j                  j        | j         }t          j        || j	        | j
        |          S r   )
isinstancer2   ndarrayr   r   r   r   r   floatpred_decoder   r   r   s      r   r   zFloatPred.decodeY  sa    #u}-- 	OA%"3dj999A4:NC+didiS
 
 
 	
r   )r   rE   r   r    r&   r   r   r   r   F  sV        77&H     
 
 
 
 
 
r   r   c                   $    e Zd ZdZdZd ZddZdS )GifzGIF codec for numcodecs.imagecodecs_gifc                 R    t          j        |          }t          j        |          S r   )r2   r3   r   
gif_encoder   s     r   r   z
Gif.encodef  s"    mC  %c***r   Nc                 0    t          j        |d|          S )NF)asrgbr   )r   
gif_decoder   s      r   r   z
Gif.decodej  s    %cC@@@@r   r   rA   r&   r   r   r   r   a  sH        "" H+ + +A A A A A Ar   r   c                   Z    e Zd ZdZdZ	 	 	 	 	 	 	 	 	 d	dZd Zd
dZd Ze	d             Z
dS )JpegzJPEG codec for numcodecs.imagecodecs_jpegNc
                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        d S r   )	tablesheaderr   colorspace_datacolorspace_jpegr+   subsamplingoptimize	smoothing)
r   r   r   r   r   r   r+   r   r   r   s
             r   r   zJpeg.__init__s  sK     *..
& "r   c           	          t          j        |          }t          j        || j        | j        | j        | j        | j        | j	                  S )N)r+   
colorspaceoutcolorspacer   r   r   )
r2   r3   r   jpeg_encoder+   r   r   r   r   r   r   s     r   r   zJpeg.encode  sO    mC  &*+.(]n
 
 
 	
r   c           	      j    t          j        || j        | j        | j        | j        | j        |          S )N)r   r   r   r   r   r   )r   jpeg_decoder   r   r   r   r   r   s      r   r   zJpeg.decode  s>    &,;;+.
 
 
 	
r   c                     t          | j                  }| j        D ]]}|                    d          sFt	          | |          }|/|dv r+ddl}|                    |                                          }|||<   ^|S )z3Return dictionary holding configuration parameters.)id_Nr   r   r   )dictr%   __dict__
startswithgetattrbase64	b64encoder   )r   configkeyvaluer   s        r   
get_configzJpeg.get_config  s    '''= 	$ 	$C>>#&& $c** =0D)D =!MMM",,U\\^^<<E#sr   c                     dD ]]}|                     |d          }|Ct          |t                    r.ddl}|                    |                                          ||<   ^ | di |S )z,Instantiate codec from configuration object.r   Nr   r&   )getr   r   r   	b64decoder   )clsr   r   r   r   s        r   from_configzJpeg.from_config  sz     ( 	? 	?CJJsD))E ?Zs%;%; ?$..u||~~>>ss}}V}}r   )	NNNNNNNNNr   )r!   r"   r#   r$   r%   r   r   r   r   classmethodr   r&   r   r   r   r   n  s        ##!H # # # #,

 

 

	
 	
 	
 	
     [  r   r   c                   8    e Zd ZdZdZ	 	 	 	 	 	 ddZd Zd	dZdS )
Jpeg2kzJPEG 2000 codec for numcodecs.imagecodecs_jpeg2kNr   c                 |    || _         || _        || _        |d nt          |          | _        || _        || _        d S r   )r+   codecformatr   r   tile
reversibleverbose)r   r+   r   r   r   r   r   s          r   r   zJpeg2k.__init__  sB     
&$ 9DDeDkk	$r   c           	          t          j        |          }t          j        || j        | j        | j        | j        | j        | j	                  S )N)r+   r   r   r   r   r   )
r2   r3   r   jpeg2k_encoder+   r   r   r   r   r   r   s     r   r   zJpeg2k.encode  sM    mC  (*(L
 
 
 	
r   c                 :    t          j        || j        |          S )N)r   r   )r   jpeg2k_decoder   r   s      r   r   zJpeg2k.decode  s    (dlLLLLr   )NNNNNr   r   r    r&   r   r   r   r     sp        ((#H     

 

 

M M M M M Mr   r   c                   ,    e Zd ZdZdZddZd ZddZdS )JpegLszJPEG LS codec for numcodecs.imagecodecs_jpeglsNc                     || _         d S r   ry   rz   s     r   r   zJpegLs.__init__  r{   r   c                 `    t          j        |          }t          j        || j                  S r}   )r2   r3   r   jpegls_encoder+   r   s     r   r   zJpegLs.encode  s)    mC  (DJ????r   c                 .    t          j        ||          S r=   )r   jpegls_decoder   s      r   r   zJpegLs.decode  rs   r   r   r    r&   r   r   r   r     sY        &&#H   @ @ @7 7 7 7 7 7r   r   c                   <    e Zd ZdZdZ	 	 	 	 	 	 	 	 ddZd ZddZdS )	JpegXlzJPEG XL codec for numcodecs.imagecodecs_jpegxlNc	                 v    || _         || _        || _        || _        || _        || _        || _        || _        d S r   )r+   effortdistancephotometricusecontainerr0   keeporientationrV   )	r   r+   r   r   r   r   r0   r   rV   s	            r   r   zJpegXl.__init__  sC     
 &(
.$r   c           	          t          j        |          }t          j        || j        | j        | j        | j        | j        | j	                  S )N)r+   r   r   r   r   rV   )
r2   r3   r   jpegxl_encoder+   r   r   r   r   rV   r   s     r   r   zJpegXl.encode
  sN    mC  (*;](*
 
 
 	
r   c                 R    t          j        || j        | j        | j        |          S )N)r0   r   rV   r   )r   jpegxl_decoder0   r   rV   r   s      r   r   zJpegXl.decode  s2    (* 0
 
 
 	
r   )NNNNNNNNr   r    r&   r   r   r   r     sp        &&#H
 % % % %.

 

 


 
 
 
 
 
r   r   c                   6    e Zd ZdZdZ	 	 	 	 	 ddZd ZddZdS )	JpegXrzJPEG XR codec for numcodecs.imagecodecs_jpegxrNc                 L    || _         || _        || _        || _        || _        d S r   )r+   r   hasalpha
resolutionfp2int)r   r+   r   r	  r
  r  s         r   r   zJpegXr.__init__%  s,     
& $r   c                     t          j        |          }t          j        || j        | j        | j        | j                  S )N)r+   r   r	  r
  )r2   r3   r   jpegxr_encoder+   r   r	  r
  r   s     r   r   zJpegXr.encode3  sC    mC  (*(]
 
 
 	
r   c                 :    t          j        || j        |          S )N)r  r   )r   jpegxr_decoder  r   s      r   r   zJpegXr.decode=  s    (T[cJJJJr   )NNNNNr   r    r&   r   r   r  r     sm        &&#H    
 
 
K K K K K Kr   r  c                   ,    e Zd ZdZdZddZd ZddZdS )	LerczLERC codec for numcodecs.imagecodecs_lercNc                 0    || _         || _        || _        d S r   r+   versionplanarconfig)r   r+   r  r  s       r   r   zLerc.__init__F  s    
(r   c                 x    t          j        |          }t          j        || j        | j        | j                  S )Nr  )r2   r3   r   lerc_encoder+   r  r  r   s     r   r   zLerc.encodeM  s>    mC  &*L*	
 
 
 	
r   c                 .    t          j        ||          S r=   )r   lerc_decoder   s      r   r   zLerc.decodeV      &s4444r   rt   r   r    r&   r   r   r  r  A  sV        ##!H) ) ) )
 
 
5 5 5 5 5 5r   r  c                   ,    e Zd ZdZdZddZd ZddZdS )LjpegzLJPEG codec for numcodecs.imagecodecs_ljpegNc                     || _         d S r   r   )r   r   s     r   r   zLjpeg.__init___  s    *r   c                 `    t          j        |          }t          j        || j                  S )Nr   )r2   r3   r   ljpeg_encoder   r   s     r   r   zLjpeg.encodeb  s*    mC  '4;MNNNNr   c                 .    t          j        ||          S r=   )r   ljpeg_decoder   s      r   r   zLjpeg.decodef  s    '5555r   r   r    r&   r   r   r  r  Z  sY        $$"H+ + + +O O O6 6 6 6 6 6r   r  c                   ,    e Zd ZdZdZd	dZd Zd
dZdS )Lz4zLZ4 codec for numcodecs.imagecodecs_lz4NFTc                 J    || _         || _        t          |          | _        d S r   )r+   hcr   r   )r   r+   r)  r   s       r   r   zLz4.__init__o  s!    
6llr   c                 P    t          j        || j        | j        | j                  S )N)r+   r)  r   )r   
lz4_encoder+   r)  r   r   s     r   r   z
Lz4.encodet  s+    %tzdgdk
 
 
 	
r   c                 :    t          j        || j        |          S N)r   r   )r   
lz4_decoder   r   s      r   r   z
Lz4.decodey      %c$+3GGGGr   NFTr   r    r&   r   r   r&  r&  j  s\        "" H# # # #

 
 

H H H H H Hr   r&  c                   4    e Zd ZdZdZ	 	 	 	 ddZd Zd	dZdS )
Lz4fzLZ4F codec for numcodecs.imagecodecs_lz4fNFc                 >    || _         || _        || _        || _        d S r   r+   blocksizeidcontentchecksumblockchecksum)r   r+   r6  r7  r8  s        r   r   zLz4f.__init__  s)     
&.*r   c                 \    t          j        || j        | j        | j        | j                  S )Nr5  )r   lz4f_encoder+   r6  r7  r8  r   s     r   r   zLz4f.encode  s6    &*( 0,
 
 
 	
r   c                 .    t          j        ||          S r=   )r   lz4f_decoder   s      r   r   zLz4f.decode  r  r   )NFNNr   r    r&   r   r   r2  r2  }  sd        ##!H 
+ 
+ 
+ 
+
 
 
5 5 5 5 5 5r   r2  c                   ,    e Zd ZdZdZddZd Zd	dZdS )
LzfzLZF codec for numcodecs.imagecodecs_lzfTc                 .    t          |          | _        d S r   )r   r   )r   r   s     r   r   zLzf.__init__  s    6llr   c                 8    t          j        || j                  S )N)r   )r   
lzf_encoder   r   s     r   r   z
Lzf.encode  s    %c$+>>>>r   Nc                 :    t          j        || j        |          S r-  )r   
lzf_decoder   r   s      r   r   z
Lzf.decode  r/  r   )Tr   r    r&   r   r   r>  r>    s\        "" H# # # #? ? ?H H H H H Hr   r>  c                   ,    e Zd ZdZdZddZd ZddZdS )LzmazLZMA codec for numcodecs.imagecodecs_lzmaNc                     || _         d S r   ry   rz   s     r   r   zLzma.__init__  r{   r   c                 8    t          j        || j                  S r}   )r   lzma_encoder+   r   s     r   r   zLzma.encode      &s$*====r   c                 .    t          j        ||          S r=   )r   lzma_decoder   s      r   r   zLzma.decode  r  r   r   r    r&   r   r   rF  rF    V        ##!H   > > >5 5 5 5 5 5r   rF  c                   $    e Zd ZdZdZd ZddZdS )LzwzLZW codec for numcodecs.imagecodecs_lzwc                 *    t          j        |          S r   )r   
lzw_encoder   s     r   r   z
Lzw.encode  s    %c***r   Nc                 .    t          j        ||          S r=   )r   
lzw_decoder   s      r   r   z
Lzw.decode  r   r   r   rA   r&   r   r   rP  rP    sB        "" H+ + +4 4 4 4 4 4r   rP  c                   ,    e Zd ZdZdZddZd ZddZdS )PackBitszPackBits codec for numcodecs.imagecodecs_packbitsNc                     || _         d S r   r   )r   r   s     r   r   zPackBits.__init__  s    			r   c                     t          |t          t          f          st          j        |          }t          j        || j                  S NrZ  )r   bytes	bytearrayr2   r3   r   packbits_encoder   r   s     r   r   zPackBits.encode  s@    #y122 	%-$$C*3TY????r   c                 .    t          j        ||          S r=   )r   packbits_decoder   s      r   r   zPackBits.decode  r@   r   r   r    r&   r   r   rW  rW    sY        ''%H   @ @ @
9 9 9 9 9 9r   rW  c                   ,    e Zd ZdZdZddZd Zd	dZdS )
PglzzPGLZ codec for numcodecs.imagecodecs_pglzTNc                 <    t          |          | _        || _        d S r   )r   r   strategy)r   r   rf  s      r   r   zPglz.__init__  s    6ll r   c                 D    t          j        || j        | j                  S )N)rf  r   )r   pglz_encoderf  r   r   s     r   r   zPglz.encode  s'    &$-
 
 
 	
r   c                 :    t          j        || j        |          S r-  )r   pglz_decoder   r   s      r   r   zPglz.decode  s    &s4;CHHHHr   )TNr   r    r&   r   r   rc  rc    s\        ##!H! ! ! !
 
 

I I I I I Ir   rc  c                   ,    e Zd ZdZdZddZd ZddZdS )PngzPNG codec for numcodecs.imagecodecs_pngNc                     || _         d S r   ry   rz   s     r   r   zPng.__init__  r{   r   c                 `    t          j        |          }t          j        || j                  S r}   )r2   r3   r   
png_encoder+   r   s     r   r   z
Png.encode  s)    mC  %c<<<<r   c                 .    t          j        ||          S r=   )r   
png_decoder   s      r   r   z
Png.decode  r   r   r   r    r&   r   r   rl  rl    sV        "" H   = = =4 4 4 4 4 4r   rl  c                   ,    e Zd ZdZdZddZd ZddZdS )RcompzRcomp codec for numcodecs.imagecodecs_rcompNc                 x    t          |          | _        t          j        |          j        | _        || _        d S r   )r   r   r2   r   r   nblock)r   r   r   rw  s       r   r   zRcomp.__init__  s.    5\\
[''+
r   c                 8    t          j        || j                  S )N)rw  )r   rcomp_encoderw  r   s     r   r   zRcomp.encode  s    'DK@@@@r   c                 R    t          j        || j        | j        | j        |          S )N)r   r   rw  r   )r   rcomp_decoder   r   rw  r   s      r   r   zRcomp.decode  s1    '**;
 
 
 	
r   r   r    r&   r   r   rt  rt    sY        $$"H   
A A A
 
 
 
 
 
r   rt  c                   $    e Zd ZdZdZd ZddZdS )SnappyzSnappy codec for numcodecs.imagecodecs_snappyc                 *    t          j        |          S r   )r   snappy_encoder   s     r   r   zSnappy.encode      (---r   Nc                 .    t          j        ||          S r=   )r   snappy_decoder   s      r   r   zSnappy.decode  rs   r   r   rA   r&   r   r   r}  r}    B        %%#H. . .7 7 7 7 7 7r   r}  c                   ,    e Zd ZdZdZddZd Zd	dZdS )
TiffzTIFF codec for numcodecs.imagecodecs_tiffNr   c                 J    || _         t          |          | _        || _        d S r   )r0   r   r   r   )r   r0   r   r   s       r   r   zTiff.__init__!  s!    
%[[
r   c                 R    t          j        |          }t          j        |          S r   )r2   r3   r   tiff_encoder   s     r   r   zTiff.encode&  s"    mC  &s+++r   c                 R    t          j        || j        | j        | j        |          S )N)r0   r   r   r   )r   tiff_decoder0   r   r   r   s      r   r   zTiff.decode+  s1    &**L
 
 
 	
r   )NNr   r   r    r&   r   r   r  r    sV        ##!H   
, , ,

 
 
 
 
 
r   r  c                   ,    e Zd ZdZdZddZd ZddZdS )WebpzWebP codec for numcodecs.imagecodecs_webpNc                     || _         d S r   ry   rz   s     r   r   zWebp.__init__:  r{   r   c                 `    t          j        |          }t          j        || j                  S r}   )r2   r3   r   webp_encoder+   r   s     r   r   zWebp.encode=  s)    mC  &s$*====r   c                 .    t          j        ||          S r=   )r   webp_decoder   s      r   r   zWebp.decodeA  r  r   r   r    r&   r   r   r  r  5  sV        ##!H   > > >5 5 5 5 5 5r   r  c                   ,    e Zd ZdZdZddZd Zd	dZdS )
XorzXOR codec for numcodecs.imagecodecs_xorNr   c                     |d nt          |          | _        |d nt          j        |          j        | _        || _        d S r   )r   r   r2   r   r   r   )r   r   r   r   s       r   r   zXor.__init__J  s@    "<TTe
"FTTE0B0B0F
			r   c                     | j         | j        8t          j        |          }|j         | j         k    sJ |j        | j        k    sJ t	          j        || j                                                  S r\  )r   r   r2   r3   r   
xor_encoder   rK   r   s     r   r   z
Xor.encodeO  sr    : 	+TZ 	+-$$C9
****9
****%c	:::BBDDDr   c                     | j         | j        ( t          j        || j                  j        | j          }t          j        || j        |          S )Nr   )r   r   )r   r   r2   r   r   r   
xor_decoder   r   s      r   r   z
Xor.decodeV  sT    : 	OTZ 	OA%"3dj999A4:NC%c	sCCCCr   )NNr   r   r    r&   r   r   r  r  E  s_        "" H   
E E ED D D D D Dr   r  c                   :    e Zd ZdZdZ	 	 	 	 	 	 	 ddZd Zd	dZdS )
ZfpzZFP codec for numcodecs.imagecodecs_zfpNTc                 B   |rd | _         d | _        d | _        n]||t          d          t	          |          | _         t          j        |          j        | _        |d nt	          |          | _        || _        || _        || _	        t          |          | _        d S )Nzinvalid shape and dtype)r   r   strides
ValueErrorr   r2   r   r+   rm   	executionr   r   )r   r   r   r  r+   rm   r  r   s           r   r   zZfp.__init__a  s      		GDJDJDLL < < !:;;;uDJU++/DJ#*F44gDL
	"6llr   c                     t          j        |          }| j        s$|j        | j        k    sJ |j        | j        k    sJ t          j        || j        | j        | j	        | j                  S )N)r+   rm   r  r   )
r2   r3   r   r   r   r   
zfp_encoder+   rm   r  r   s     r   r   z
Zfp.encodez  sv    mC  { 	+9
****9
****%*n;
 
 
 	
r   c                     | j         rt          j        ||          S t          j        || j        t	          j        | j                  | j        |          S )Nr>   )r   r   r  r   )r   r   
zfp_decoder   r2   r   r  r   s      r   r   z
Zfp.decode  s[    ; 	8)#37777%*+dj))L
 
 
 	
r   )NNNNNNTr   r    r&   r   r   r  r  \  sm        "" H # # # #2
 
 
	
 	
 	
 	
 	
 	
r   r  c                   ,    e Zd ZdZdZddZd ZddZdS )ZlibzZlib codec for numcodecs.imagecodecs_zlibNc                     || _         d S r   ry   rz   s     r   r   zZlib.__init__  r{   r   c                 8    t          j        || j                  S r}   )r   zlib_encoder+   r   s     r   r   zZlib.encode  rK  r   c                 .    t          j        ||          S r=   )r   zlib_decoder   s      r   r   zZlib.decode  r  r   r   r    r&   r   r   r  r    rN  r   r  c                   ,    e Zd ZdZdZddZd ZddZdS )ZlibngzZlibng codec for numcodecs.imagecodecs_zlibngNc                     || _         d S r   ry   rz   s     r   r   zZlibng.__init__  r{   r   c                 8    t          j        || j                  S r}   )r   zlibng_encoder+   r   s     r   r   zZlibng.encode  s    (DJ????r   c                 .    t          j        ||          S r=   )r   zlibng_decoder   s      r   r   zZlibng.decode  rs   r   r   r    r&   r   r   r  r    sY        %%#H   @ @ @7 7 7 7 7 7r   r  c                   $    e Zd ZdZdZd ZddZdS )ZopflizZopfli codec for numcodecs.imagecodecs_zopflic                 *    t          j        |          S r   )r   zopfli_encoder   s     r   r   zZopfli.encode  r  r   Nc                 .    t          j        ||          S r=   )r   zopfli_decoder   s      r   r   zZopfli.decode  rs   r   r   rA   r&   r   r   r  r    r  r   r  c                   ,    e Zd ZdZdZddZd ZddZdS )ZstdzZStandard codec for numcodecs.imagecodecs_zstdNc                     || _         d S r   ry   rz   s     r   r   zZstd.__init__  r{   r   c                 8    t          j        || j                  S r}   )r   zstd_encoder+   r   s     r   r   zZstd.encode  rK  r   c                 .    t          j        ||          S r=   )r   zstd_decoder   s      r   r   zZstd.decode  r  r   r   r    r&   r   r   r  r    sV        ((!H   > > >5 5 5 5 5 5r   r  FTc                    t                                                      D ]\  }}t          |d          r|dk    r| 
|j        | vr(	 	 t	          d|j        i           n# t
          $ r Y nw xY w|s|rt          d|j        d           n|rt          d|j                   n# t          $ r Y nw xY wt          |           dS )z.Register codecs in this module with numcodecs.r%   r   Nr   z	numcodec z already registeredzreplacing registered numcodec )	globalsitemshasattrr%   r   	TypeErrorlog_warningr  r   )codecsforcer   namer   s        r   r   r     s:   YY__&&  	csJ'' 	47? 	 	#,f"< 		O4.////      GCLGGG    OMS\MMNNN  	 	 	D	 	s/ s0   A"!B)"
A/,B).A//B))
B65B6c                 `    ddl } |                    t                    j        | g|R i | dS )zLog message with level WARNING.r   N)logging	getLoggerr!   warning)msgargskwargsr  s       r   r  r    sB    NNN'Gh'=d===f=====r   r0  )2r$   __version____all__r2   numcodecs.abcr   numcodecs.registryr   r   r   r   r(   r8   rC   rO   ra   ri   rv   r   r   r   r   r   r   r   r   r   r  r  r  r&  r2  r>  rF  rP  rW  rc  rl  rt  r}  r  r  r  r  r  r  r  r  r   r  r&   r   r   <module>r     s  @ : 9
        8 8 8 8 8 8 8 8    
 
 
 
 
% 
 
 
B$G $G $G $G $G5 $G $G $GN	9 	9 	9 	9 	9u 	9 	9 	9
 
 
 
 
 
 
 
($
 $
 $
 $
 $
E $
 $
 $
N$
 $
 $
 $
 $
U $
 $
 $
N7 7 7 7 7U 7 7 7&4 4 4 4 4% 4 4 4F F F F Fe F F F 
 
 
 
 
E 
 
 
8
 
 
 
 
e 
 
 
*
 
 
 
 
 
 
 
6
A 
A 
A 
A 
A% 
A 
A 
AH H H H H5 H H HV"M "M "M "M "MU "M "M "MJ7 7 7 7 7U 7 7 7 /
 /
 /
 /
 /
U /
 /
 /
dK K K K KU K K KB5 5 5 5 55 5 5 526 6 6 6 6E 6 6 6 H H H H H% H H H&5 5 5 5 55 5 5 5<H H H H H% H H H5 5 5 5 55 5 5 5
4 
4 
4 
4 
4% 
4 
4 
49 9 9 9 9u 9 9 9"I I I I I5 I I I$4 4 4 4 4% 4 4 4 
 
 
 
 
E 
 
 
.	7 	7 	7 	7 	7U 	7 	7 	7
 
 
 
 
5 
 
 
25 5 5 5 55 5 5 5 D D D D D% D D D.4
 4
 4
 4
 4
% 4
 4
 4
n5 5 5 5 55 5 5 57 7 7 7 7U 7 7 7	7 	7 	7 	7 	7U 	7 	7 	75 5 5 5 55 5 5 5   8> > > > >r   