
    < j`                      % S r SSKJr  / SQrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
JrJr  SSKJr  SSKJrJrJr  SSKrSSKr SSKJr  SS	KJrJr  SS
KJr  SSKJr  SSKJ r   SSK!J"r"  SSK(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?  \(       aL  SSK@r@SSKArASSKBJCrCJDrDJErEJFrFJGrG  SSKJHrHJIrIJJrJ  SSKKJLrLJMrM  SSKNJOrO  SSKPJQrQJRrRJr  SSKJSrS  SSK!JTrT  SSK(J0r0JUrU  \" SS9 " S S\5      5       rV " S S\5      rW " S  S!\W5      rX " S" S#\W5      rYSSSS$.           S=S% jjrZ                S>S& jr[                  S?S' jr\S@S( jr]SAS) jr^SBS* jr_ SC       SDS+ jjr`        SES, jra      SFS- jrbSGS. jrcSHS/ jrd\e" 1 S0k5      rfS1\gS2'   S3S4S5.rhS6\gS7'   S8S8S8S9S:S:S;.riS6\gS<'   g! \# a  r$S\RJ                   S3r&\'" \&5      \$eSr$C$ff = f)Iz1Zarr 3 TIFF codec, TIFF and file sequence stores.    )annotations)TiffZarrFileSequenceStore	ZarrStoreZarrTiffStoreregister_codecN)	dataclassfield)BytesIO)TYPE_CHECKINGLiteraloverride)ArrayBytesCodec)ByteRequestStore)NDBuffer)	ChunkGridparse_named_configuration)BasicIndexerzzarr z < 3 is not supported   )	CHUNKMODECOMPRESSIONEXTRASAMPLEMETADATA_DEFAULTPHOTOMETRICPLANARCONFIG	PREDICTOR	ByteOrder	FileCacheFileSequenceNullContextTagTupleTiffFile	TiffFrameTiffPageTiffPageSeries
TiffWriterTiledSequencecreate_outputenumargimreadjpeg_decode_colorspaceproduct)AsyncIteratorCallableIterableIteratorSequence)AnySelfTextIO)	DTypeLikeNDArray)	ArraySpec)BufferBufferPrototyper   )JSON)BasicSelection)r   
OutputTypeT)frozenc                     \ rS rSr% SrSrSrS\S'   SrS\S'   Sr	S	\S
'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS \S!'   SrS"\S#'   \" \S$9rS\S%'   SrS&\S''   SrS\S('   SrS\S)'   SSSSSSSSSSSSSSSSSSS\ SSSS*.                                               S4S+ jjr!\"S5S, j5       r#S6S- jr$      S7S. jr%      S7S/ jr&      S8S0 jr'      S8S1 jr(      S9S2 jr)S3r*g):r   s   zTIFF codec for Zarr 3.FN"int | slice | Sequence[int] | Nonekey
int | Noneseries4Literal['generic', 'imagej', 'ome', 'shaped'] | Nonekindlevelbool | Nonesqueeze
buffersizeboolbigtiffByteOrder | None	byteorder
str | Nonephotometricplanarconfigztuple[str, ...] | Noneextrasamples
volumetricztuple[int, ...] | Nonetilerowsperstripbitspersamplecompressiondict[str, Any] | Nonecompressionargszstr | bool | None	predictortuple[int, int] | Nonesubsampling)default_factorymetadataSequence[TagTuple] | None	extratagstruncate
maxworkers)rC   rE   rG   rH   rJ   rK   rM   rO   rQ   rR   rS   rT   rU   rV   rW   rX   rZ   r[   r]   r_   ra   rb   rc   c          
        [        U 40 SU_SUb  [        U5      OS _SU_SUb  [        U5      OS _SUb  [        U5      OS _SUb  [        U5      OS _S[        U5      _SU_S	[        U	[        5      _S
[        U
[
        5      _SUb  [        S U 5       5      OS _S[        U5      _SUb  [        S U 5       5      OS _SUb  [        U5      OS _SUb  [        U5      OS _S[        U[        5      _SU_S[        U[        5      (       a  UO[        U[        5      _SUb  [        US   5      [        US   5      4OS _SU_SU_S[        U5      _SUb  [        U5      OS _6  g )NrC   rE   rG   rH   rJ   rK   rM   rO   rQ   rR   rS   c              3  B   #    U  H  n[        U[        5      v   M     g 7fN)
_enum_namer   ).0es     ^/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/tifffile/zarr.py	<genexpr> Tiff.__init__.<locals>.<genexpr>   s     G,QjK00,s   rT   rU   c              3  8   #    U  H  n[        U5      v   M     g 7frf   int)rh   xs     rj   rk   rl      s     ,t!s1vvt   rV   rW   rX   rZ   r[   r]   r   r   r_   ra   rb   rc   )
	_setattrsro   rL   rg   r   r   tupler   
isinstancer   )selfrC   rE   rG   rH   rJ   rK   rM   rO   rQ   rR   rS   rT   rU   rV   rW   rX   rZ   r[   r]   r_   ra   rb   rc   s                           rj   __init__Tiff.__init__   s   6 	)	
)	
 #)"43v;$)	
 	)	

 !& 1#e*t)	
 &-%8DMd)	
 +5*@s:d)	
 M)	
  )	
 #;<)	
 $L,?)	
  + G,GG)	
" J'#)	
$ 150@,t,,d%)	
( &2%=L!4))	
. '4&?M"T/)	
2 #;<3)	
4 ,5)	
: i.. 	95=)	
D * [^$c+a.&9:G)	
J K)	
L  M)	
N (^O)	
P +5*@s:dQ)	
    c                :    [        USSS9u  p#U " S0 Ub  UD6$ 0 D6$ )z)Create instance of model from dictionary.tifffileF)require_configuration r   )clsdata_cfgs       rj   	from_dictTiff.from_dict   s3     +*E
 6S_c66"66rx   c                   0 nU R                   b  U R                   US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R
                  b  U R
                  US'   U R                  (       a  U R                  US'   U R                  b  U R                  US'   U R                  b  U R                  US	'   U R                  b  U R                  US
'   U R                  b  [        U R                  5      US'   U R                  (       a  U R                  US'   U R                  b  [        U R                  5      US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R                   b  U R                   US'   U R"                  b  U R"                  US'   U R$                  b  U R$                  US'   U R&                  b  [        U R&                  5      US'   U R(                  [*        La  U R(                  US'   U R,                  b  [        U R,                  5      US'   U R.                  (       a  U R.                  US'   U R0                  b  U R0                  US'   U(       a  SUS.$ SS0$ )z(Convert instance of model to dictionary.rC   rE   rG   rH   rJ   rK   rM   rO   rQ   rR   rS   rT   rU   rV   rW   rX   rZ   r[   r]   r_   ra   rb   rc   rz   nameconfigurationr   )rC   rE   rG   rH   rJ   rK   rM   rO   rQ   rR   rS   listrT   rU   rV   rW   rX   rZ   r[   r]   r_   r   ra   rb   rc   )ru   r   s     rj   to_dictTiff.to_dict   sm   !88CJ;;" KKCM99 ))CK::!::CL<<#!\\C	N??& $C<<!\\C	N>>%#~~C'!%!1!1C("&"3"3C("&t'8'8"9C?? $C99 tyy/CK("&"3"3C)#'#5#5C '!%!1!1C+%)%9%9C!">>%#~~C'!%d&6&6!7C== 00"mmC
O>>%#DNN3C=="mmC
O??& $C&==
##rx   c                   [        UR                  5       5       n[        U5       nUR                  U R                  U R
                  U R                  U R                  U R                  U R                  U R                  S9nS S S 5        S S S 5        UR                  R                  R                  WR                  UR                  5      5      $ ! , (       d  f       NT= f! , (       d  f       N]= f)N)rC   rE   rG   rH   rJ   rc   rK   )r   as_buffer_liker$   asarrayrC   rE   rG   rH   rJ   rc   rK   	prototype	nd_bufferfrom_numpy_arrayreshapeshape)ru   chunk_bytes
chunk_specfhtifdecodeds         rj   _decode_syncTiff._decode_sync  s     [//12b(2,#kkHH{{YYjj???? " G ;G2 ##-->>OOJ,,-
 	
 ;G,22s#   C!ACC!
C	C!!
C/c                `   #    [         R                  " U R                  X5      I S h  vN $  N7frf   )asyncio	to_threadr   )ru   r   r   s      rj   _decode_singleTiff._decode_single(  /      &&{
 
 	
 
   %.,.c                   [         R                  " [         R                  " UR                  5       5      5      n[	        5        n[        UU R                  U R                  U R                  S9 nUR                  UU R                  U R                  U R                  U R                  U R                  U R                  U R                   U R"                  U R$                  U R&                  U R(                  U R*                  U R,                  U R.                  U R0                  S9  S S S 5        UR3                  5       nS S S 5        UR4                  R6                  R9                  W5      $ ! , (       d  f       NK= f! , (       d  f       ND= f)N)rM   rO   rG   )rQ   rR   rS   rT   rU   rV   rW   rX   rZ   r[   r]   r_   ra   rb   rc   )numpy
atleast_2drJ   as_numpy_arrayr   r(   rM   rO   rG   writerQ   rR   rS   rT   rU   rV   rW   rX   rZ   r[   r]   r_   ra   rb   rc   getvaluer   buffer
from_bytes)ru   chunk_arrayr   arrr   r   encodeds          rj   _encode_syncTiff._encode_sync/  s(    u}}[-G-G-IJKY"..YY	
 		 $ 0 0!%!2!2!%!2!2#!%!2!2"&"4"4 $ 0 0$($8$8"nn $ 0 0!]]"nn!]]#!  0 kkmG3 4 ##**55g>>3  Ys%   +E9.B5E(#E9(
E6	2E99
Fc                `   #    [         R                  " U R                  X5      I S h  vN $  N7frf   )r   r   r   )ru   r   r   s      rj   _encode_singleTiff._encode_singleO  r   r   c                    [         e)z'Compute size of encoded chunk in bytes.NotImplementedError)ru   input_byte_lengthr   s      rj   compute_encoded_sizeTiff.compute_encoded_sizeV  s
     "!rx   r|   )0rC   rB   rE   rD   rG   rF   rH   rD   rJ   rI   rK   rD   rM   rL   rO   rN   rQ   zPHOTOMETRIC | int | str | NonerR   zPLANARCONFIG | int | str | NonerS   z(Sequence[EXTRASAMPLE | int | str] | NonerT   rL   rU   Sequence[int] | NonerV   rD   rW   rD   rX   zCOMPRESSION | int | str | NonerZ   rY   r[   z#PREDICTOR | int | str | bool | Noner]   r\   r_   rY   ra   r`   rb   rL   rc   rD   returnNone)r~   dict[str, JSON]r   r5   )r   r   )r   r:   r   r9   r   r   )r   r   r   r9   r   Buffer | None)r   ro   r   r9   r   ro   )+__name__
__module____qualname____firstlineno____doc__is_fixed_sizerC   __annotations__rE   rG   rH   rJ   rK   rM   rO   rQ   rR   rS   rT   rU   rV   rW   rX   rZ   r[   r]   r
   dictr_   ra   rb   rc   r   rv   classmethodr   r   r   r   r   r   r   __static_attributes__r|   rx   rj   r   r   s   s    M /3C	+2FJAED
>EE:G[!J
!GT"&I&"K"#L*#+/L(/J#'D
 '#L*# $M:$"K"-1O*1#'I '*.K'.&+D&AH#A+/I(/Hd!J
!
 37!EI #!%&*6:8<AE %)#'$(6:159=.2*:/3!%3D
 0D
 	D

 CD
 D
 D
 D
 D
 $D
 4D
 6D
 ?D
 D
 #D
  !!D
" "#D
$ 4%D
& /'D
( 7)D
* ,+D
, (-D
. -/D
0 1D
2 3D
4 
5D
L 7 73$j
!
/8
	
"
!
/8
	
?#?1:?	?@
#
1:
	
"!$"2;"	"rx   r   c                    ^  \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   SSSS.       SU 4S jjjrSS jr\S S j5       r	\      S!S j5       r
\\S"S j5       5       rS#S jr\S#S j5       r\\S"S j5       5       r\S$S j5       r\\S"S j5       5       r\S%S j5       r\S&S j5       r\S&S j5       r\S"S j5       rS'S jrSrU =r$ )(r   i]  a  Zarr 3 store base class.

Parameters:
    fillvalue:
        Value to use for missing chunks of Zarr store.
        The default is 0.
    chunkmode:
        Specifies how to chunk data.
    read_only:
        Passed to :py:class:`zarr.abc.store.Store`.

References:
    1. https://zarr.readthedocs.io/en/stable/api/zarr/abc/store/
    2. https://zarr-specs.readthedocs.io/en/latest/v3/core/index.html
    3. https://zarr-specs.readthedocs.io/en/latest/v2/v2.0.html
    4. https://ngff.openmicroscopy.org/specifications/0.5/

rL   
_read_onlydict[str, Any]_storefloat
_fillvaluero   
_chunkmodeNT	fillvalue	chunkmode	read_onlyc                 > [         TU ]  US9  0 U l        Uc  SOUU l        Uc  [	        S5      U l        g [        [        U5      U l        g )N)r   r   )superrv   r   r   r   r   r+   )ru   r   r   r   	__class__s       rj   rv   ZarrStore.__init__v  sI     	9-(0!i'lDO%i;DOrx   c                    [        [        U R                  R                  5       5      U R                  U R
                  45      $ rf   )hashrs   r   itemsr   r   ru   s    rj   __hash__ZarrStore.__hash__  s3    4;;$$&'$//J
 	
rx   c                    [        U[        U 5      5      =(       aY    U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ )z!Return whether objects are equal.)rt   typer   r   r   )ru   others     rj   __eq__ZarrStore.__eq__  s\     ud4j) 4u||+45#3#334 5#3#33		
rx   c           	     x   #    U VVs/ s H  u  p4U R                  X1U5      I Sh  vN PM!     snn$  Ns  snnf 7f)z5Return possibly partial values from given key_ranges.N)get)ru   r   
key_rangesrC   
byte_ranges        rj   get_partial_valuesZarrStore.get_partial_values  sB      $.
#- ((3:666#-
 	
6
s   :424:4:c                $    U R                   (       + $ )zStore supports writes.)r   r   s    rj   supports_writesZarrStore.supports_writes  s     ??""rx   c                   [         e)Store (key, value) pair.r   ru   rC   values      rj   _setZarrStore._set  s    !!rx   c                .   #    U R                  X5        g7f)r   N)r   r   s      rj   setZarrStore.set  s      			#s   c                    g)zStore supports deletes.Fr|   r   s    rj   supports_deletesZarrStore.supports_deletes  s     rx   c                $   #    Sn[        U5      e7f)zRemove key from store.z"ZarrStore does not support deletes)PermissionError)ru   rC   msgs      rj   deleteZarrStore.delete  s      3c""s   c                    g)zStore supports listing.Tr|   r   s    rj   supports_listingZarrStore.supports_listing  s     rx   c               <   #    U R                    H  nU7v   M
     g7f)zReturn all keys in store.N)r   ru   rC   s     rj   r   ZarrStore.list  s      ;;CI s   c               ~   #    [        U R                  5       H   nUR                  U5      (       d  M  U7v   M"     g7f)zhReturn all keys in store that begin with prefix.

Keys are returned relative to the root of the store.

N)r   r   
startswith)ru   prefixrC   s      rj   list_prefixZarrStore.list_prefix  s.      $C~~f%%	 %s   -=
=c                 #    UR                  S5      nUS:X  a.  U R                   Vs1 s H  o"R                  S5      S   iM     nnObU R                   Vs1 s HK  nUR                  US-   5      (       d  M  XA:w  d  M%  UR	                  US-   5      R                  S5      S   iMM     nnU H  nU7v   M
     gs  snf s  snf 7f)zwReturn all keys and prefixes with prefix.

Keys and prefixes do not contain the character "/" after the given
prefix.

/ r   N)rstripr   splitr   removeprefix)ru   r  kkeys_uniquerC   s        rj   list_dirZarrStore.list_dir  s      s#R<48KK@Kq773<?KK@K  ;;&C>>&3,/ =47M =  #.44S9!<&  
 CI  As(   &CB9CB>7B>>*B>(Cc                Z    S H%  nSU R                   R                  US5      ;   d  M%    g   g)z.Return whether ZarrStore contains multiscales.)	zarr.json.zattrss   multiscalesrx   TF)r   r   r   s     rj   is_multiscalesZarrStore.is_multiscales  s-     ,Cc!:: , rx   c                0    U R                   R                   $ rf   )r   r   r   s    rj   __repr__ZarrStore.__repr__  s    ..))*+rx   )r   r   r   )r   float | Noner   CHUNKMODE | int | str | Noner   rL   r   r   )r   ro   )r   objectr   rL   )r   r;   r   z(Iterable[tuple[str, ByteRequest | None]]r   zlist[Buffer | None])r   rL   rC   strr   r:   r   r   )rC   r  r   r   )r   AsyncIterator[str])r  r  r   r  )r   r  )r   r   r   r   r   r   rv   r   r   r   r   propertyr   r   r   r   r   r   r   r  r  r  r  r   __classcell__r   s   @rj   r   r   ]  s   & O #'26<  	<
 0< < 
