+
    QV-jÎZ  ã                   óÆ  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ RIHtHtHtHtHt ^ RIt^ RIt^ RIt^ RIH t  ^R	I!H"t" ^R
I#H$t$ ^RI!H%t% ^RI!H t& ^RI'H(t(H)t)H*t*H+t+  ^ RIH,t, ^ RI-t.^ RI-H/t/ ]%Pb                  ! ]24      t3]Ph                  t5R t6R R lt7R t8R R lt9R t:]R 4       t;]R3R R ll4       t<R t=R t>R t?R t@R tA ! R R]B4      tC ! R  R!]D4      tER" tFR4R# R$ lltG ! R% R&4      tHR5R' ltIR( tJ]! R)4      tKR* R+ ltLR, R- ltMR. R/ ltN]! R04      tOR1 R2 ltPR#   ]0 d
    R;t.;t/t, LÃi ; i)6z'Some python utils function and classes.N)ÚIterable)Úcontextmanager)ÚfieldsÚis_dataclass)ÚEmpty)Ú
disk_usage)ÚAnyÚCallableÚOptionalÚTypeVarÚUnion)Útqdm)Úconfig)Úparallel_map)Úlogging)ÚPicklerÚdumpÚdumpsÚpklregister)ÚFinal)ÚLiteralc                ó˜   € V '       g   R# . ROp\        V 4      p V F  w  r#W,          pVR8¼  g   K  VR RV 2u # 	  \        V 4       R2# )a  Returns a human readable size string.

If size_in_bytes is None, then returns "Unknown size".

For example `size_str(1.5 * datasets.units.GiB) == "1.50 GiB"`.

Args:
    size_in_bytes: `int` or `None`, the size, in bytes, that we want to
        format as a human-readable size string.
zUnknown sizeg      ð?z.2fÚ z bytes))ÚPiBì           )ÚTiBì        )ÚGiBé   @)ÚMiBé   )ÚKiBé   )ÚfloatÚint)Úsize_in_bytesÚ
_NAME_LISTÚnameÚ
size_bytesÚvalues   &    Úh/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/datasets/utils/py_utils.pyÚsize_strr+   G   s]   € ÷ Ùâa€Jä˜-Ó(€MÛ&ÑˆØÕ*ˆØ�CŽ<Ø˜C�[  $ Ð(Ò(ñ 'ô �-Ó Ð! Ð(Ð(ó    c                óR   € V ^8„  d   QhR\         \        \        3,          R\        /# )é   ÚsizeÚreturn)r   r$   Ústr)Úformats   "r*   Ú__annotate__r3   _   s&   € ÷ )sñ )s¤5¬¬c¨¥?ð )s´sñ )sr,   c                ó,  € \        V \        4      '       d   V # V P                  4       P                  R4      '       d   \        V RR 4      R,          # V P                  4       P                  R4      '       d   \        V RR 4      R,          # V P                  4       P                  R4      '       d   \        V RR 4      R,          # V P                  4       P                  R4      '       d   \        V RR 4      R,          # V P                  4       P                  R4      '       d   \        V RR 4      R,          # V P                  4       P                  R4      '       d8   \        V RR 4      R,          pV P                  R4      '       d
   V^,          # T# V P                  4       P                  R	4      '       d8   \        V RR 4      R,          pV P                  R4      '       d
   V^,          # T# V P                  4       P                  R
4      '       d8   \        V RR 4      R,          pV P                  R4      '       d
   V^,          # T# V P                  4       P                  R4      '       d8   \        V RR 4      R,          pV P                  R4      '       d
   V^,          # T# V P                  4       P                  R4      '       d8   \        V RR 4      R,          pV P                  R4      '       d
   V^,          # T# \	        RV  R24      h)a  
Converts a size expressed as a string with digits an unit (like `"50MB"`) to an integer (in bytes).

Args:
    size (`int` or `str`): The size to convert. Will be directly returned if an `int`.

Example:

```py
>>> convert_file_size_to_int("1MiB")
1048576
```
ÚPIBNÚTIBÚGIBÚMIBÚKIBÚPBÚbÚTBÚGBÚMBÚKBz`size=zM` is not in a valid format. Use an integer followed by the unit, e.g., '5GB'.éýÿÿÿr   r   r   r    r"   éþÿÿÿl     �Iú5 l    J)£i Êš;i@B éè  )Ú
isinstancer$   ÚupperÚendswithÚ
ValueError)r/   Úint_sizes   & r*   Úconvert_file_size_to_intrH   _   so  € ô �$œ×ÒØˆØ‡z�zƒ|×Ñ˜U×#Ò#Ü�4˜˜�9‹~ Õ'Ð'Ø‡z�zƒ|×Ñ˜U×#Ò#Ü�4˜˜�9‹~ Õ'Ð'Ø‡z�zƒ|×Ñ˜U×#Ò#Ü�4˜˜�9‹~ Õ'Ð'Ø‡z�zƒ|×Ñ˜U×#Ò#Ü�4˜˜�9‹~ Õ'Ð'Ø‡z�zƒ|×Ñ˜U×#Ò#Ü�4˜˜�9‹~ Õ'Ð'Ø‡z�zƒ|×Ñ˜T×"Ò"Ü�t˜C˜R�y“> VÕ,ˆØ $§¡¨c× 2Ò 2ˆx˜1�}Ð@¸Ð@Ø‡z�zƒ|×Ñ˜T×"Ò"Ü�t˜C˜R�y“> VÕ,ˆØ $§¡¨c× 2Ò 2ˆx˜1�}Ð@¸Ð@Ø‡z�zƒ|×Ñ˜T×"Ò"Ü�t˜C˜R�y“> UÕ+ˆØ $§¡¨c× 2Ò 2ˆx˜1�}Ð@¸Ð@Ø‡z�zƒ|×Ñ˜T×"Ò"Ü�t˜C˜R�y“> UÕ+ˆØ $§¡¨c× 2Ò 2ˆx˜1�}Ð@¸Ð@Ø‡z�zƒ|×Ñ˜T×"Ò"Ü�t˜C˜R�y“> UÕ+ˆØ $§¡¨c× 2Ò 2ˆx˜1�}Ð@¸Ð@Ü
�v˜d˜VÐ#pÐqÓ
rÐrr,   c                 ó„  € V P                  R R4      P                  RR4      P                  RR4      P                  RR4      P                  RR	4      P                  R
R4      P                  RR4      P                  RR4      P                  RR4      P                  RR4      P                  R	4      P                  RR4      # )Ú\z\\Ú.z\.Ú*z.*Ú+z\+z//Ú/Ú(z\(Ú)z\)Ú|z\|Ú^z\^Ú$z\$Ú?)ÚreplaceÚrstrip)Úpatterns   &r*   Úglob_pattern_to_regexrX   ‹   s˜   € ð 	�‰˜˜eÓ$ß	‰��eÓ	ß	‰��dÓ	ß	‰��eÓ	ß	‰��sÓ	ß	‰��eÓ	ß	‰��eÓ	ß	‰��eÓ	ß	‰��eÓ	ß	‰��eÓ	ß	‰�‹ß	‰��cÓ	ðr,   c          	      ót   € V ^8„  d   QhR\         R\         R\        \        \         \         3,          ,          /# )r.   ÚstringrW   r0   )r1   r
   Údict)r2   s   "r*   r3   r3   ž   s.   € ÷ ñ œ3ð ¬ð ´¼$¼sÄC¸x½.Õ1Iñ r,   c                ó&  € \         P                  ! RRV4      p\         P                  ! RRV4      p\         P                  ! W 4      pVf   R# \        VP	                  4       4      p\         P
                  ! RV4      p\        \        WT4      4      pV# )a=  Un-format a string using a python f-string pattern.
From https://stackoverflow.com/a/36838374

Example::

    >>> p = 'hello, my name is {name} and I am a {age} year old {what}'
    >>> s = p.format(name='cody', age=18, what='quarterback')
    >>> s
    'hello, my name is cody and I am a 18 year old quarterback'
    >>> string_to_dict(s, p)
    {'age': '18', 'name': 'cody', 'what': 'quarterback'}

Args:
    string (str): input string
    pattern (str): pattern formatted like a python f-string
        This can be a regex - so in case of un-formatting paths you should use posix paths.
        Otherwise backslashes for windows paths can cause issues.

Returns:
    Optional[dict[str, str]]: dictionary of variable -> value, retrieved from the input using the pattern, or
    `None` if the string does not match the pattern.
z{([^:}]+)(?::[^}]+)?}z{\1}z{(.+?)}z(?P<_\1>.+)N)ÚreÚsubÚsearchÚlistÚgroupsÚfindallr[   Úzip)rZ   rW   ÚregexÚresultÚvaluesÚkeysÚ_dicts   &&     r*   Ústring_to_dictri   ž   ss   € ô. �fŠfÐ-¨w¸Ó@€GÜ�FŠF�:˜~¨wÓ7€EÜ�YŠY�uÓ%€FØ‚~ÙÜ�&—-‘-“/Ó"€FÜ�:Š:�j 'Ó*€DÜ”�TÓ"Ó#€EØ€Lr,   c                óŽ   aa€ R oVV3R lo\        V \        4      '       g   S! V 4      '       g   \        V  R24      hS! V 4      # )zZConvert an object to its dictionary representation recursively.