< <"

 
 
 

"

 =

 
	

 

 #  #"      # #
     
    &  , ,rx   r   c                    ^  \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   SSSSSSSSSSS.
                       SU 4S jjjr S         S S jjr\S!U 4S jj5       r	SSSSSSSSSSS.
                         S"S jjr
\ S       S#S jj5       r\S$S j5       r\S%S j5       rS&S jrS'S jrSrU =r$ )(r   i   a  Zarr 3 store interface to image array in TiffPage or TiffPageSeries.

The store uses Zarr v3 format. Pyramidal series use OME-Zarr v0.5
multiscales metadata.

ZarrTiffStore is using a TiffFile instance for reading and decoding chunks.
Therefore, ZarrTiffStore instances cannot be pickled.

For writing, image data must be stored in uncompressed, unpredicted,
and unpacked form. Sparse strips and tiles are not written.

Parameters:
    arg:
        TIFF page or series to wrap as Zarr store.
    level:
        Pyramidal level to wrap. The default is 0.
    chunkmode:
        Use strips or tiles (0) or whole page data (2) as chunks.
        The default is 0.
    fillvalue:
        Value to use for missing chunks. The default is 0.
    zattrs:
        Additional attributes to store in `.zattrs`.
    multiscales:
        Create a multiscales-compatible Zarr group store.
        By default, create a Zarr array store for pages and non-pyramidal
        series.
        If *True*, encode coordinate metadata (pixel sizes, units, offsets)
        using the NGFF 0.5 multiscales structure.
    lock:
        Reentrant lock to synchronize seeks and reads from file.
        By default, the lock of the parent's file handle is used.
    maxworkers:
        If `chunkmode=0`, asynchronously run chunk decode function
        in separate thread if greater than 1.
        If `chunkmode=2`, maximum number of threads to concurrently decode
        strips or tiles.
        If *None* or *0*, use up to :py:attr:`_TIFF.MAXWORKERS` or
        asyncio assigned threads.
    buffersize:
        Approximate number of bytes to read from file in one pass
        if `chunkmode=2`. The default is :py:attr:`_TIFF.BUFFERSIZE`.
    read_only:
        Passed to :py:class:`zarr.abc.store.Store`.
    _openfiles:
        Internal API.