<Added version="2.4.0"/>
c                 óR   € \        V 4      ;'       d    \        V \        4      '       * # ©N)r   rC   Útype)Úobjs   &r*   Ú_is_dataclass_instanceÚ&asdict.<locals>._is_dataclass_instanceÈ   s   € ä˜CÓ ×>Ð>¬°C¼Ó)>Ô%>Ð>r,   c                 ó  <€ S! V 4      '       d†   / p\        V 4       Fr  pS! \        WP                  4      4      pVP                  '       d5   W2P                  8w  g%   VP
                  P                  R R4      '       g   Kd  W1VP                  &   Kt  	  V# \        V \        4      '       d8   \        V R4      '       d&   \        V 4      ! V  Uu. uF  pS! V4      NK  	  up!  # \        V \        \        34      '       d   \        V 4      ! V3R lV  4       4      # \        V \        4      '       d2   V P                  4        UUu/ uF  w  rTS! V4      S! V4      bK  	  upp# \        P                  ! V 4      # u upi u uppi )Ú$include_in_asdict_even_if_is_defaultFÚ_fieldsc              3   ó4   <"  € T F  pS! V4      x € K  	  R # 5irl   © )Ú.0ÚvÚ_asdict_inners   & €r*   Ú	<genexpr>Ú0asdict.<locals>._asdict_inner.<locals>.<genexpr>Û   s   øé € Ð;±s°!™]¨1×-Ð-³sùó   ƒ)r   Úgetattrr'   ÚinitÚdefaultÚmetadataÚgetrC   ÚtupleÚhasattrrm   r`   r[   ÚitemsÚcopyÚdeepcopy)rn   re   Úfr)   rw   Úkrx   ro   s   &     €€r*   rx   Úasdict.<locals>._asdict_innerÌ   s%  ø€ Ù! #×&Ò&ØˆFÜ˜C–[�Ù%¤g¨c·6±6Ó&:Ó;�Ø—v—v�v ¯)©)Ô!3°q·z±z·~±~ÐFlÐns×7tÔ7tØ%*˜1Ÿ6™6“Nñ !ð ˆMÜ˜œU×#Ò#¬°°Y×(?Ò(?ä˜”9¹Ó=¹°A™}¨QÖ/¹Ñ=Ñ>Ð>Ü˜œd¤E˜]×+Ò+ô ˜”9Ô;±sÓ;Ó;Ð;Ü˜œT×"Ò"ØCFÇ9Á9Ä;ÔOÁ;¹4¸1‘M !Ó$¡m°AÓ&6Ò6Á;ÒOÐOä—=’= Ó%Ð%ùò >ùó Ps   ÃE6ÅE;z is not a dict or a dataclass)rC   r[   Ú	TypeError)rn   rx   ro   s   &@@r*   ÚasdictrŠ   À   sE   ù€ ò?ö&ô* �cœ4× Ò Ñ)?À×)DÒ)DÜ˜3˜%Ð<Ð=Ó>Ð>á˜ÓÐr,   c              #  ó‚   "  € \        WR4      p\        WV4        Rx € \        WV4       R#   \        YT4       i ; i5i)z%Temporarily assign obj.attr to value.N)r|   Úsetattr)rn   Úattrr)   Úoriginals   &&& r*   Útemporary_assignmentr�   ç   s9   é € ô �s $Ó'€HÜˆC�uÔð%Ûä�˜8Ö$øŒ�˜8Õ$üs   ‚?œ.  ?®<¼?c                ó$   € V ^8„  d   QhR\         /# )r.   Úseed)r$   )r2   s   "r*   r3   r3   ó   s   € ÷ 2,ñ 2,”Cñ 2,r,   c              #  óž  "  € \         P                  P                  4       p\         P                  P                  V 4       V'       d¥   \        P
                  '       d�   ^ RIpVP                  P                  4       pVP                  P                  V 4       VP                  P                  4       '       d6   VP                  P                  4       pVP                  P                  V 4       V'       dé   \        P                  '       dÓ   ^ RIp^ RIHp VP                  P#                  4       p	VP                  P$                  P'                  V 4      p