list[TiffPageSeries]_datar    
_filecachez-Callable[[NDArray[Any]], NDArray[Any]] | None
_transformro   _maxworkersrD   _buffersizerL   _multiscalesN)
rH   r   r   zattrsmultiscaleslockrc   rK   r   
_openfilesc      
   
     R
  > Uc  [        S5      nO[        [         U5      nUS;  a  U< S3n[        U5      eXl        [	        U[
        5      (       aN  UR                  U l        UR                  U l	        USL a  SnUb  U R                  U   /U l        UR                  nO[        U/5      /U l        S U l	        SnU(       d1  U R                  S   R                  R                  nUS:  a  US:X  a  SnXl        U R                  S   R                  R                  R                  R                   nU
c!  UR#                  5       (       + =(       d    US:g  n
[$        T)U ]M  XCU
S9  Uc  UR)                  S	5        UR*                  n[-        XS
9U l        Uc  0 O
[1        U5      nU(       d  UGc  [3        U R                  5      S:  Ga  S	U l        [7        UR9                  SS 5      =(       d    U R                  S   R:                  5      nU R                  S   nUR<                  nUR>                  nUR@                  n/ nU Hd  nSU0n[B        RE                  URG                  5       5      nU(       a  UUS'   URE                  U5      nU(       a  UUS'   URI                  U5        Mf     / n[K        U R                  5       H  u  nnURL                  n[O        UUUR<                  S	S9 VVVs/ s H.  u  nnn[Q        UU;   a  US:  a  UU   OUS:  a  UU-  OS5      PM0     nnnnSUS./n US:X  ak  U Vs/ s H  nURE                  U5      PM     n!n[S        S U! 5       5      (       a3  U RI                  SU! V"s/ s H  n"U"b  [Q        U"5      OSPM     sn"S.5        URI                  [U        U5      U S.5        M     [W        SSSSUUUS./S.0UES.5      U RX                  S'   [K        U R                  5       Hc  u  nnUS:X  a  Un#O:[O        UUR<                  US	S9 VV$V%s/ s H  u  nn$n%U$U%:w  a  U U 3OUPM     n#n$nn%U R[                  UU S3UU#5      u  nn&Me     g SU l        U R                  S   n[7        SU;   a  UR9                  S5      OUR:                  5      n'U R[                  USUU'5      u  nn&U(       aP  [\        R^                  " U RX                  S   5      n(U(S    Ra                  U5        [W        U(5      U RX                  S'   g g s  snnnf s  snf s  sn"f s  sn%n$nf )!Nr   >   r      z not implementedFUnnamed   r   r   T)sizer)  _ARRAY_DIMENSIONSr   r   unitstrict      ?scale)r   r5  c              3  (   #    U  H  oS Lv   M
     g 7frf   r|   )rh   os     rj   rk   )ZarrTiffStore.__init__.<locals>.<genexpr>  s     :'QD='s   translation        )r   r9  )pathcoordinateTransformationsgroupomez0.5)r   axesdatasets)versionr(  zarr_format	node_type
attributesr  z
/zarr.jsonrE  )1r   r+   r   r%  rt   r'   levelsr!  	transformr#  r   keyframerc   r$  parentroot
filehandlewritabler   rv   set_lockr)  r    r"  r   lenr&  r   popr?  r   coord_unitscoord_offsets_NGFF_AXIS_TYPEr   upperappend	enumeratecoord_scaleszipr   anyr  _json_dumpsr   _init_zarrayjsonloadsupdate)*ru   argrH   r   r   r'  r(  r)  rc   rK   r   r*  r   r   r   array_dimensionsseries0shape0rP  rQ  	ngff_axesax	ngff_axisax_typer1  r@  ilevelrE   level_scaless0sr5  coord_transformsoffsetsr7  
level_dimsijr   dimension_names	zarr_jsonr   s*                                            rj   rv   ZarrTiffStore.__init__9  sN     !!I	95IF"M!12C%c**%c>**DJ!mmDOe# "jj/0
88D(#/0DJ"DODA//::JA~)q.
%ZZ]##**//::KKM);Y!^I	 	 	
 <KK77D#?~4< ;.3tzz?Q3F $D*.

.5KA9K9K+ jjmG]]F!--K#11M.0I&-3RL	)--bhhj9(/If%"r*(,If%  + ' .0H"+DJJ"7%22 &)(&&,,t&	&	B -!a% %R('(1uR!V#
&  	 %u5:  Q;8H8H"))"-8H   :':::(//(5 .50"-4 12E!H3$F-40"  #F5E; #8H (3#$!(', -1,508!",	 # !#(DKK$& #,DJJ"7 Q;!1J ),,"LL"#'	)")HB1 -.FB4x:)  "  $00hj)	 	1! #8. !&DZZ]F)-&&0 

./[[*O
  ,,YLIq  JJt{{;'?@	,'..v6+6y+AK( m	0"N"s   *5T
3T7T!T"
c               h   UR                   nUR                    UR                  nUR                  nUc  UR                  nX0l        UR                  c(  Sn[        R                  " [        R                  5      nSnU R                  (       a  UR                  OUR                  n[        [        XUR                  5      5      n	UR                  S:X  a  SS0n
O#[        R                   S:X  a  SSS0S.n
OSSS	0S.n
[#        S
S[        U5      UR$                  SSU	0S.SSS0S.['        X75      U
/U0 S.
5      U R(                  U'   U R*                  (       d[  UR,                  S:H  =(       a;    UR.                  S:H  =(       a%    UR0                  S;   =(       a    UR2                  S;   (       + U l        X64$ )z?Store zarr.json for series; return updated fillvalue and shape.N)r   r   r   r   bytesbigendianr   littler.  arrayregularchunk_shapedefault	separatorr  )
rC  rD  r   	data_type
chunk_gridchunk_key_encoding
fill_valuecodecsro  rE     r   r,  r.                  @      )rH  decoder   dtypenodatar   _dtyper   bool_r   chunksr   _chunksshapeditemsizesysrO   rY  r   _json_valuer   r   rX   	fillordersampleformatrW   )ru   rE   rC   r   ro  rH  r   r  r  ry  bytes_codecs              rj   rZ  ZarrTiffStore._init_zarray  s    ?? I'O??"EKK,E"O#'??76(//BC >>Q+17*;K]]e#"*E!2K  "*H!5K ' $e"ZZ%&3[%A
 &&13%7' *);&-#2 !
C( $$) C&&!+C))\9C **.BB		DO rx   c                V   > [         TU ]  5         U R                  R                  5         g)zClose store.N)r   closer"  clear)ru   r   s    rj   r  ZarrTiffStore.close3  s     	rx   FT)
	groupnametemplatenamecompressorsrC  rA  _shape_axes_index_append_closec      
           0 SS_SS_SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SSSSSS.EUc  0 OUEnU R                    GH  nS nUR                  nUR                  S!;   a)  UR                  R                  (       a  S"X_R                  '   UR                  U;  a  [        UR                  < S#3U-   5      eUR                  S:w  a  [        UR                  < S#3U-   5      eUR                  S$;  a  [        UR                  < S#3U-   5      eUR                  S%;  a>  UR                  S&;  a.  X_R                     S":w  a  [        S'UR                   S#3U-   5      eU R                  (       d=  UR                  (       d,  UR                  UR                  -  (       a  [        S(U-   5      eU R                  (       a-  UR                  (       d  [        U R                  < S#3U-   5      eUR                  c  GM  [        U5      S:  d  GM  [        S)U-   5      e   Uc  S*nOU(       a  US+   S,:w  a  US,-  nUR!                  S-S,5      nUc  S*nOU(       a  US+   S,:w  a  US,-  n["        R$                  S.:X  a  S/OS0nU R                   S1   R                  R                  R$                  U:w  dU  U R                   S1   R                  R&                  b1  U R                   S1   R                  R&                  R(                  S:X  a  SnUc  / O
[+        U5      nU	c  / O
[+        U	5      n	[        U5      [        U	5      :w  a  S2n[        U5      eU
c  S*nOI[        U5      [        U
5      :w  a  S3n[        U5      eU
(       a  S4R-                  S5 U
 5       5      nUS4-  n0 nUS:X  Ga  U(       a  S6n[        U5      eUc  S7nSUS8'   0 US9'   / US:'   0 nU R                   S1   R.                  (       a|  S1nU R                   S1    Hf  nUb  UR                  c  M  UR                  R                  R0                  R2                  nUU;   a  MG  U U 3nS;U S<3UU'   UU-   US9   U'   US-  nMh     ONU R                   S1   R                  R                  R0                  R2                  nU nS;U S<3UU'   UU-   US9   U'   0 =US='   nOUnU(       dR  US>:X  a&  [5        U R6                  U R                   UUUUU	5        O&[9        U R6                  U R                   UUUUUU	5        [:        R<                  " 5        n[?        US?5      (       a  UnOURA                  [C        US@SASB95      nUS:X  a=  URE                  [F        RH                  " USSC9RK                  SDS5      S1   SD-   5        SEnO3U(       a  SFnO)URE                  [F        RH                  " USSC9SSG 5        SFnUS>:X  a  S,OS4nUS>:X  a  SHOS*nU R6                  RM                  5        GHg  u  nnURO                  SI5      (       d  M  [F        RP                  " U5      n U RS                  SJ5      SK:w  a  ML  U SL   n!U SM   SN   SO   n"S,U;   a  URU                  S,5      S1   S,-   OS*n#[W        U!U"5       H  n$U#U$-   n%US>:X  a  U#U-   U$R!                  S4U5      -   OU%n&U RY                  U%5      u  nnn'n(n)U(       a/  U R                  (       a  U(c  URZ                  S1   n(UR\                  n)U((       d  M~  U)(       d  M  UR                  R0                  R2                  nUS:X  a  WU   nOU U 3nURE                  SPU SQU U& SRU SSU( STU) SU35        M     GMj     US:X  a  URE                  SV5        OU(       a  URE                  SW5        SSS5        g! , (       d  f       g= f)Xa  Write fsspec ReferenceFileSystem as JSON to file.

Parameters:
    jsonfile:
        Name or open file handle of output JSON file.
    url:
        Remote location of TIFF file(s) without file name(s).
    groupname:
        Zarr group name.
    templatename:
        Version 1 URL template name. The default is 'u'.
    compressors:
        Mapping of :py:class:`COMPRESSION` codes to Numcodecs codec
        names (zarr format 2) or imagecodecs.zarr codec names
        (zarr format 3).
    zarr_format:
        Version of Zarr array format to write.
        The default is 2.
        If 3, write Zarr version 3 format using
        :py:mod:`imagecodecs.zarr` native codec specifications.
        Chunk keys use 'c/' prefix with '/' separator and
        :py:meth:`imagecodecs.zarr.register_codecs` must be called
        before reading the resulting store.
    version:
        Version of fsspec file to write. The default is 0.
    _shape:
        Shape of file sequence (experimental).
    _axes:
        Axes of file sequence (experimental).
    _index:
        Index of file in sequence (experimental).
    _append:
        If *True*, only write index keys and values (experimental).
    _close:
        If *True*, no more appends (experimental).

Raises:
    ValueError:
        ZarrTiffStore cannot be represented as ReferenceFileSystem
        due to features that are not supported by Zarr, Numcodecs,
        or Imagecodecs:

        - compressors, such as CCITT
        - filters, such as bitorder reversal, packed integers
        - dtypes, such as float24, complex integers
        - JPEGTables in multi-page series
        - incomplete chunks, such as `imagelength % rowsperstrip != 0`

        Files containing incomplete tiles may fail at runtime.

Notes:
    Parameters ``_shape``,  ``_axes``, ``_index``, ``_append``, and
    ``_close`` are an experimental API for joining the
    ReferenceFileSystems of multiple files of a TiffSequence.

    Multiscales metadata for pyramidal series uses OME-Zarr v0.5
    when ``zarr_format=3`` and OME-Zarr v0.4 when ``zarr_format=2``.

    ``zarr_format=3`` requires imagecodecs > 2026.3.6.

References:
    - `fsspec ReferenceFileSystem format
      <https://github.com/fsspec/kerchunk>`_

r   Nr  zlibi  im  lzmai]     imagecodecs_lzw   imagecodecs_jpegiRX  imagecodecs_jpegxri  imagecodecs_packbitsi  imagecodecs_jpeg2ki  i    i  iG  imagecodecs_lercL  iu  imagecodecs_pngimagecodecs_zstdimagecodecs_webpimagecodecs_jpegxl)iv  iP  iQ  iR  iB  z0 not supported by the fsspec ReferenceFileSystem>         imagecodecs_eerz isr  r  >   r  r  r  zBitsPerSample zincomplete chunks arez"JPEGTables in multi-page files arer  r  \rt  <>r   zlen(_shape) != len(_axes)zlen(_shape) != len(_index).c              3  8   #    U  H  n[        U5      v   M     g 7frf   r  rh   rm  s     rj   rk   -ZarrTiffStore.write_fsspec.<locals>.<genexpr>  s     4VSVVVrq   zcannot append to version 1urA  	templatesgen{{}}refsr.  r   wutf-8encodingindent}"   c/r  rD  rw  r   r}  r   ry  ,
"": ["z", z, ]
 }
}
})/r!  rH  rX   rI  is_eer
ValueErrorr  r  rW   r   is_tiledimagelengthrV   is_final
jpegtablesrN  replacer  rO   r  r  r   joinis_multifilerK  r   _write_fsspec_v3_metadatar   _write_fsspec_v2_metadata
contextlib	ExitStackhasattrenter_contextopenr   r[  dumpsrsplitr   endswithr\  r   r  _ndindex
_parse_keydataoffsetsnbytes)*ru   jsonfileurlr  r  r  rC  rA  r  r  r  r  r  rE   errormsgrH  rO   r   indexr  r  rm  pagefilenamerC   refzarrstackr   r  	chunk_sepchunk_prefixvalue_bytesr   r   r  levelstr
chunkindexinternal_key
fsspec_keyr   offset	bytecounts*                                             rj   write_fsspecZarrTiffStore.write_fsspec9  sF   d
t
v
 6
 6	

 6
  
 !
 '
 )
 '
 '
 '
 %
 '
 %
  %!
" $#
$ (%%''/
0 !(rk1
6 jjFIHH$$(==OO**4E001##;6 H$8$8#;3!?(!JKK!!Q& H$6$6#9!=!HII$$L8 H$9$9#<C!@8!KLL&& ((   4 459JJ $X%;%;$<C@8K  OO ))((8+@+@@ !88!CDDx'8'8 DOO#6c!:X!EFF"".3v;? 88C [ !b ;CSW^3JCkk$$I9R=C/I-0]]e-Cc	JJqM""))33y@zz!}%%++3zz!}%%++449I ~4<mev;#e*$-CS/!>E[CK'.CS/!HH4V44ESLE!a<2 o%#"DO "DDKIzz!})) JJqMD|t}}'< #}}33>>CCH9, )N1#.C,0T*:Ih'-08^D%c*FA *  ::a=1188CCHH%(,SE&6	(#),x[!#&%''DL7Ga)KKJJ *KKJJ	 !!#ux))((hg)NO!|D3::4CAFMND3CR89  +a/SI#.!#34L$(KK$5$5$7 [||K00

;/99[)W4g|,_=mL8;s
CIIcN1-3"*5&"9J#+j#8L
 '!+ !&'$,,S)<= *  <@??$<8HdAvy FN!%!1!1!!4$,OO	v))#+??#=#=#B#B"a<'0':H*-xj'9H!&9+j\ B!!)
#fXR	{!E- #: %8J !|#u $##s   ;G^3^3B^33
_c                4  #    Ub  SU< S3n[        U5      eXR                  ;   a(  UR                  R                  U R                  U   5      $ USS S:X  d  USS S:X  d  USS S:X  d	  USS S	:X  a  gU R	                  U5      u  pVpxn	Ub  US
:X  d  U	S
:X  a  gUR
                  R                  n
U R                  (       a  Ub  U	c   e[        UR
                  S
UU4U	4S9nU R                  R                  U
5        UR                  U R                  R                  U R                  U R                  S9nU R                  R                  U
5        U R                   b  U R!                  U5      nUR                  R#                  UR%                  S5      R'                  S5      5      $ Uc   eU	c   eU R                  R)                  XU	5      nSS0nUR*                  b  UR*                  US'   UR,                  b  UR,                  US'   Uc   eUR.                    U R                  S:  a+  [0        R2                  " UR.                  X40 UD6I Sh  vN nOUR.                  " X40 UD6nUS
   nUc   eU R                   b  U R!                  U5      nUR4                  nUR6                  [9        U5      :w  a(  SUR6                  < S[9        U5      < 3n[;        U5      eUR                  R#                  UR%                  S5      R'                  S5      5      $  N7f)!Return value associated with key.Nbyte_range= not supported
.zmetadata.zarray.zgroupr  r   )r  rH  r  databytecounts)r)  rc   rK   r  B	_fullsizeTr  
jpegheaderr   zchunk.size=z != product(chunks)=)r   r   r   r   r  rI  rK  r   r%   r"  r  r   r)  r$  r%  r  r#  from_array_liker   viewreadr  r  r  r   r   r  r/  r.   RuntimeError)ru   rC   r   r   r   rH  r  r  r  r   r   chunkr   
decodeargsr   r  s                   rj   r   ZarrTiffStore.geto  s
     ! ZO>2C%c**++##..t{{3/?@@ I%23x9$23x9$23x9$8<8L5
I<6Q;)q.[[##??! !,,, KK%!'	$-< OO  $LL__))++++ ! E
 OO!!"%*.##33b!&&s+  !!!$$$oo**2yA&14%8
??&'+J|$*'/':':J|$%%%a#--<F G ookLLG
   ??&OOE*E::( UZZM!6gfo%78Cs##//b0A0F0Fs0KLLs   ILLCLc                  #    XR                   ;   a  g U R                  U5      u  p#pEnU R                  (       a  Uc  gUSL=(       a'    USL=(       a    USL=(       a    US:  =(       a    US:  $ ! [        [        4 a     gf = f7f)#Return whether key exists in store.TFNr   )r   r  KeyError
IndexErrorr   )ru   rC   _kfr  _cir  r   s          rj   existsZarrTiffStore.exists  s      ++	040D-CsI ??v~ d"% 
 A	
	 *% 		s(   BA0 AB0B BBBc                  #    U R                   (       a  Sn[        U5      eXR                  ;   d-  USS S:X  d$  USS S:X  d  USS S:X  d  USS S	:X  d	  USS S
:X  a  gU R                  U5      u  pEpgnUb  Ub  US:X  d	  Ub  US:X  a  gUR	                  5       n	U[        U	5      :  a  U	SU n	U R                  R                  UR                  R                  Xy5        g7f)r   zZarrTiffStore is read-onlyiNr  r  r  r	  r
  r  r  r   )
r   r   r   r  to_bytesrN  r"  r   rI  rK  )
ru   rC   r   r   	_keyframer  _chunkindexr  r   r~   s
             rj   r   ZarrTiffStore.set  s      ??.C!#&& ;;23x;&34yL(23x9$23x9$23x9$:>//#:N7	iL~{ A~~~s4y 
#Ddkk44fCs   CCc               j   U R                   (       a0   UR                  SS5      u  p#U R                  [        U5         nUnOU R                  S   nUR                  S5      nSU;   a  UR                  SS5      nUR                  nSnSnU R                  X5      u  pUR                  b  US   nUb  UR                  b  UR                  c  USU
SS4$ XR                  -  UR                  R                  -  n XR                  U
   -  nU R                   (       a2  UR                  UR                  R                  -  nUR                  XzX4$ OU R                   (       aK  U R"                  R$                     XI   nSSS5        Ub  UR                  c  USSSS4$ UR                  USSS4$ U R"                  R$                     XI   nSSS5        Ub  UR                  c  USU
SS4$  UR                  U
   n UR&                  U
   nUR                  XzX4$ ! [        [
        4 a  n[        U5      UeSnAff = f! [
         a  n[        U5      UeSnAff = f! , (       d  f       N= f! , (       d  f       N= f! [
         a    UR                  XzSS4s $ f = f! [
         a  n[        U5      UeSnAff = f)zdReturn keyframe, page, index, offset, and bytecount from key.

Raise KeyError if key is not valid.

r  r   Nr   r  r  )r&  r  r!  ro   r  r  r  r	  r  rH  _indices
dataoffsetr  r/  r  r  r   r"  r)  r  )ru   rC   rH   	chunk_keyrE   excrH  r  r  	pageindexr  r   s               rj   r  ZarrTiffStore._parse_key  s    -#&99S!#4 CJ/ CZZ]Ft$#:++c3'C??,0! $c :	(!9D|tzz1T]]5Jz1a77*TZZ-@-@@F-**:66  II

(;(;;	}}dII  __%%( &|t}}4tQ11==$dD88%%( &|t}}4z1a77=))*5
	)++J7I }}dAA_ 
+ -sm,-*  -sm,- &% &%  = }}d1<<=  	)3-S(	)sq   ,H 9H7 5I I&%I7 5J H4#H//H47
III
I#&
I47JJ
J2!J--J2c               h   UR                   nUR                  n UR                  S5       Vs/ s H  n[        U5      PM     nn[        U5      [        U5      :X  d   eU R                  (       a  S[        UR                  5      -  nOUR                  nSn	[        USSS2   5       HF  u  pX-  n	XR                  :X  d  M  [        U5      U
-
  S-
  nUSU nXeS nUSU n[        XES 5      n  O   Sn[        U5      e[        U5      [        UR                  5      :X  a  [        U5      nO[        U5      S-
  n[        UR                  5      S-
  n
 X   UR                  U
   :X  a  X   X'   US-  nU
S-  n
OX   S:X  a  US-  nOSn[        U5      eUS:  d  U
S:  a  OMP  [        U5      [        U5      :X  d   eSnSnU(       a  [        [        R                  " X5      5      nU(       a  [        [        R                  " X5      5      nUU4$ s  snf ! [         a  n[        U5      UeSnAff = f)	z5Return page and strile indices from Zarr chunk index.r  Nr   r   r  z"shape does not match keyframe sizezshape does not match page shaper   )rH  r   r  ro   r  r  rN  r   chunkedrU  r/  r   r  r.   r   ravel_multi_index)ru   rC   rE   rH  r   rm  indicesr(  r-  prn  ri  frames_indicesstrile_indicesframes_chunkedstrile_chunkedr   
frameindexstrileindexs                      rj   r%  ZarrTiffStore._indices9  s3   ??	)'*yy~6~!s1v~G6 7|s5z)))??S00G&&GeDbDk*DAFAMM!L1$q(!(!!(!&r!%eBi + 7Cs##~#hnn"55!']N N#a'AHNN#a'A!$q(99(/
N%FAFA#&!+FA;C&s++q5AE  >*gg.>>>>
''GJ ''GK ;&&e 7 	)3-S(	)s(   H HH H 
H1 H,,H1)r%  r!  r"  r   r$  r&  r   r#  )r^  z%TiffPage | TiffFrame | TiffPageSeriesrH   rD   r   r  r   r  r'  rY   r(  rI   r)  z$threading.RLock | NullContext | Nonerc   rD   rK   rD   r   rI   r*  rD   r   r   rf   )
ro  zlist[str] | NonerE   r'   rC   r  r   r  r   z$tuple[float | None, tuple[int, ...]]r   r   )r  rP   r  str | os.PathLike[Any] | TextIOr  rP   r  rP   r  z*dict[COMPRESSION | int, str | None] | NonerC  rD   rA  rD   r  r   r  zSequence[str] | Noner  r   r  rL   r  rL   r   r   rC   r  r   r;   r   zByteRequest | Noner   r   rC   r  r   rL   r  )rC   r  r   zPtuple[TiffPage, TiffPage | TiffFrame | None, int | None, int | None, int | None])rC   r  rE   r'   r   ztuple[int, int])r   r   r   r   r   r   rv   rZ  r   r  r  r   r  r   r  r%  r   r  r  s   @rj   r   r      s}   /b  == !26"&(,#'59!%!%!%!%rB2rB
 rB 0rB  rB &rB !rB 3rB rB rB rB rB 
rB rBt -1D  *D D  D   	D  
.D L     !%#'BF"&"'+&*'+t  	t 1t  t  !t  @t   t  t  %t  $t  %t  t  t   
!t l	 
 *.	SMSM #SM '	SM
 
SM SMj 
 
& D D<?BB7' 7'rx   r   c            
      N  ^  \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   S\S'   S\S'   SSSSSSSSSS.	                       SU 4S jjjr\SS j5       r\ S        S!S jj5       r	SSSSSSSSS.                     S"S jjr
SrU =r$ )#r   is  ag  Zarr 3 store interface to image array in FileSequence.

The store uses Zarr v2 format.

Parameters:
    filesequence:
        FileSequence instance to wrap as Zarr store.
        Files in containers are not supported.
    fillvalue:
        Value to use for missing chunks. The default is 0.
    chunkmode:
        Currently only one chunk per file is supported.
    chunkshape:
        Shape of chunk in each file.
        Must match ``FileSequence.imread(file, **imreadargs).shape``.
    chunkdtype:
        Data type of chunk in each file.
        Must match ``FileSequence.imread(file, **imreadargs).dtype``.
    axestiled:
        Axes to be tiled. Map stacked sequence axis to chunk axis.
    zattrs:
        Additional attributes to store in `.zattrs`.
    ioworkers:
        If not 1, asynchronously run `imread` function in separate thread.
        If enabled, internal threading for the `imread` function
        should be disabled.
    read_only:
        Passed to :py:class:`zarr.abc.store.Store`.
    imreadargs:
        Arguments passed to :py:attr:`FileSequence.imread`.
    **kwargs:
        Arguments passed to :py:attr:`FileSequence.imread` in addition
        to `imreadargs`.

Notes:
    If `chunkshape` or `chunkdtype` are *None* (default), their values
    are determined by reading the first file with
    ``FileSequence.imread(arg.files[0], **imreadargs)``.

zCallable[..., NDArray[Any]]_imreadzdict[tuple[int, ...], str]_lookuptuple[int, ...]r  numpy.dtype[Any]r  r)   _tiledr  _commonpathro   
_ioworkersr   _kwargsNr   T)	r   r   
chunkshape
chunkdtype	axestiledr'  	ioworkers
imreadargsr   c      	        p  > [        U[        5      (       d  Sn[        U5      eUR                  (       a  Sn[	        U5      e[        U5      S:X  a  Sn[        U5      e[        TU ]!  X#U
S9  U R                  S;  a  SU R                  < 3n[        U5      eU	b  X-  nUc  SOUU l
        Xl        UR                  U l        UR                  5       U l        Ub  Uc9  UR                  " US   40 UD6nUR                   U l        UR$                  U l        O+[)        U5      U l        [*        R$                  " U5      U l        [-        UR                   U R"                  US	9U l        [1        [3        U R.                  R5                  UR4                  5      US
S95      U l        Uc  0 O
[1        U5      n[9        U5      U R:                  S'   [9        SU R.                  R                   U R.                  R<                  [?        U R&                  5      S [A        X R&                  5      SS S.5      U R:                  S'   g )Nznot a FileSequencez#cannot open container as Zarr storer   zfilesequence is emptyr   >   r   r.  zinvalid chunkmode r   )rG  Tr2  r  r,  CrC  r   r  r  
compressorr  orderfiltersr
  )!rt   r!   	TypeError
_containerr   rN  r  r   rv   r   rC  rD  r,   r=  
commonpathrB  r   r  r  r  rs   r   r)   rA  r   rW  r/  r>  rY  r   r  
_dtype_strr  )ru   filesequencer   r   rE  rF  rG  r'  rH  rI  r   kwargsr   r  r   s                 rj   rv   ZarrFileSequenceStore.__init__  s     ,55&CC. ""7C%c**|!)CS/!	 	 	
 ??&(&t&9:CS/! ! F(0!i#**'224!3 ''QB6BE ;;DL++DK ,DL++j1DK#	
 ##L$8$89
 ~4< "-V!4I!, **++,,#DKK0"))[[A	"
Irx   c                   #    XR                   ;   a  g[        U[        5      (       d   e [        S UR	                  S5       5       5      nX R                  ;   $ ! [
         a     gf = f7f)r  Tc              3  8   #    U  H  n[        U5      v   M     g 7frf   rn   r  s     rj   rk   /ZarrFileSequenceStore.exists.<locals>.<genexpr>       ;NqCFFNrq   r  F)r   rt   r  rs   r  r  r>  )ru   rC   r/  s      rj   r  ZarrFileSequenceStore.exists  sf      ++#s####	;CIIcN;;G ,,&&  		s(   (A*!A A*
A'$A*&A''A*c                  #    Ub  SU< S3n[        U5      eXR                  ;   a(  UR                  R                  U R                  U   5      $ US:X  d  USS S:X  d  USS S:X  d	  USS S	:X  a  g [	        S
 UR                  S5       5       5      nU R                  R                  U5      nUc  gU R                  S:w  a5  [        R                  " U R                  U40 U R                  D6I Sh  vN nOU R                  " U40 U R                  D6nUR                  R                  UR                  S5      R!                  S5      5      $ ! [         a     gf = f Nk7f)r  Nr  r  r  r  r  r	  r
  r  c              3  8   #    U  H  n[        U5      v   M     g 7frf   rn   r  s     rj   rk   ,ZarrFileSequenceStore.get.<locals>.<genexpr>"  rZ  rq   r  r   r  r  )r   r   r   r   rs   r  r  r>  r   rC  r   r   r=  rD  r  r   r  )ru   rC   r   r   r   r/  r  r  s           rj   r   ZarrFileSequenceStore.get	  sX     ! ZO>2C%c**++##..t{{3/?@@ ;34yL(23x9$23x9$ 	;CIIcN;;G <<##G,??a!++h*.,, E LL:T\\:E//b0A0F0Fs0KLL  		s8   A/E2!E AE1E2AE
EEEEF)quoter  r  codec_idrC  rA  r  r  c                 SSK Jn  U R                  R                  5       nUb  GOU R                  [
        L a  SnGOSU R                  R                  ;   a  U R                  R                  S:w  d  SU R                  ;  a  Sn[        U5      eUR                  S5      n[        U[        [        45      (       a  US   n[        U5      (       a  UR                  R                  S	5      S   n 0 S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_S&S'_S(S)_S*S+S,S-S.S/S0S1S2.EU   nOSn[        U5      eUc  S4nOU(       a  US5   S6:w  a  US6-  nUc  S4nOU(       a  US5   S6:w  a  US6-  n0 nUS7:X  a7  U	(       a  S8n[        U5      eUc  S9nS7US:'   XR0US;'   / US<'   0 =US='   nS>U S?3nOUnU(       aL  U	(       dE  US@:X  a!  [!        S@SA0 SB.5      R#                  5       USC'   O[!        SDSE05      R#                  5       USF'   US@:X  GaI  U R$                  R'                  5        GH)  u  nnSGU;   d  M  [(        R*                  " U5      nUR-                  SGSH5      n0 nUU R$                  ;   a#  [(        R*                  " U R$                  U   5      n[.        R0                  " USI   5      nUR2                  S7:X  a  SJSK0nOSKSLSM0SN.n[4        R7                  Xf5      nU[8        ;   a  SJU0UE/nOUSJU0UE/nUR-                  SGSC5      n[!        S@SOUSP   UR:                  SQSRUSS   0SN.STSUS60SN.USV   UU/ SW.
5      R#                  5       UUU-   '   GM,     OlU R$                  R'                  5        HN  nUu  nnSGU;   a*  [(        R*                  " U5      nSXU0UEUSY'   [!        U5      nUR#                  5       UUU-   '   MP     [<        R>                  " 5        n[A        USZ5      (       a  UnOURC                  [E        US[S\S]95      nUS7:X  a=  URG                  [(        RH                  " US7S^9RK                  S_S75      S   S_-   5        S`nOkU	(       a;  URG                  Sa5        URG                  [(        RH                  " US7S^9SESb 5        ScnO)URG                  [(        RH                  " US7S^9SSb 5        ScnU R$                  R'                  5        GH  nUu  nnSGU;   d  M  [(        R*                  " U5      n[M        U RN                  R'                  5       Sd Se9 H  u  nn U RQ                  U RR                  5      n!U!R-                  SfS65      n!Ub  U(       a  U" U!5      n!U!(       a  U!S   S6:X  a  U!S7S n!US@:X  a  SgS6RU                  Sh U 5       5      -   n"OSiRU                  Sj U 5       5      n"URG                  SaU SkU U" SlU U! Sm3	5        M     GM     US7:X  a  URG                  Sn5        OU
(       a  URG                  So5        SSS5        g! [         a    S3U< 3n[        U5      Sef = f! , (       d  f       g= f)pas  Write fsspec ReferenceFileSystem as JSON to file.

Parameters:
    jsonfile:
        Name or open file handle of output JSON file.
    url:
        Remote location of TIFF file(s) without file name(s).
    quote:
        Quote file names, that is, replace ' ' with '%20'.
        The default is True.
    groupname:
        Zarr group name.
    templatename:
        Version 1 URL template name. The default is 'u'.
    codec_id:
        Name of Numcodecs (zarr format 2) or imagecodecs.zarr
        (zarr format 3) codec to decode files or chunks.
    zarr_format:
        Version of Zarr array format to write.
        The default is 2.
        If 3, write Zarr version 3 format using
        :py:mod:`imagecodecs.zarr` native codec specifications.
        Chunk keys use 'c/' prefix with '/' separator and
        :py:meth:`imagecodecs.zarr.register_codecs` must be called
        before reading the resulting store.
    version:
        Version of fsspec file to write. The default is 0.
    _append, _close:
        Experimental API.

References:
    - `fsspec ReferenceFileSystem format
      <https://github.com/fsspec/kerchunk>`_

r   )r`  Nrz   imagecodecsr,   codeczcannot determine codec_idr   apngimagecodecs_apngavifimagecodecs_avifbmpimagecodecs_bmpddsimagecodecs_ddsexrimagecodecs_exrgifimagecodecs_gifheifimagecodecs_heifhtj2kimagecodecs_htj2kjpegr  jpeg8jpeg12jpeg2kr  jpeglsimagecodecs_jpeglsjpegxlr  jpegxrr  ljpegimagecodecs_ljpeglercr  r  imagecodecs_qoiimagecodecs_rgbeimagecodecs_tiffimagecodecs_ultrahdrr  imagecodecs_wicimagecodecs_zfp)pngqoirgbetiffultrahdrwebpwiczfpzunknown codec=r  r  r  r   z cannot append to version 1 filesr  rA  r  r  r  r  r  r.  r=  rB  r  rC  r,  r  r
  r  r  r   rs  ru  rv  r   rw  r   rx  ry  r  rz  r{  r  )
rC  rD  r   r|  r}  r~  r  r  rE  storage_transformersidrM  r   r  r  r  r  r  r  r  r  r  c                    U S   $ )Nr   r|   )rp   s    rj   <lambda>4ZarrFileSequenceStore.write_fsspec.<locals>.<lambda>  s    AaDrx   )rC   r  r  c              3  8   #    U  H  n[        U5      v   M     g 7frf   r  r  s     rj   rk   5ZarrFileSequenceStore.write_fsspec.<locals>.<genexpr>  s     6Mu!s1vvurq   r  c              3  8   #    U  H  n[        U5      v   M     g 7frf   r  r  s     rj   rk   r    s     /F1Arq   r  r  z"]r  r  )+urllib.parser`  rD  copyr=  r,   r   r   r  rO  rt   r   rs   callabler  r  rY  r  r   r   r[  r\  r  r   r  r  _ZARR2_TO_ZARR3_CODECr   _ARRAY_BYTES_CODECSr   r  r  r  r  r  r   r  r  sortedr>  r	  rB  r  )#ru   r  r  r`  r  r  ra  rC  rA  r  r  quote_rU  r   rd  r  r  rC   r  r   
zattrs_key	seq_attrsr  seq_bytes_codeczarr3_id
seq_codecszarr_json_keyitemr  r   r  r  fnamer  indexstrs#                                      rj   r  "ZarrFileSequenceStore.write_fsspec0  s   d 	1""$\\V#!Hdll555%%1$,,.1 o%JJw'E%$//a,,S1!40.. , ,	
 , , . 0 . / 0 2 2 2 2  0!" .#& -,.. 6.,,56 7B .CS/!;CSW^3JCI9R=C/I!a<8 o%#"DO!- 3DDK%''DL7d+CGWa'2$%G2N(&( $ &1-1C%D%K%K%M	"!$(KK$5$5$7 [# JJ{3E!$Y	!BJ02I!T[[0$(JJt{{:/F$G	!KKg7E~~*;A7:K %,.6-A+  588LH#66#X88<

 ,#X88&
 %(KK	;$GM9D+,)0%*7^).(1$15?2"+ )22=s1C3 +0*=&0*346%:* fh+ I569 %8h ))+!
U# JJu-E+/*DV*DE,''.E+0<<>	C( , !!#ux))((hg)NO!|D3::4CAFMND3Ab9:D3CR89))+!
U# JJu-E(.**,.)u $)#5#5d6F6F#G#+#3#3D##> =E'-h'7H#s(:'/|H&!+'+chh6Mu6M.M'MH'*xx/F/F'FH!&9+hZ @!!$hZr3)	 ,, !|#U $#Q  0'
+ o4/0P $#s!   .AX DX0"D%X0X-0
X>)r  rB  r  r=  rC  rD  r>  rA  )rT  r!   r   r  r   r  rE  r   rF  zDTypeLike | NonerG  z1dict[int, int] | Sequence[tuple[int, int]] | Noner'  rY   rH  rD   rI  rY   r   rL   rU  r4   r   r   r;  rf   r:  )r  rP   r  r9  r`  rI   r  rP   r  rP   ra  rP   rC  rD   rA  rD   r  rL   r  rL   r   r   )r   r   r   r   r   r   rv   r   r  r   r  r   r  r  s   @rj   r   r   s  s   'R )(''O #'26+/'+GK(, !,0T
"T

  T
 0T
 )T
 %T
 ET
 &T
 T
 *T
 T
 T
 
T
 T
l 
' 
' 
 *.	$M$M #$M '	$M
 
$M $MX " $#'#"&"u  	u 1u  u  u  !u  u   u  u  u  u  
u  u rx   r   )
groupindexr  outc                  [         R                  " U SSS9n[        U[         R                  5      (       a
  Uc  SnXR   nOUnUbs  [	        UUR
                  [        R                  " UR
                  UR                  5      S9R
                  n[        R                  " [        XGUR                  5      5      nOSnUR                  XS9n	AU(       a  U R                  5         U	$ ! U(       a  U R                  5         f f = f)a  Return selection from Zarr store.

Parameters:
    store:
        ZarrStore instance to read selection from.
    selection:
        Subset of image to be extracted and returned.
        Refer to the Zarr documentation for valid selections.
    groupindex:
        Index of array if store is Zarr group.
    close:
        Close store before returning.
    out:
        Specifies how image array is returned.
        By default, create a new array.
        If a *numpy.ndarray*, a writable array to which the images
        are copied.
        If *'memmap'*, create a memory-mapped array in a temporary
        file.
        If a *string* or *open file*, the file used to create a
        memory-mapped array.

rN)moderC  0)r   r}  )r  )zarrr  rt   Groupr   r   r   
from_sizesr  NDBufferCPUr   r*   r  get_basic_selectionr  )
store	selectionr  r  r  zzarrayr   ndbufferresults
             rj   zarr_selectionr  (  s    DIIe#48a$$! 
]FF? ll$//fmmL e	 
 #33c&,,7H H++I+DKKMM KKM s   C	C$ $C>c                  U(       a   [        SS0 S.5      R                  5       US'   U R                  5        GH  u  px[        R                  " U5      n	U	R                  S5      n
U
S:X  Ga  U	R                  S0 5      nU(       a  UR                  S0 5      nUR                  S/ 5       H  nU Vs/ s H  nS	U0PM	     snUR                  S
/ 5      -   US
'   UR                  S/ 5       Hb  nUR                  S/ 5       HI  nUS   S:X  a  S/[        U5      -  US   -   US'   M&  US   S:X  d  M1  S/[        U5      -  US   -   US'   MK     Md     M     [        SSUS.5      R                  5       X#U-   '   GM@  U
S:X  d  GMI  SU;   a  [        UR                  S5      S   5      OSnSU;   a  U S3OSnUU   R                  n[        U	S   5      n[        U	S   S   S   5      nU	R                  S5      nU(       a   [        U5      U-   nS/[        U5      -  U-   nU(       a  Ub  [        U5      U-   nUUR                     n[        R                  " U	S   5      nUR                  R                  nUR                   S:X  d  Uc  S	S0nOUS:X  a  SS S!0S".nOSS S#0S".n/ nUR"                  S:  ay  UR"                  S$;   a  S%nOS&nUR"                  S::  a  SnOUR"                  S';   a  S(nOS)nUR$                  S:X  a  UR&                  S:  a  S*nOS+nUR)                  UUUS,.S".5        Uc  UR)                  U5        GOhU[*        ;   Ga#  US-:X  a  UR,                  nUc  SO#[.        R0                  " U5      R                  5       n UR2                  n!U!c  SO#[.        R0                  " U!5      R                  5       n"[5        UR6                  UR$                  UR8                  UR:                  5      u  n#n$UR<                  U#U$S..n%U b  U U%S/'   U"b  U"U%S0'   UR)                  UU%S".5        GO~US1:X  a(  UR&                  S):X  a  UR)                  US2S30S".5        GOPUS4:X  a  S(=n&n'UR                  S5:X  ap  [        UR>                  RA                  S6S75      5      n([        UR>                  RA                  S8S(5      5      n&[        UR>                  RA                  S9S(5      5      n'OUR                  S::X  a  S7n(OS;n([        URB                  5      U(U&U'S<.n)UR                  RD                  (       a  UR                  RD                  U)S='   UR)                  UU)S".5        ONUR)                  S	U05        O:[F        R                  UU5      n*UR)                  U5        UR)                  S	U*05        SSUURH                  S>SU0S".S?S@S0S".U	SA   UUU	R                  S0 5      / SB.n+[        U+5      R                  5       X#U-   S-   '   GM     gs  snf )Cz@Write Zarr v3 metadata to refzarr dict based on store and pages.r.  r=  rB  r  rD  rE  r>  r(  r   r?  r@  r<  r   r5  r4  r9  r:  rw  r  r   r  r   r}  r   ry  ro  r   Nr|  rs  r  ru  rt  r   rv     r,  r  M  imagecodecs_deltaimagecodecs_floatpred   r  N  r,     r  r  )axisdistr  )rW   colorspace_jpegcolorspace_datatablesheaderr  hasalphaTr  r    r      r  r  )r   skipbitshorzbitsvertbitssuperresrx  rz  r{  r  )rC  rD  r   r|  r}  r~  r  r  ro  rE  r  )%rY  r  r   r[  r\  r   rN  ro   r  rH  r   rX   r   r  rI  rO   r  r[   rR   samplesperpixelrT  r  r  base64	b64encoder  r-   rQ   rS   is_jfifrW   tagsvalueofr  	_superresr  r   ),r  pagesr  r  r  r  r  rC   r  r   rD  attrsr>  msrc  dsctrH   r  rH  r   ry  	dim_namesra  r  tiff_byteorderr  r  	filter_idr  r  r  r  r  r  r  r  r   r  r  r  eer_cfgzarr3_codec_id
array_metas,                                               rj   r  r  e  s_    * $  
 &( 	 "KKM

;'IIk*	IIlB/Eiir*''-4B9>!?262,!?"&&C "BvJ !ffZ4"$&&)Db"IB!&zW4/2ec%j.@2g;.N7!#F}!<58ECJ4F$1J" 5"= 1	 #J 5	 5 (3#$!("'( fh O$ '! /2SjC		#q)*aE&)Sj%{bHU|,,Hw(El#O4]CK 		"34IVu, cCK/+=. K)3	"8#7#78HKKk 23E%__66N~~"n&</5w.?3&#&.%6 $&.%9 ,.F!!A%%%):: 3I 7I%%*D''>9DD((A-(2J2JQ2NDD )$($(* k*0011!)!4!4J &- #--j9@@B 
 "*!4!4J &- #--j9@@B  / ,, -- -- ((	'' *2)?)?+:+:+C
 )(.H)(.HMM$,-0  22 00A5MM$,.8$-? !22*++Hx++u4#&x}}'<'<UA'F#G#&x}}'<'<UA'F#G#&x}}'<'<UA'F#G!--6#$#$!%hoo!6$,$,$,	/G  00.6oo.G.G
+MM$,-4 MM68"45 "7!:!:8X!Nk*v~67 $"ZZ%&3[%A
 &&13%7' $L1 #,#iib9(*#*J& ;F;fh (;67y * "@s   0Xc          
     >   U(       a  [        SS05      R                  5       US'   U R                  5        GH^  u  p[        R                  " U	5      n
U
R                  S5      nUS:X  Ga  [        U
R                  S0 5      5      nUR                  S0 5      n0 nSU;   a  US   nU(       a  U H  nU Vs/ s H  nS	U0PM	     snUR                  S
/ 5      -   US
'   UR                  S/ 5       Hb  nUR                  S/ 5       HI  nUS   S:X  a  S/[        U5      -  US   -   US'   M&  US   S:X  d  M1  S/[        U5      -  US   -   US'   MK     Md     M     U H  nUR                  SS5        M     XS'   UR                  U5        UR                  SS5      nUR                  SS5      n[        SS05      R                  5       X#U-   '   U(       a!  [        U5      R                  5       X#U-   '   GM  GM  US:X  d  GM  SU;   a  [        UR                  S5      S   5      OSnUU   R                  nU
R                  S5      n[        U
S   5      n[        U
S   S   S   5      nU(       a   [        U5      U-   nS/[        U5      -  U-   nU(       a  Ub  [        U5      U-   n[         R"                  " U
S    5      nUb  UUR$                  SS -   O
['        U5      nSUUUSU
S!   S"SS#.nUUR(                     nUS$:X  a  UR*                  nUc  SO#[,        R.                  " U5      R                  5       n UR0                  n!U!c  SO#[,        R.                  " U!5      R                  5       n"[3        UR4                  UR6                  UR8                  UR:                  5      u  n#n$UU U"UR<                  U#U$S%.US&'   OUS':X  a  UR>                  S(:X  a	  US)S*.US&'   OUS+:X  a  S=n%n&UR(                  S,:X  ap  [        UR@                  RC                  S-S.5      5      n'[        UR@                  RC                  S/S5      5      n%[        UR@                  RC                  S0S5      5      n&OUR(                  S1:X  a  S.n'OS2n'UURD                  U'U%U&URF                  RH                  S3.US&'   O
Ub  S4U0US&'   URJ                  S:  an  URJ                  S5;   a  S6n(OS7n(URJ                  S8::  a  Sn)OURJ                  S9;   a  Sn)OS(n)UR6                  S:X  a  UR>                  S:  a  S:n*OS;n*U(U*U)UUS<./US='   UR                  SS>5      n+[        U5      R                  5       X#U+-   '   Uc  GM,  UR                  SS5      n[        S?U05      R                  5       X#U-   '   GMa     gs  snf )@z@Write Zarr v2 metadata to refzarr dict based on store and pages.rC  r,  r  rD  r=  rE  r>  r(  r   r?  r@  r<  r   r5  r4  r9  r:  rA  z0.4r  r  rw  r  r   ro  r   r}  r   ry  r   Nr|  r  rK  rL  r  )r  r  r  rW   r  r  rM  r  r  T)r  r  r  r  r  r  r  r  r  r  )r  r   r  r  r  r  r  r  r  r  r.  r  r  r  )r  r  r  r   r  rO  r
  r0  )&rY  r  r   r[  r\  r   r   rO  rN  
setdefaultr]  r  ro   r  rH  r   r   r  r  rS  rX   r  r  r  r  r-   rQ   rR   rS   r  rW   r  r  r  r  rI  r  r[   ),r  r  r  r  rO   r  r  r  rC   r  r   rD  r  	ome_attrsv2_attrsr(  r  rc  r  r  
zgroup_keyr  rH   rH  r  r   ry  r  	dtype_strr  ra  r  jpegtables_b64r  jpegheader_b64r  r  r  r  r  r  r  r  
zarray_keys,                                               rj   r  r  ;  s    (-);<CCE	!KKM

;'IIk*	 <45E		%,I')H	)'6)=B%CUrvrlU%Cbff"BG &6
 #%&&R"8B&(ff-H"&M#%f:#836%#e*2Dr(/H& 3&BwK &(Z=%@9<(-A& 9&(*=(99:B}$5 'N #9	 * &BMM)U3 &*5'OOE"[)<J[)<J.9"/fh 
*+ 2=3&( J./  '!.1SjC		#q)*aEU|,,H		"34Iw(El#O4]CK Vu, cCK/+=. K)3	KKk 23E ( EIIabM)&   !%""#L1	&F #8#7#78H--%00
 ") ))*5<<> 
 &00
 ") ))*5<<>  +(())))$$	## #,,%-%;%;'6'6(|$ ..,,1 # $(|$ ..&''8''50"8==#8#8#BCH"8==#8#8#BCH"8==#8#8#BCH))U2 H H"%__ ( ( ( ( 9 9(|$ %(,h'7|$!!A% %%):: 3I 7I%%*D''>9DD((A-(2J2JQ2NDD ( $ $!,!*%y! [)<J.9&.A.H.H.JG
*+$ [[i@
2=()43&( J./ * &Ds   4Vc               P    [         R                  " U SSSSS9R                  S5      $ )z)Serialize object to JSON formatted bytes.r   T),z: )r  	sort_keysensure_ascii
separatorsascii)r[  r  encode)objs    rj   rY  rY    s-    :: fWorx   c               N   U c  U $ UR                   S:X  a  [        U 5      $ UR                   S;   a  [        U 5      $ UR                   S:X  a_  [        R                  " U 5      (       a  g[        R
                  " U 5      (       a  g[        R                  " U 5      (       a  g[        U 5      $ UR                   S:X  aj  [        R                  " X5      n [        U R                  U R                  R                  5      [        U R                  U R                  R                  5      4$ U $ )z+Return value which is serializable to JSON.buifNaNInfinityz	-Infinityc)rG   rL   ro   r   isnanisposinfisneginfr   rw  r  realr  imag)r   r  s     rj   r  r    s    }zzSE{zzT5zzzS;;u>>%  >>%  U|zzSE)

EJJ$4$45

EJJ$4$45
 	
 Lrx   c               v    U R                   S:X  a  SnOSSS.[        R                     nXR                  SS -   $ )z.Return dtype as string with native byte order.r   |r  r  )rt  rv  N)r  r  rO   r  )r  rO   s     rj   rS  rS  	  s9    ~~	3/>	yy}$$rx   c          	   #     #    [        S [        XSS9 5       5      n[        R                  " U5       H  nUR	                  S U 5       5      v   M     g7f)z-Return iterator over all chunk index strings.c              3  :   #    U  H  u  pX-   S -
  U-  v   M     g7f)r   Nr|   )rh   rm  rn  s      rj   rk   _ndindex.<locals>.<genexpr>$	  s!      %DTQq%Ds   Tr2  c              3  8   #    U  H  n[        U5      v   M     g 7frf   r  )rh   r  s     rj   rk   r  (	  s     =WESZZWrq   N)rs   rW  r   ndindexr  )r   r  r{  r-  r/  s        rj   r  r  	  sO       %(t%D G ==)nn=W=== *s   AAc                  [        U5      nUS:X  a  gSU;   a  SU-  $ US   S:X  a  SOSn[        USU-   5      n[        U 5      SU-   :X  a%  USU-   :w  a  US   S:X  a  X* S X%* S :X  a  / U QSP7n U[        U 5      :  a@  SnU  H  nUS:  a    O	US-  nM     XS n U[        U 5      :  a  S	U< S
U < 3n[        U5      eSU[        U 5      -
  -  U -   $ )z(Return chunks with same length as shape.r   r|   r,  r   r.  r,  r  Nzshape=z is shorter than chunks=)rN  minr  )r  r   r  ndimdrm  r/  r   s           rj   r  r  +	  s    u:DqyEzd{AY!^AD!a%AFq1uQJ"IN"#J&+% 61c&kDaxFA  #f+UJ7{;CS/!4#f+%&//rx   c               
   U c  g[        U [        5      (       a  U $ [        X5      (       a  U R                  $ [        U [        R                  5      (       a  U" U R
                  5      R                  $ U" U 5      R                  $ )zANormalize int, str, or enum member to canonical enum name string.N)rt   r  r   enumEnumr   )r   enum_clss     rj   rg   rg   P	  si     }%%""zz%##$)))E?rx   c               b    UR                  5        H  u  p#[        R                  XU5        M     g)z.Set attributes on a frozen dataclass instance.N)r   r  __setattr__)r  rU  r
  vs       rj   rr   rr   _	  s$    31% rx   c                 *    SSK Jn   U " S[        5        g)zRegister zarr 3 tifffile codec.r   r   rz   N)zarr.registryr   r   r  s    rj   r   r   e	  s    ,:t$rx   >'   rj  rl  r  rn  rp  r  r  imagecodecs_sz3r  r  rf  rh  rr  r  r  r  imagecodecs_spngr  r  rt  r~  imagecodecs_rcompimagecodecs_sperrr  rz  r  r  imagecodecs_jpegxsimagecodecs_pcodecimagecodecs_float24imagecodecs_meshoptimagecodecs_bfloat16imagecodecs_ccittrleimagecodecs_dicomrleimagecodecs_packintsimagecodecs_pixarlogr  imagecodecs_ccittfax3imagecodecs_ccittfax4zfrozenset[str]r  imagecodecs_zlibimagecodecs_lzma)r  r  zdict[str, str]r  spacetimechannel)XYZTrK  SrR  )r  r   r  r=   r  rP   r  rL   r  r>   r   zNDArray[Any])r  r   r  r   r  r   r  r  r  #dict[COMPRESSION | int, str | None]r  	list[int]r  	list[str]r   r   )r  r   r  r   r  r   r  r  rO   rN   r  r,  r  r-  r  r.  r   r   )r  r4   r   rs  )r   r4   r  r@  r   r4   )r  r@  r   r  )r  )r{  r  r   r?  r  r?  r   zIterator[str])r  r?  r   r?  r  ztuple[int, int, int, int, int]r   r?  )r   zint | str | enum.Enum | Noner  ztype[enum.Enum]r   rP   )r  r  rU  r4   r   r   r8  )jr   
__future__r   __all__r   r  r  r
  r[  r  dataclassesr	   r
   ior   typingr   r   r   r   r  zarr.abc.codecr   zarr.abc.storer   r   zarr.core.buffer.cpur   r  zarr.core.chunk_gridsr   zarr.core.commonr   zarr.core.indexingr   ImportErrorr(  __version__r   r  rz   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   os	threadingcollections.abcr/   r0   r1   r2   r3   r4   r5   r6   numpy.typingr7   r8   zarr.core.array_specr9   zarr.core.bufferr:   r;   r<   r=   r>   r   r   r   r   r  r  r  rY  r  rS  r  r  rg   rr   r   	frozensetr  r   r  rR  r|   rx   rj   <module>rC     s  @ 8 "      
 (  3 3  	#.1</:/
      4   )(/.BB%1/ $f"? f" f"RU, U,Fp'I p'fr I r t ":::
 : : 
: :zSSS S 	S
 5S S S 
Slrrr r 	r
  r 5r r r 
rj2% 	> 	>>>
 >"0"0"0 +"0
 "0J ' 3B  &% '0(*' ^ *^ ) ~  
					# EK  #$""##8
9C
S/s"#s   &G G5G00G5