VP                  P)                  V
4       VP+                  4       '       g   \-        R4      hVP!                  4       pVP.                  p\1        VR4      pV'       d   VP2                  pVP5                  V 4        Rx € \         P                  P7                  V4       V'       dm   \        P
                  '       dW   XP                  P9                  X4       VP                  P                  4       '       d   VP                  P;                  X4       V'       dZ   \        P                  '       dB   XP                  P)                  X	4       XXn        X'       d
   XVn        R# \=        VR4       R# R# R#   \         P                  P7                  T4       T'       dm   \        P
                  '       dW   XP                  P9                  X4       TP                  P                  4       '       d   TP                  P;                  X4       T'       dW   \        P                  '       d@   XP                  P)                  X	4       XXn        X'       d	   XTn        i \=        TR4       i i i ; i5i)zUTemporarily set the random seed. This works for python numpy, pytorch and tensorflow.N)ÚcontextzBSetting random seed for TensorFlow is only available in eager modeÚ_rng)ÚnpÚrandomÚ	get_stater‘   r   ÚTORCH_AVAILABLEÚtorchÚget_rng_stateÚmanual_seedÚcudaÚis_availableÚget_rng_state_allÚmanual_seed_allÚTF_AVAILABLEÚ
tensorflowÚtensorflow.python.eagerr“   Úget_global_generatorÚ	GeneratorÚ	from_seedÚset_global_generatorÚexecuting_eagerlyrF   Ú_seedr‚   r”   Ú_set_global_seedÚ	set_stateÚset_rng_stateÚset_rng_state_allÚdelattr)r‘   Úset_pytorchÚset_tensorflowÚnp_stater™   Útorch_stateÚtorch_cuda_statesÚtfÚtfpycontextÚtf_stateÚtemp_genÚ
tf_contextÚtf_seedÚtf_rng_initializedÚtf_rngs   &&&            r*   Ú	temp_seedr»   ò   s„  é € ô �y‰y×"Ñ"Ó$€HÜ‡I�I‡N�N�4Ôç”v×-×-Ð-Ûà—l‘l×0Ñ0Ó2ˆØ�‰× Ñ  Ô&à�:‰:×"Ñ"×$Ò$Ø %§
¡
× <Ñ <Ó >ÐØ�J‰J×&Ñ& tÔ,çœ&×-×-Ð-ÛÝBà—9‘9×1Ñ1Ó3ˆØ—9‘9×&Ñ&×0Ñ0°Ó6ˆØ
�	‰	×&Ñ& xÔ0à×#Ñ#×%Ò%ÜÐaÓbÐbà ×(Ñ(Ó*ˆ
Ø×"Ñ"ˆÜ$ Z°Ó8ÐßØ—_‘_ˆFØ×#Ñ# DÔ)ð,Ûä
�	‰	×Ñ˜HÔ%çœ6×1×1Ð1Ø�L‰L×&Ñ& {Ô3Ø�z‰z×&Ñ&×(Ò(Ø—
‘
×,Ñ,Ð->Ô?çœf×1×1Ð1Ø�I‰I×*Ñ*¨8Ô4à&ˆJÔß!Ø"(�
–ä˜
 FÖ+ñ 2‰>øô 	�	‰	×Ñ˜HÔ%çœ6×1×1Ð1Ø�L‰L×&Ñ& {Ô3Ø�z‰z×&Ñ&×(Ò(Ø—
‘
×,Ñ,Ð->Ô?çœf×1×1Ð1Ø�I‰I×*Ñ*¨8Ô4à&ˆJÔß!Ø"(�
•ä˜
 FÕ+ð 2ˆ>üs{   ‚AOÁAOÂ7<OÃ4OÄ
A9OÆAOÇK Ç!<OÈ:OÉ"OÉ<OÊ)OÊ<OË=O
Ì:O
Í"O
Í3O
Î	)O
Î3O
Ï
Oc              #  ón   "  € \        4       pV  F   pW!9  g   K  VP                  V4       Vx € K"  	  R# 5i)z=Iterate over iterable and return only unique values in order.N)ÚsetÚadd)rf   Úseenr)   s   &  r*   Úunique_valuesrÀ   (  s,   é € ä‹5€DÛˆØÖØ�H‰H�UŒOØŒKó ùs   ‚5š5c                ó   a € V 3R lpV# )z4If the value is None, return None, else call `func`.c                 ó    <€ V e	   S! V 4      # R # rl   ru   )r)   Úfuncs   &€r*   ÚwrapperÚ'no_op_if_value_is_null.<locals>.wrapper4  s   ø€ Ø#Ò/‰t�E‹{Ð9°TÐ9r,   ru   )rÃ   rÄ   s   f r*   Úno_op_if_value_is_nullrÆ   1  s   ø€ õ:ð €Nr,   c                ó@   € \        V 4       F  w  rVf   K  W3u # 	  R# )zwReturn the index and the value of the first non-null value in the iterable. If all values are None, return -1 as index.©éÿÿÿÿN)Ú	enumerate©ÚiterableÚir)   s   &  r*   Úfirst_non_null_valuerÎ   :  s'   € ä˜hÖ'‰ˆØÔØ�8ŠOñ (ð €Or,   c                óœ   € \        V 4       F<  w  rVf   K  \        V\        \        34      '       d   \	        V4      ^ 8X  d   K9  W3u # 	  R# )zŠReturn the index and the value of the first non-null non-empty value in the iterable. If all values are None or empty, return -1 as index.rÈ   )rÊ   rC   r[   r`   ÚlenrË   s   &  r*   Úfirst_non_null_non_empty_valuerÑ   B  sB   € ä˜hÖ'‰ˆØÔ¤j°¼¼t¸×&EÒ&EÌ#ÈeË*ÐXYÎ/Ø�8ŠOñ (ð €Or,   c               '  óÄ   a"  € \        \        P                  ! V !  4       F9  oS\        ;QJ d    . V3R lV  4       F  NK  	  5M! V3R lV  4       4      3x € K;  	  R# 5i)z9Iterate over items of dictionaries grouped by their keys.c              3   ó4   <"  € T F  qS,          x € K  	  R # 5irl   ru   )rv   ÚdÚkeys   & €r*   ry   Úzip_dict.<locals>.<genexpr>N  s   øé € Ð/© A˜3Ÿš«ùr{   N)rÀ   Ú	itertoolsÚchainr�   )ÚdictsrÕ   s   *@r*   Úzip_dictrÚ   J  sB   øé € äœYŸ_š_¨eÑ4Ö5ˆà—5”5Ô/©Ó/—5‘5Ô/©Ó/Ó/Ð/Ô/ó 6ùs   ƒAA c                   óN   a a€ ] tR tRt oRtV 3R ltV 3R ltV 3R ltRtVt	V ;t
# )ÚNonMutableDictiQ  zâDict where keys can only be added but not modified.

Will raise an error if the user try to overwrite one key. The error message
can be customized during construction. It will be formatted using {key} for
the overwritten key.
c                ó|   <€ VP                  R R4      V n        V'       d   \        R4      h\        SV `  ! V/ VB  R# )Ú	error_msgz$Try to overwrite existing key: {key}z1NonMutableDict cannot be initialized with kwargs.N)ÚpopÚ
_error_msgrF   ÚsuperÚ__init__)ÚselfÚargsÚkwargsÚ	__class__s   &*,€r*   râ   ÚNonMutableDict.__init__Y  s<   ø€ Ø Ÿ*™*ØØ2ó
ˆŒ÷ ÜÐPÓQÐQÜ‰Ò˜$Ð) &Ô)r,   c                óx   <€ W9   d&   \        V P                  P                  VR 7      4      h\        SV `  W4      # )©rÕ   )rF   rà   r2   rá   Ú__setitem__)rã   rÕ   r)   ræ   s   &&&€r*   rê   ÚNonMutableDict.__setitem__b  s5   ø€ ØŒ;Ü˜TŸ_™_×3Ñ3¸Ð3Ó<Ó=Ð=Ü‰wÑ" 3Ó.Ð.r,   c                ó   <a € \         ;QJ d    V 3R  lV 4       F  '       g   K   RM	  RM! V 3R  lV 4       4      '       d?   \        S P                  P                  \	        S 4      \	        V4      ,          R7      4      h\
        SS `  V4      # )c              3   ó,   <"  € T F	  qS9   x € K  	  R # 5irl   ru   )rv   r‡   rã   s   & €r*   ry   Ú(NonMutableDict.update.<locals>.<genexpr>h  s   øé € Ð(¡%˜Q�DŽy£%ùs   ƒTFré   )ÚanyrF   rà   r2   r½   rá   Úupdate)rã   Úotherræ   s   f&€r*   rð   ÚNonMutableDict.updateg  s]   ù€ ß‹3Ô(¡%Ó(�3�3Š3Ô(¡%Ó(×(Ò(Ü˜TŸ_™_×3Ñ3¼¸D»	ÄCÈÃJÕ8NÐ3ÓOÓPÐPÜ‰w‰~˜eÓ$Ð$r,   )rà   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__râ   rê   rð   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)ræ   Ú__classdict__s   @@r*   rÜ   rÜ   Q  s   ù‡ € ñõ*õ/÷
%õ %r,   rÜ   c                   ó.   a € ] tR tRt o RtRR ltRtV tR# )Úclasspropertyim  z5Descriptor to be used as decorator for @classmethods.Nc                óD   € V P                   P                  R V4      ! 4       # rl   )ÚfgetÚ__get__)rã   rn   Úobjtypes   &&&r*   r   Úclassproperty.__get__p  s   € Ø�y‰y× Ñ   wÔ/Ó1Ð1r,   ru   rl   )ró   rô   rõ   rö   r÷   r   rø   rù   ©rû   s   @r*   rý   rý   m  s   ø‡ € Ù?÷2ò 2r,   rý   c                ó  a€ V w  rr4orVp\        V\        4      '       g3   \        VS4      '       g!   V'       d   V! V.4      ^ ,          # V! V4      # V'       d“   \        V\        4      '       g}   \        VS4      '       dk   \        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       d+   \        W$4       UU	u. uF  q�! V4       F  q™NK  	  K  	  up	p# Ve>   \        P
                  ! 4       \        P                  8  d   \        P                  ! 4        Vem   V'       ge   \        ;QJ d*    R \        P                   4       F  '       g   K   RM	  RM! R \        P                   4       4      '       d   \        RRRR7       \        V\        4      '       d   VP                  4       MTp
Ve'   Ve
   VR,           MRR	,           \        V4      ,           MTp\        W¦VR
VR7      ;_uu_ 4       p\        V\        4      '       d1   V UUu/ uF  w  rÞV\        WW4SRRR34      bK  	  uppuuRRR4       # V Uu. uF  p\        WW4SRRR34      NK  	  pp\        V\         4      '       d   VuuRRR4       # \        V\"        4      '       d   \#        V4      uuRRR4       # \$        P&                  ! V4      uuRRR4       # u up	pi u uppi u upi   + '       g   i     R# ; i)zEApply a function recursively to each element of a nested data struct.c              3   óR   <"  € T F  p\        V\        S34      '       * x € K  	  R # 5irl   )rC   r[   )rv   rw   Útypess   & €r*   ry   Ú%_single_map_nested.<locals>.<genexpr>‚  s"   øé € ÐF¹+°Q”J˜q¤4¨ -Ó0×0Ñ0»+ùs   ƒ$'FTNc              3   ó@   "  € T F  pR VP                   9   x € K  	  R# 5i)ÚnotebookN)ró   )rv   Útqdm_clss   & r*   ry   r  ‹  s   é € Ð4rÑeqÐYa°ZÀ8×CTÑCTÖ5TÓeqùó   ‚r   Ú )ÚendÚflushÚ#rn   )ÚdisableÚpositionÚunitÚdesc)rC   r[   ÚallÚiter_batchedr   Úget_verbosityÚWARNINGÚset_verbosity_warningrï   r   Ú__mro__Úprintrƒ   r1   Úhf_tqdmÚ_single_map_nestedr`   r�   r•   Úarray)rä   ÚfunctionÚdata_structÚbatchedÚ
batch_sizeÚrankÚdisable_tqdmr  ÚbatchÚmapped_itemÚpbar_iterableÚ	pbar_descÚpbarr‡   rw   Úmappedr  s   &               @r*   r  r  t  si  ø€ àRVÑO€H˜7°°tÈ4ô �k¤4×(Ò(´¸KÈ×1OÒ1OßÙ˜[˜MÓ*¨1Õ-Ð-á˜KÓ(Ð(çÜ˜;¬×-Ò-Ü�{ E×*Ò*ß‹CÔF¹+ÓF�C�CŠCÔF¹+ÓF×FÒFä)5°kÔ)NÔrÑ)N ÐbjÐkpÖbqÐS^’Ñbq‘Ñ)NÒrÐrð ÒœG×1Ò1Ó3´g·o±oÔEÜ×%Ò%Ô'ð Ò§·³Ñ4rÔei×eqÒeqÓ4r··²Ñ4rÔei×eqÒeqÓ4r×1rÒ1rÜˆc�r Õ&ô ,6°kÄ4×+HÒ+H�K×%Ñ%Ô'Èk€MØNRÒN^˜tÒ/�˜–°R¸3Õ>ÄÀTÃÖJÐdh€IÜ	�¸tÈ%ÐV_×	`Õ	`ÐdhÜ�k¤4×(Ò(áosôÙosÑgkÐgh�Ô% x°GÈÐPTÐVZÐ\`Ð&aÓbÒbÑosò÷ 
aÒ	`ñ ptÓtÑosÐjkÔ(¨(°wÈEÐSWÐY]Ð_cÐ)dÖeÑosˆFÐtÜ˜+¤t×,Ò,Ø÷ 
aÒ	`ô ˜K¬×/Ò/Ü˜V“}÷ 
aÒ	`ô —x’x Ó'÷ 
aÒ	`ùó sùóùò u÷ 
a×	`Ð	`úsB   ÃKÈK-È$K"
ÉK-ÉK-ÉK(É-K-Ê K-Ê<K-Ë"K-Ë-K>	c                ó<  € V ^8„  d   QhR\         \        .\        3,          R\        R\        R\        R\        R\        R\        \        ,          R\        R	\        R
\        \        ,          R\        \
        ,          R\        R\        \        ,          R\        /# )r.   r  r  Ú	dict_onlyÚmap_listÚ	map_tupleÚ	map_numpyÚnum_procÚparallel_min_lengthr   r!  r  r#  r  r0   )r	   r   Úboolr
   r$   r�   r1   )r2   s   "r*   r3   r3      s¿   € ÷ F$ñ F$Üœ�uœc�zÕ"ðF$äðF$ô ðF$ô ð	F$ô
 ðF$ô ðF$ô ”s�mðF$ô ðF$ô ðF$ô œ•ðF$ô ”E�?ðF$ô ðF$ô ”3�-ðF$ô 	ñF$r,   c                óŽ  a
a€ S
fz   . o
V'       ge   V'       d   S
P                   ! \        4       V'       d   S
P                   ! \        4       V'       d!   S
P                   ! \        P                  4       \        S
4      o
\        V\        4      '       g9   \        VS
4      '       g'   V'       d   V.pV ! V4      pV'       d
   V^ ,          pV# \        V\        4      '       d   \        VP                  4       4      MToVf   ^p\        ;QJ d     VV
3R lS 4       F  '       g   K   RM	  RM! VV
3R lS 4       4      '       d$   S Uu. uF  p\        V VVVVV	S
R7      NK  	  ppEM¬VR
8w  d   V^8:  g   \        S4      V8  d·   V'       d`   V	e   V	^ 8:  d@   \        \        S4      V,          \        \        S4      V,          ^ 8„  4      ,           ^4      p	\        \        SV	4      4      o\        SW¼R7       Uu. uF  p\        WW‰S
RRR34      NK  	  ppV'       d   V UUu. uF  qÿ F  pVNK  	  K  	  pppMØ\         P"                  ! 4       ;_uu_ 4        \         P$                  ! RR\&        R	7       V'       dV   V	e   V	^ 8:  d6   \        S4      V,          \        \        S4      V,          ^ 8„  4      ,           p	\        \        SV	4      4      o\)        V SWhV	S
W¼\        4	      pV'       d   V UUu. uF  qÿ F  pVNK  	  K  	  pppRRR4       \        V\        4      '       d$   \        \+        VP-                  4       X4      4      # \        V\        4      '       d   X# \        V\        4      '       d   \        X4      # \        P.                  ! X4      # u upi u upi u uppi u uppi   + '       g   i     L®; i)aœ  Apply a function recursively to each element of a nested data struct.

Use multiprocessing if num_proc > 1 and the length of data_struct is greater than or equal to
`parallel_min_length`.

<Changed version="2.5.0">

Before version 2.5.0, multiprocessing was not used if `num_proc` was greater than or equal to ``len(iterable)``.

Now, if `num_proc` is greater than or equal to ``len(iterable)``, `num_proc` is set to ``len(iterable)`` and
multiprocessing is used.

</Changed>

Args:
    function (`Callable`): Function to be applied to `data_struct`.
    data_struct (`Any`): Data structure to apply `function` to.
    dict_only (`bool`, default `False`): Whether only apply `function` recursively to `dict` values in
        `data_struct`.
    map_list (`bool`, default `True`): Whether also apply `function` recursively to `list` elements (besides `dict`
        values).
    map_tuple (`bool`, default `False`): Whether also apply `function` recursively to `tuple` elements (besides
        `dict` values).
    map_numpy (`bool, default `False`): Whether also apply `function` recursively to `numpy.array` elements (besides
        `dict` values).
    num_proc (`int`, *optional*): Number of processes.
        The level in the data struct used for multiprocessing is the first level that has smaller sub-structs,
        starting from the root.
    parallel_min_length (`int`, default `2`): Minimum length of `data_struct` required for parallel
        processing.
        <Added version="2.5.0"/>
    batched (`bool`, defaults to `False`):
        Provide batch of items to `function`.
        <Added version="2.19.0"/>
    batch_size (`int`, *optional*, defaults to `1000`):
        Number of items per batch provided to `function` if `batched=True`.
        If `batch_size <= 0` or `batch_size == None`, provide the full iterable as a single batch to `function`.
        <Added version="2.19.0"/>
    types (`tuple`, *optional*): Additional types (besides `dict` values) to apply `function` recursively to their
        elements.
    disable_tqdm (`bool`, default `True`): Whether to disable the tqdm progressbar.
    desc (`str`, *optional*): Prefix for the tqdm progressbar.

Returns:
    `Any`
Nc              3   óz   <"  € T F0  p\        VS4      ;'       d    \        V4      \        S4      8„  x € K2  	  R # 5irl   )rC   rÐ   )rv   rw   rÌ   r  s   & €€r*   ry   Úmap_nested.<locals>.<genexpr>õ  s0   øé € Ð
MÁH¸qŒ:�a˜Ó×:Ð:¤C¨£F¬S°«]Ñ$:Ô:ÃHùs   ƒ;› ;TF)r  r  r/  r0  r   r!  r  )r  r  ÚignorezL.* is experimental and might be subject to breaking changes in the future\.$)ÚmessageÚcategoryrÉ   )Úappendr`   r�   r•   ÚndarrayrC   r[   rf   rï   Ú
map_nestedrÐ   Úmaxr$   r  r  r  ÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningr   rc   rg   r  )r  r  r+  r,  r-  r.  r/  r0  r   r!  r  r#  r  r)  rn   Úmapped_batchr%  rÌ   s   &&&&&&&&&&f&&    @r*   r:  r:     s  ù€ ðz ‚}ØˆßßØ—’œTÔ"ßØ—’œUÔ#ßØ—’œRŸZ™ZÔ(Ü�e“ˆô �k¤4×(Ò(´¸KÈ×1OÒ1OßØ&˜-ˆKÙ˜+Ó&ˆßØ˜A•YˆFØˆä-7¸ÄT×-JÒ-JŒt�K×&Ñ&Ó(Ô)ÐP[€HàÒØˆß
ƒsÕ
MÁHÓ
M‡s‡s‚sÕ
MÁHÓ
M×MÒMñ  ó
ñ  �ô Ø!ØØ!Ø$7ØØ%Ø÷ñ  ð 	ð 
‰ð 
�RŒ˜H¨œM¬S°«]Ð=PÔ-PßØÒ! Z°1¤_Ü ¤ X£°(Õ!:¼SÄÀXÃÐQYÕAYÐ\]ÑA]Ó=^Õ!^Ð`aÓb�
ÜœL¨°:Ó>Ó?ˆHô ˜x°ÕIó
áI�ô  ¨wÀEÈ4ÐQUÐW[Ð\Ö]ÙIð 	ð 
÷ Ù6<Ô]±f lÒP\À“kÑP\‘k±fˆFÑ]øä×$Ò$×&Õ&Ü×#Ò#ØØgÜ$õ÷
 ØÒ%¨°q¬Ü!$ X£°(Õ!:¼SÄÀXÃÐQYÕAYÐ\]ÑA]Ó=^Õ!^�JÜ¤¨X°zÓ BÓC�Ü!Ø˜( H°zÀ5È,Ô^póˆF÷ Ù:@Ôa¹&¨,ÒT`À[›+ÑT`™+¹&�Ña÷ 'ô  �+œt×$Ò$Ü”C˜×(Ñ(Ó*¨FÓ3Ó4Ð4ä�k¤4×(Ò(ØˆMÜ˜¤U×+Ò+Ü˜“=Ð ä—8’8˜FÓ#Ð#ùòa
ùò"
ùó
 ^ùó  b÷ '×&ús1   ÅNÇ>N#È'N(ÉBN4Ë8N.
ÌN4Î.N4Î4O	c                   ó4   a € ] tR tRt o RR ltRR ltRtV tR# )ÚNestedDataStructurei)  Nc                ó,   € Ve	   Wn         R # . V n         R # rl   ©Údata)rã   rE  s   &&r*   râ   ÚNestedDataStructure.__init__*  s   € Ø Ò,�DŽ	°"ˆŽ	r,   c                ó@  € Ve   TMV P                   p\        V\        4      '       d)   V P                  \	        VP                  4       4      4      # \        V\        \        34      '       d+   V UUu. uF  q P                  V4       F  q3NK  	  K  	  upp# V.# u uppi rl   )rE  rC   r[   Úflattenr`   rf   r�   )rã   rE  ÚitemÚ	flatteneds   &&  r*   rH  ÚNestedDataStructure.flatten-  s|   € ØÒ'‰t¨T¯Y©YˆÜ�dœD×!Ò!Ø—<‘<¤ T§[¡[£]Ó 3Ó4Ð4Ü˜œt¤U˜m×,Ò,Ù*.ÔS©$ $ÇÁÈTÖ@R°9’IÑ@R‘I©$ÒSÐSà�6ˆMùó Ts   Á2!BrD  rl   )ró   rô   rõ   rö   râ   rH  rø   rù   r  s   @r*   rB  rB  )  s   ø‡ € ô5÷ò r,   rB  c                 ó”   €  \        \        P                  P                  V4      4      P                  pW8  #   \
         d     R # i ; i)T)r   ÚosÚpathÚabspathÚfreeÚOSError)Úneeded_bytesÚ	directoryÚ
free_bytess   && r*   Úhas_sufficient_disk_spacerU  7  sC   € ðÜ¤§¡§¡°	Ó :Ó;×@Ñ@ˆ
ð Ñ$Ð$øô ô Úðús   ‚28 ¸AÁAc                 óÀ   € \         P                  ! V P                  V P                  V P                  V P
                  V P                  4      pV P                  Vn        V# rl   )r  ÚFunctionTypeÚ__code__Ú__globals__ró   Ú__defaults__Ú__closure__Ú__kwdefaults__)rÃ   re   s   & r*   Úcopyfuncr]  ?  sI   € Ü×Ò §¡¨t×/?Ñ/?ÀÇÁÐPT×PaÑPaÐcg×csÑcsÓt€FØ ×/Ñ/€FÔØ€Mr,   ÚYc                óŒ   € V ^8„  d   QhR\         P                  R\        R\        \        ,          3,          R\
        R\        /# )r.   ÚqueuerÃ   .rå   r0   )r`  ÚQueuer	   r   r^  r[   r$   )r2   s   "r*   r3   r3   H  s<   € ÷ ñ ¤U§[¡[ð ¼ÀÄhÌqÅkÐAQÕ8Rð Ô\`ð Ôehñ r,   c                 ó^   € \        V! R/ VB 4       F  w  r4V P                  ! V4       K  	  X# )Nru   )rÊ   Úput)r`  rÃ   rå   rÍ   re   s   &&&  r*   Ú_write_generator_to_queuerd  H  s*   € Ü™t™~ f™~Ö.‰	ˆØ�	Š	�&Öñ /à€Hr,   c                ó¸   € V ^8„  d   QhR\         \        P                  P                  \        P                  P                  3,          R\
        \        ,          /# )r.   Úpoolr0   )r   Úmultiprocessingrf  ÚPoolÚmultiprocessr½   r$   )r2   s   "r*   r3   r3   N  sC   € ÷ 'ñ 'œœo×2Ñ2×7Ñ7¼×9JÑ9J×9OÑ9OÐOÕPð 'ÔUXÔY\ÕU]ñ 'r,   c                 óV   € V P                    Uu0 uF  qP                  kK  	  up# u upi rl   )Ú_poolÚpid)rf  r†   s   & r*   Ú_get_pool_pidrm  N  s    € ØŸ:š:Ó&™:�a�EŒE™:Ñ&Ð&ùÒ&s   �&c          	      ó  € V ^8„  d   QhR\         \        P                  P                  \        P                  P                  3,          R\
        R\        \        ,          3,          R\        \        ,          R\        \        ,          /# )r.   rf  rÃ   .Úkwargs_iterabler0   )	r   rg  rf  rh  ri  r	   r   r^  r[   )r2   s   "r*   r3   r3   R  sn   € ÷ Sñ SÜ
”×$Ñ$×)Ñ)¬<×+<Ñ+<×+AÑ+AÐAÕ
BðSä
�3œ¤�Ð#Õ
$ðSô œd•^ð	Sô
 Œa…[ñSr,   c             #   ó  "  € \        V 4      pR pV P                  P                  4       ;_uu_ 4       pVP                  4       pV Uu. uF  qpP	                  \
        WaV34      NK  	  pp   VP                  ! RR7      x € \        V 4      V8w  g   K)  Rp\        R4      hu upi   \         dW    \        ;QJ d    R T 4       F  '       d   K   R M	  RM! R T 4       4      '       d   TP                  ! 4       '       d    M L„i ; iT'       g'   T U	u. uF  q™P                  RR7      NK  	  Mu up	i  p	M4  T'       g(   T U	u. uF  q™P                  RR7      NK  	  Mu up	i  p	i i ; iRRR4       R#   + '       g   i     R# ; i5i)FTgš™™™™™©?)Útimeoutc              3   ó@   "  € T F  qP                  4       x € K  	  R # 5irl   )Úready)rv   Úasync_results   & r*   ry   Ú%iflatmap_unordered.<locals>.<genexpr>d  s   é € ÐRÁM°L×-Ñ-×/Ð/ÃMùr  zkOne of the subprocesses has abruptly died during map operation.To debug the error, disable multiprocessing.N)rm  Ú_ctxÚManagerra  Úapply_asyncrd  r€   r   r  ÚemptyÚRuntimeError)
rf  rÃ   ro  Úinitial_pool_pidÚpool_changedÚmanagerr`  rå   Úasync_resultsrt  s
   &&$       r*   Úiflatmap_unorderedr  R  sP  é € ô % TÓ*ÐØ€LØ	�‰×	Ñ	×	Ô	 Ø—‘“ˆá]ló
Ù]lÐSY×ÑÔ6¸ÀfÐ8MÖNÑ]lð 	ð 
ð	SØðØŸ)š)¨DÔ1Ò1ô ! Ó&Ð*:Ö:Ø#'�Lä&ðGóð ùò
øô ô ß“sÑRÁMÓR—s—s’sÑRÁMÓR×RÒRÐW\×WbÒWb×WdÒWdÙùðú÷  áDQÓRÁM°L×!Ñ!¨$Ð!Ö/ÂMùÔRù÷  áDQÓRÁM°L×!Ñ!¨$Ð!Ö/ÂMùÕRð  ú÷) 
×	×	Ò	üsš   ‚0F
²E6Á B Á'E6Á*D8Á,B%ÂD8ÂD8Â E6Â%DÂ;DÃDÃ*DÄD8ÄDÄD8Ä	E6ÄD0Ä/	E6Ä8E)ÅE Å
E)Å)E6Å,
F
Å6F	Æ	F
ÚTc                ó~   € V ^8„  d   QhR\         \        ,          R\        R\         \        \        ,          ,          /# )r.   rÌ   Únr0   )r   r€  r$   r`   )r2   s   "r*   r3   r3   v  s.   € ÷ 
ñ 
œ8¤A�;ð 
¬3ð 
´8¼DÄ½GÕ3Dñ 
r,   c              #   ó¼   "  € V^8  d   \        RV 24      h. pV  F,  pVP                  V4       \        V4      V8X  g   K&  Vx € . pK.  	  V'       d   Vx € R# R# 5i)é   zInvalid batch size N)rF   r8  rÐ   )rÌ   r‚  r$  rI  s   &&  r*   r  r  v  s^   é € Øˆ1„uÜÐ.¨q¨cÐ2Ó3Ð3Ø€EÛˆØ�‰�TÔÜˆu‹:˜Ž?ØŠKØŠEñ	 ÷
 ØŒñ ùs   ‚;AÁAÁA)FF)FTFFNr.   FrB   NTN)rK   )Qr÷   r„   Ú	functoolsr×   Úmultiprocessing.poolrg  rM  r`  r]   r  r<  Úcollections.abcr   Ú
contextlibr   Údataclassesr   r   r   Úshutilr   Útypingr   r	   r
   r   r   ri  Úmultiprocess.poolÚnumpyr•   Ú	tqdm.autor   r  r   Úparallelr   r   r  Ú_dillr   r   r   r   r   Útyping_extensionsÚ_typing_extensionsr   ÚImportErrorÚ
get_loggerró   ÚloggerÚ	lru_cacheÚmemoizer+   rH   rX   ri   rŠ   r�   r»   rÀ   rÆ   rÎ   rÑ   rÚ   r[   rÜ   Úpropertyrý   r  r:  rB  rU  r]  r^  rd  rm  r  r€  r  ru   r,   r*   Ú<module>r™     so  ðñ  .ã Û Û Û Û 	Û Û 	Û Û Ý $Ý %ß ,Ý Ý ß :Õ :ã Û Û Ý å Ý #Ý Ý ÷ó ð0Ýã2Ý)ð
 
×	Ò	˜HÓ	%€ð ×
Ñ
€ò)õ0)sòXõ&òD$ðN ñ%ó ð%ð ö2,ó ð2,òjòòòò0ô%�Tô %ô82�Hô 2ò)(÷XF$÷Rñ ô%òñ ˆCƒL€õõ'õSñB ˆCƒL€÷
øð} ô 0Ø+/Ð/ÐÐ/˜¢5ð0ús   ÂE ÅE ÅE 