+
    QV-j¢U  ã                   óæ  a € R$ t50 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HtHtHt ^ RIt^ RIt^RIHt ^RIHt ^RIHt ^RIHt ]'       d   ^R	IHt ]! ]4      tR
s Rs!] ^ k Rs"] ^k  ! R R4      t#R t$R t%R t&R t'R R lt(R R lt) ! R R4      t*]PV                  ! 4       t,/ s-] ^k R R lt.R%R R llt/R t0R%R R llt1R&R R llt2R'R  R! llt3R(R" R# llt4R# ))é    N)Úwraps)ÚPath)ÚTYPE_CHECKINGÚAnyÚCallableÚOptionalÚUnion)Úconfig)Ú"INVALID_WINDOWS_CHARACTERS_IN_PATH)Údumps)Ú
get_logger)ÚDatasetTc                   ó6   a € ] tR t^-t o RtR tR tR tRtV t	R# )Ú_TempCacheDirzº
A temporary directory for storing cached Arrow files with a cleanup that frees references to the Arrow files
before deleting the directory itself to avoid permission errors on Windows.
c                ó0  € \         P                  P                  R 4      ;'       gG    \         P                  P                  R4      ;'       g     \         P                  P                  R4      pV'       d«   \         P                  P	                  V4      p\         P                  P                  V4      '       g3    \         P                  ! VRR7       \        P                  RV 24       M4\         P                  P                  V4      '       g   \        RV R
24      h\        P                  ! \        P                  VR7      V n        \         P"                  ! W P$                  4      V n        R	#   \         d   p\        RT RT R24      ThR	p?ii ; i)ÚTMPDIRÚTEMPÚTMPT)Úexist_okzCreated TMPDIR directory: zTMPDIR is set to 'z=' but the directory does not exist and could not be created: z\. Please create it manually or unset TMPDIR to fall back to the default temporary directory.Nz…' but it is not a directory. Please point TMPDIR to a writable directory or unset it to fall back to the default temporary directory.)ÚprefixÚdir)ÚosÚenvironÚgetÚpathÚnormpathÚexistsÚmakedirsÚloggerÚinfoÚOSErrorÚisdirÚtempfileÚmkdtempr
   ÚTEMP_CACHE_DIR_PREFIXÚnameÚweakrefÚfinalizeÚ_cleanupÚ
_finalizer)ÚselfÚtmpdirÚes   &  Úe/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/datasets/fingerprint.pyÚ__init__Ú_TempCacheDir.__init__3   s8  € ä—‘—‘ Ó)×\Ð\¬R¯Z©Z¯^©^¸FÓ-C×\Ð\ÄrÇzÁzÇ~Á~ÐV[ÓG\ˆçÜ—W‘W×%Ñ% fÓ-ˆFÜ—7‘7—>‘> &×)Ò)ðÜ—K’K °Õ6Ü—K‘KÐ"<¸V¸HÐ EÕFô —W‘W—]‘] 6×*Ò*ÜØ(¨¨ð 1ð óð ô ×$Ò$¬F×,HÑ,HÈfÔUˆŒ	Ü!×*Ò*¨4·±Ó?ˆŽøô! ô Ü!Ø,¨V¨HÐ4qÐrsÐqtð uuð uóð ðûðús   Â;0E2 Å2FÅ=FÆFc                óF  € \        4        F  pVP                  4        K  	  \        P                  P	                  V P
                  4      '       d$    \        P                  ! V P
                  4       R# R#   \         d    p\        R T P
                   R24      ThRp?ii ; i)zCAn error occurred while trying to delete temporary cache directory z. Please delete it manually.N)
Ú(get_datasets_with_cache_file_in_temp_dirÚ__del__r   r   r   r&   ÚshutilÚrmtreeÚ	Exceptionr!   )r+   Údsetr-   s   &  r.   r)   Ú_TempCacheDir._cleanupQ   s‡   € Ü<Ö>ˆDØ�L‰LŽNñ ?ä�7‰7�>‰>˜$Ÿ)™)×$Ò$ðÜ—’˜dŸi™iÖ(ñ %øô ô ÜØYÐZ^×ZcÑZcÐYdð  eAð  Bóàðûðús   Á A6 Á6B ÂBÂB c                ój   € V P                   P                  4       '       d   V P                  4        R # R # ©N)r*   Údetachr)   ©r+   s   &r.   ÚcleanupÚ_TempCacheDir.cleanup\   s#   € Ø�?‰?×!Ñ!×#Ò#Ø�M‰MŽOñ $ó    )r*   r&   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r/   r)   r=   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r.   r   r   -   s   ø‡ € ñò
@ò<	÷ð r?   r   c                ó  € \         f   R# \        f   \        P                  ! 4       s\        ;QJ d&    R V P
                   4       F  '       g   K   RM	  RM! R V P
                   4       4      '       d   \        P                  V 4       R# R# )a  
This function registers the datasets that have cache files in _TEMP_DIR_FOR_TEMP_CACHE_FILES in order
to properly delete them before deleting the temporary directory.
The temporary directory _TEMP_DIR_FOR_TEMP_CACHE_FILES is used when caching is disabled.
Nc              3   óŽ   "  € T F;  p\        \        P                  4      \        VR ,          4      P                  9   x € K=  	  R# 5i)ÚfilenameN)r   Ú_TEMP_DIR_FOR_TEMP_CACHE_FILESr&   Úparents)Ú.0Ú
cache_files   & r.   Ú	<genexpr>Ú?maybe_register_dataset_for_temp_dir_deletion.<locals>.<genexpr>m   s8   é € ð á-ˆJô 	Ô+×0Ñ0Ó1´T¸*ÀZÕ:PÓ5Q×5YÑ5YÖYÛ-ùs   ‚AATF)rL   Ú _DATASETS_WITH_TABLE_IN_TEMP_DIRr'   ÚWeakSetÚanyÚcache_filesÚadd)Údatasets   &r.   Ú,maybe_register_dataset_for_temp_dir_deletionrX   a   sr   € ô &Ò-Ùô (Ò/Ü+2¯?ª?Ó+<Ð(ß
ƒsñ à!×-Ò-ó‡s‡s‚sñ à!×-Ò-ó÷ ò ô 	)×,Ñ,¨WÖ5ñ	r?   c                  ó4   € \         e   \        \         4      # . # r:   )rR   Úlist© r?   r.   r2   r2   t   s   € Ü5UÒ5aŒ4Ô0Ó1ÐiÐgiÐir?   c                 ó
   € Rs R# )á¸  
When applying transforms on a dataset, the data are stored in cache files.
The caching mechanism allows to reload an existing cache file if it's already been computed.

Reloading a dataset is possible since the cache files are named using the dataset fingerprint, which is updated
after each transform.

If disabled, the library will no longer reload cached datasets files when applying transforms to the datasets.
More precisely, if the caching is disabled:
- cache files are always recreated
- cache files are written to a temporary directory that is deleted when session closes
- cache files are named using a random hash instead of the dataset fingerprint
- use [`~datasets.Dataset.save_to_disk`] to save a transformed dataset or it will be deleted when session closes
- caching doesn't affect [`~datasets.load_dataset`]. If you want to regenerate a dataset from scratch you should use
the `download_mode` parameter in [`~datasets.load_dataset`].
TN©Ú_CACHING_ENABLEDr[   r?   r.   Úenable_cachingr`   x   s
   € ð$ Òr?   c                 ó
   € Rs R# )r]   FNr^   r[   r?   r.   Údisable_cachingrb   �   s
   € ð$ Òr?   c                ó$   € V ^8„  d   QhR\         /# ©é   Úreturn)Úbool)Úformats   "r.   Ú__annotate__ri   ¢   s   € ÷ "ñ "œDñ "r?   c                 ó    € \        \        4      # )a¹  
When applying transforms on a dataset, the data are stored in cache files.
The caching mechanism allows to reload an existing cache file if it's already been computed.

Reloading a dataset is possible since the cache files are named using the dataset fingerprint, which is updated
after each transform.

If disabled, the library will no longer reload cached datasets files when applying transforms to the datasets.
More precisely, if the caching is disabled:
- cache files are always recreated
- cache files are written to a temporary directory that is deleted when session closes
- cache files are named using a random hash instead of the dataset fingerprint
- use [`~datasets.Dataset.save_to_disk`]] to save a transformed dataset or it will be deleted when session closes
- caching doesn't affect [`~datasets.load_dataset`]. If you want to regenerate a dataset from scratch you should use
the `download_mode` parameter in [`~datasets.load_dataset`].
)rg   r_   r[   r?   r.   Úis_caching_enabledrk   ¢   s   € ô$ Ô Ó!Ð!r?   c                ó$   € V ^8„  d   QhR\         /# rd   ©Ústr)rh   s   "r.   ri   ri   ·   s   € ÷ /ñ /¬Sñ /r?   c                 óF   € \         f   \        4       s \         P                  # )z7Return a directory that is deleted when session closes.)rL   r   r&   r[   r?   r.   Ú#get_temporary_cache_files_directoryrp   ·   s   € ô &Ò-Ü)6«Ð&Ü)×.Ñ.Ð.r?   c                   ó–   a € ] tR t^Ät o Rt/ tR t]V 3R lR l4       t]V 3R lR l4       t	V 3R lR lt
V 3R	 lR
 ltV 3R ltRtV tR# )ÚHasherz-Hasher that accepts python objects as inputs.c                ó:   € \         P                  ! 4       V n        R # r:   )ÚxxhashÚxxh64Úmr<   s   &r.   r/   ÚHasher.__init__É   s   € Ü—’“ˆŽr?   c                óL   <€ V ^8„  d   QhRS[ S[S[S[,          3,          RS[/# ©re   Úvaluerf   )r	   ÚbytesrZ   rn   )rh   rH   s   "€r.   ri   ÚHasher.__annotate__Í   s)   ø€ ÷ ñ ™u¡U©D±­KÐ%7Õ8ð ¹Sñ r?   c                ó¶   € \        V\        4      '       d   V.MTp\        P                  ! 4       pV F  pVP	                  V4       K  	  VP                  4       # r:   )Ú
isinstancer{   rt   ru   ÚupdateÚ	hexdigest)Úclsrz   rv   Úxs   &&  r.   Ú
hash_bytesÚHasher.hash_bytesÌ   sC   € ä% e¬U×3Ò3�‘¸ˆÜ�LŠL‹NˆÛˆAØ�H‰H�QŽKñ à�{‰{‹}Ðr?   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ry   )r   rn   )rh   rH   s   "€r.   ri   r|   Õ   s   ø€ ÷ ,ñ ,™ð ,¡ñ ,r?   c                ó6   € V P                  \        V4      4      # r:   )rƒ   r   )r�   rz   s   &&r.   ÚhashÚHasher.hashÔ   s   € à�~‰~œe E›lÓ+Ð+r?   c                ó$   <€ V ^8„  d   QhRS[ RR/# )re   rz   rf   N)r   )rh   rH   s   "€r.   ri   r|   Ø   s   ø€ ÷ 8ñ 8™Cð 8 Dñ 8r?   c                óî   € R \        V4       R 2pV P                  V4      pV P                  P                  VP	                  R4      4       V P                  P                  VP	                  R4      4       R# )z==Úutf8zutf-8N)Útyper‡   rv   r   Úencode)r+   rz   Úheader_for_updateÚvalue_for_updates   &&  r.   r   ÚHasher.updateØ   s\   € Ø ¤ e£ ¨RÐ0ÐØŸ9™9 UÓ+ÐØ�‰�‰Ð'×.Ñ.¨vÓ6Ô7Ø�‰�‰Ð&×-Ñ-¨gÓ6Ö7r?   c                ó    <€ V ^8„  d   QhRS[ /# rd   rm   )rh   rH   s   "€r.   ri   r|   Þ   s   ø€ ÷ "ñ "™3ñ "r?   c                ó6   € V P                   P                  4       # r:   )rv   r€   r<   s   &r.   r€   ÚHasher.hexdigestÞ   s   € Ø�v‰v×ÑÓ!Ð!r?   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )re   Údispatch)Údict)rh   rH   s   "€r.   ri   r|   Ä   s   ø‡ ‚ ñ Ñò r?   )rv   N)r@   rA   rB   rC   rD   r•   r/   Úclassmethodrƒ   r‡   r   r€   Ú__annotate_func__rE   rF   rG   s   @r.   rr   rr   Ä   sU   ø‡ € Ù7à€Hò ð ÷ó ðð ÷,ó ð,÷8ð 8÷"ð "÷5 ƒ r?   rr   c                ó(   € V ^8„  d   QhRRR\         /# )re   rW   r   rf   rm   )rh   s   "r.   ri   ri   ë   s   € ÷ ñ  )ð ´ñ r?   c                 ód  € V P                   p\        4       p\        V4       F4  pVR 8X  d   K  VP                  V4       VP                  W,          4       K6  	  V P                   F8  pVP                  \
        P                  P                  VR,          4      4       K:  	  VP                  4       # )Ú_fingerprintrK   )	Ú__dict__rr   Úsortedr   rU   r   r   Úgetmtimer€   )rW   ÚstateÚhasherÚkeyrO   s   &    r.   Úgenerate_fingerprintr¢   ë   sˆ   € Ø×Ñ€EÜ‹X€FÜ�eŽ}ˆØ�.Ô ÙØ�‰�cÔØ�‰�e•jÖ!ñ	 ð ×)Ô)ˆ
Ø�‰”b—g‘g×&Ñ& z°*Õ'=Ó>Ö?ñ *à×ÑÓÐr?   c                ó0   € V ^8„  d   QhR\         R\        /# )re   Únbitsrf   )Úintrn   )rh   s   "r.   ri   ri   ù   s   € ÷ Bñ B¤sð B´Cñ Br?   c                 óF   € \         P                  V 4      R V ^,           R2 # )Ú0r‚   )Úfingerprint_rngÚgetrandbits)r¤   s   &r.   Úgenerate_random_fingerprintrª   ù   s$   € Ü×)Ñ)¨%Ó0°°5¸Aµ:°,¸a°Ð@ÐAr?   c                 óz  € \        4       pVP                  V 4        VP                  V4       \        T4       F,  pTP                  T4        TP                  Y$,          4       K.  	  TP                  4       #    \        '       dZ   \        P	                  R R4      '       g$   \
        P                  RT R24       R\        R &   M3\
        P                  RT R24       M\
        P                  RT R24       \        4       u # ; i   \        '       dr   \        P	                  R R4      '       g0   \
        P                  RT RY$,           R	T R24       R\        R &   MK\
        P                  RT RY$,           R	T R24       M%\
        P                  RT RY$,           R	T R24       \        4       u u # ; i)
Ú(update_fingerprint_transform_hash_failedFz
Transform a’   couldn't be hashed properly, a random hash was used instead. Make sure your transforms and parameters are serializable with pickle or dill for the dataset fingerprinting and caching to work. If you reuse this transform, the caching mechanism will consider it to be different from the previous calls and recompute everything. This warning is only shown once. Subsequent hashing failures won't be shown.Tz= couldn't be hashed properly, a random hash was used instead.zn couldn't be hashed properly, a random hash was used instead. This doesn't affect caching since it's disabled.zParameter 'z'=z of the transform )rr   r   r_   Úfingerprint_warningsr   r   Úwarningr    rª   r�   r€   )ÚfingerprintÚ	transformÚtransform_argsr    r¡   s   &&&  r.   Úupdate_fingerprintr²   ý   sÐ  € ä‹X€FØ
‡M�M�+Ôð-Ø�‰�iÔ ô& �nÖ%ˆØ�‰�cÔð	1Ø�M‰M˜.Õ-Ö.ñ &ð. ×ÑÓÐøðS-ßÓÜ'×+Ñ+Ð,VÐX]×^Ò^Ü—‘Ø   ð ,cð côð TXÔ$Ð%OÒPä—‘˜j¨¨Ð3pÐqÕrä�K‰KØ˜Y˜Kð  (Vð  Wôô +Ó,Ò,ûð
	1ßÓÜ+×/Ñ/Ð0ZÐ\a×bÒbÜ—N‘NØ% c U¨"¨^Õ-@Ð,AÐASÐT]ÐS^ð _gð gôð X\Ô(Ð)SÒTä—K‘KØ% c U¨"¨^Õ-@Ð,AÐASÐT]ÐS^ð  _\ð  ]õô —‘Ø! #  b¨Õ)<Ð(=Ð=OÐPYÈ{ð  [Ið  Jôô /Ó0Ô0ús%   �A9 ÁDÁ9)DÂ#A DÄ)F:Ä2BF:c                ó$   € V ^8„  d   QhR\         /# )re   r¯   rm   )rh   s   "r.   ri   ri   /  s   € ÷ 
ñ 
¤cñ 
r?   c           
     ó  € \        V \        4      '       d	   V '       g   \        RV  R24      h\         F  pW 9   g   K  \        R\         RV  R24      h	  \	        V 4      V8”  d   \        RV RV  R\	        V 4       R	24      hR
# )z«
Make sure the fingerprint is a non-empty string that is not longer that max_length=64 by default,
so that the fingerprint can be used to name cache files without issues.
zInvalid fingerprint 'z#': it should be a non-empty string.z5Invalid fingerprint. Bad characters from black list 'z' found in 'z6'. They could create issues when creating cache files.z&Invalid fingerprint. Maximum lenth is z but 'z' has length z2.It could create issues when creating cache files.N)r~   rn   Ú
ValueErrorr   Úlen)r¯   Ú
max_lengthÚinvalid_chars   && r.   Úvalidate_fingerprintr¹   /  s·   € ô
 �k¤3×'Ò'¯{ÜÐ0°°Ð=`ÐaÓbÐbß:ˆØÖ&ÜØGÔHjÐGkÐkwð  yDð  xEð EFð Góð ñ ;ô ˆ;Ó˜*Ô$ÜØ4°Z°LÀÀ{ÀmÐS`ÔadÐepÓaqÐ`rð s@ð @ó
ð 	
ñ %r?   c                óR   € V ^8„  d   QhR\         R\        \        ,          R\        /# )re   ÚfuncÚversionrf   )r   r   rn   )rh   s   "r.   ri   ri   C  s&   € ÷ ñ ¬8ð ¼hÄs½mð ÔWZñ r?   c                ó\   € V P                    RV P                   2pVe   VRV 2,          pV# )zO
Format a transform to the format that will be used to update the fingerprint.
Ú.Ú@)rA   rB   )r»   r¼   r°   s   && r.   Ú format_transform_for_fingerprintrÀ   C  s<   € ð —?‘?Ð# 1 T×%6Ñ%6Ð$7Ð8€IØÒØ�q˜˜	�]Õ"ˆ	ØÐr?   c                ó  € V ^8„  d   QhR\         R\        R\        \        \        3,          R\
        \        \        ,          ,          R\
        \        \        ,          ,          R\        R\        \        \        3,          /# )re   r»   ÚargsÚkwargsÚ
use_kwargsÚignore_kwargsÚrandomized_functionrf   )r   Útupler–   rn   r   r   rZ   rg   )rh   s   "r.   ri   ri   M  sp   € ÷ *"ñ *"Ü
ð*"ä
ð*"ô ””c��Nð*"ô œœc�Õ#ð	*"ô
 œD¤�IÕ&ð*"ô ð*"ô 
Œ#Œsˆ(…^ñ*"r?   c                ó  € VP                  4       pV'       d‡   \        P                  ! V 4      P                  P	                  4        Uu. uF!  qwVP
                  8w  g   K  VP                  NK#  	  ppVR,          pVR,          pVP                  \        W�4      4       M3V\        \        \        P                  ! V 4      P                  4      4       V'       d,   VP                  4        U	U
u/ uF  w  ršW“9   g   K  WšbK  	  pp	p
V'       d,   VP                  4        U	U
u/ uF  w  ršW”9  g   K  WšbK  	  pp	p
V'       d�   VP                  R4      fn   VP                  R4      f[   \        P                  P                  4       vr¼rÛVR8  d	   WÍ,          MV^ ,          p\        P                  P!                  V4      VR&   \        P                  ! V 4      P                  P	                  4        Uu/ uF:  qwP"                  \        P$                  8w  g   K#  VP                  VP"                  bK<  	  ppVP                  4        F.  w  ppWö9   g   K  Wo,          V8X  g   K  VP'                  V4       K0  	  V# u upi u up
p	i u up
p	i u upi )z]
Format the kwargs of a transform to the format that will be used to update the fingerprint.
ºé   NNÚseedÚ	generatorip  )ÚcopyÚinspectÚ	signatureÚ
parametersÚvaluesÚVAR_KEYWORDr&   r   ÚzipÚnextÚiterÚitemsr   ÚnpÚrandomÚ	get_stateÚdefault_rngÚdefaultÚ_emptyÚpop)r»   rÂ   rÃ   rÄ   rÅ   rÆ   Úkwargs_for_fingerprintÚpÚparamsÚkÚvÚ_rË   ÚposÚdefault_valuesÚdefault_varnameÚdefault_values   &&&&&&           r.   Úformat_kwargs_for_fingerprintrè   M  s  € ð $Ÿ[™[›]ÐßÜ")×"3Ò"3°DÓ"9×"DÑ"D×"KÑ"KÔ"MÓdÑ"M˜QÐVW×VcÑVcÑQc”&�!—&”&Ñ"MˆÐdØ�B�xˆØ˜•ˆØ×%Ñ%¤c¨&Ó&7Õ8à"Ü””g×'Ò'¨Ó-×8Ñ8Ó9Ó:ð
÷ Ø3I×3OÑ3OÔ3QÔ!eÑ3Q©4¨1ÐUVÑUd¤$ !¢$Ñ3QÐÑ!eßØ3I×3OÑ3OÔ3QÔ!lÑ3Q©4¨1ÐUVÑUk¤$ !¢$Ñ3QÐÑ!lßØ!×%Ñ% fÓ-Ò5Ð:P×:TÑ:TÐU`Ó:aÒ:iÜ!Ÿy™y×2Ñ2Ó4ÐˆA�SØ # c¤	�4–9¨t°A­wˆDÜ24·)±)×2GÑ2GÈÓ2MÐ" ;Ñ/ô
 $+×#4Ò#4°TÓ#:×#EÑ#E×#LÑ#LÔ#NóÙ#N˜a×R[ÑR[Ô_f×_mÑ_mÑRmÔˆ�‰�—	‘	ÒÑ#Nð ð ð +9×*>Ñ*>Ö*@Ñ&ˆ˜ØÖ4Ð9OÕ9`ÐdqÖ9qØ"×&Ñ& Ö7ñ +Að "Ð!ùò; eùó "fùã!lùòs0   Á	I6Á I6Ã-
I;Ã<I;Ä 
JÄ/JÇ0 JÈJc                óú   € V ^8„  d   QhR\         R\        \        \        ,          ,          R\        \        \        ,          ,          R\        \        \        ,          ,          R\         R\        \        ,          /# )re   ÚinplacerÄ   rÅ   Úfingerprint_namesrÆ   r¼   )rg   r   rZ   rn   )rh   s   "r.   ri   ri   z  sk   € ÷ fñ fÜðfäœœc�Õ#ðfô œD¤�IÕ&ðfô  ¤¤S¥	Õ*ð	fô
 ðfô ”c�]ñfr?   c                ó4  a aaaaa€ Se.   \        S\        4      '       g   \        R\        S4       24      hSe.   \        S\        4      '       g   \        R\        S4       24      hS '       d   S'       d   \        R4      hSe   SMR.oVVV VVV3R lpV# )aJ  
Wrapper for dataset transforms to update the dataset fingerprint using ``update_fingerprint``
Args:
    inplace (:obj:`bool`):  If inplace is True, the fingerprint of the dataset is updated inplace.
        Otherwise, a parameter "new_fingerprint" is passed to the wrapped method that should take care of
        setting the fingerprint of the returned Dataset.
    use_kwargs (:obj:`List[str]`, optional): optional white list of argument names to take into account
        to update the fingerprint to the wrapped method that should take care of
        setting the fingerprint of the returned Dataset. By default all the arguments are used.
    ignore_kwargs (:obj:`List[str]`, optional): optional black list of argument names to take into account
        to update the fingerprint. Note that ignore_kwargs prevails on use_kwargs.
    fingerprint_names (:obj:`List[str]`, optional, defaults to ["new_fingerprint"]):
        If the dataset transforms is not inplace and returns a DatasetDict, then it can require
        several fingerprints (one per dataset in the DatasetDict). By specifying fingerprint_names,
        one fingerprint named after each element of fingerprint_names is going to be passed.
    randomized_function (:obj:`bool`, defaults to False): If the dataset transform is random and has
        optional parameters "seed" and "generator", then you can set randomized_function to True.
        This way, even if users set "seed" and "generator" to None, then the fingerprint is
        going to be randomly generated depending on numpy's current state. In this case, the
        generator is set to np.random.default_rng(np.random.get_state()[1][0]).
    version (:obj:`str`, optional): version of the transform. The version is taken into account when
        computing the fingerprint. If a datase transform changes (or at least if the output data
        that are cached changes), then one should increase the version. If the version stays the
        same, then old cached data could be reused that are not compatible with the new transform.
        It should be in the format "MAJOR.MINOR.PATCH".
z)use_kwargs is supposed to be a list, not z,ignore_kwargs is supposed to be a list, not z5fingerprint_names are only used when inplace is FalseÚnew_fingerprintc                 óÔ  <a a€ S'       gS   \         ;QJ d    V 3R  lS 4       F  '       d   K   RM	  RM! V 3R  lS 4       4      '       g   \        RS  RS R24      hS'       dU   RS P                  P                  9  d   \        RS  R24      hR	S P                  P                  9  d   \        R
S  R24      h\	        S SR7      o\        S 4      VV VVVVV3R l4       pRVn        V# )c              3   óT   <"  € T F  qSP                   P                  9   x € K  	  R # 5ir:   )Ú__code__Úco_varnames)rN   r&   r»   s   & €r.   rP   Ú>fingerprint_transform.<locals>._fingerprint.<locals>.<genexpr>©  s    øé € Ð"cÑQbÈ¨4¯=©=×+DÑ+DÖ#DÓQbùs   ƒ%(FTz	function z is missing parameters z in signaturerË   z'seed' must be in z's signaturerÌ   z'generator' must be in )r¼   c            	      óð  <€ \        SV VSS	SR 7      pV '       d   V ^ ,          pV R,          p MAVP                  \        \        \        P
                  ! S4      P                  4      4      4      pS
'       d   \        VP                  SV4      pMLS FF  pVP                  V4      f    WRR&   \        VP                  SV4      W&   K5  \        W,          4       KH  	  S! V.V O5/ VB pS
'       d   XVn        V# ))rÄ   rÅ   rÆ   rÉ   Úfingerprint_name)rè   rÝ   rÔ   rÕ   rÎ   rÏ   rÐ   r²   r›   r   r¹   )rÂ   rÃ   rÞ   rW   rí   rô   Úoutrë   r»   rÅ   rê   rÆ   r°   rÄ   s   *,     €€€€€€€r.   ÚwrapperÚ<fingerprint_transform.<locals>._fingerprint.<locals>.wrapper´  sî   ø€ ä%BØØØØ%Ø+Ø$7ô&Ð"÷ Ø#'¨¥7�Ø˜B•x‘à#)§:¡:¬d´4¼×8IÒ8IÈ$Ó8O×8ZÑ8ZÓ3[Ó.\Ó#]�÷ Ü"4°W×5IÑ5IÈ9ÐVlÓ"m‘ã(9Ð$Ø—z‘zÐ"2Ó3Ò;ØEUÐ/AÑBÜ3EØ#×0Ñ0°)Ð=Só4˜Ó0ô -¨VÕ-EÖFñ ):ñ �wÐ0 Ò0¨Ñ0ˆC÷ Ø'6�Ô$àˆJr?   r¯   )Úallrµ   rð   rñ   rÀ   r   Ú_decorator_name_)	r»   rö   r°   rë   rÅ   rê   rÆ   rÄ   r¼   s	   f @€€€€€€r.   r›   Ú+fingerprint_transform.<locals>._fingerprint¨  sÎ   ú€ ßŸs›sÔ"cÑQbÓ"cŸsŸsšsÔ"cÑQbÓ"c×cÒcÜ˜y¨¨Ð.EÐFWÐEXÐXeÐfÓgÐgçØ˜TŸ]™]×6Ñ6Ô6Ü Ð#5°d°V¸<Ð!HÓIÐIØ $§-¡-×";Ñ";Ô;Ü Ð#:¸4¸&ÀÐ!MÓNÐNä4°TÀ7ÔKˆ	ä	ˆt‹÷&	ò &	ó 
ð&	ðP $1ˆÔ Øˆr?   )r~   rZ   rµ   rŒ   )rê   rÄ   rÅ   rë   rÆ   r¼   r›   s   ffffff r.   Úfingerprint_transformrû   z  s“   ý€ ðF Ò¤j°¼T×&BÒ&BÜÐDÄTÈ*ÓEUÐDVÐWÓXÐXàÒ ¬°MÄ4×)HÒ)HÜÐGÌÈZÓHXÐGYÐZÓ[Ð[ç×$ÜÐPÓQÐQà->Ò-JÑ)ÐQbÐPcÐ÷6ò 6ðp Ðr?   c                óê   € V ^8„  d   Qh/ ^ \         9   d   \        R,          ;R&   ^\         9   d   \        \        P                  ,          ;R&   ^\         9   d   \        \
        \        3,          ;R&   # )re   r   rL   rR   r­   )Ú__conditional_annotations__r   r'   rS   r–   rn   rg   )rh   s   "r.   ri   ri      sZ   € ‡�÷P AÒ @¤¨Õ 9Ñ @ñQ ÷R CÒ B¤(¬7¯?©?Õ";Ñ BñS ÷N +Ò *”dœ3¤˜9•oÑ *òO r?   )é@   r:   )NNF)NNNFN)6rý   rÎ   r   rØ   r4   r#   r'   Ú	functoolsr   Úpathlibr   Útypingr   r   r   r   r	   Únumpyr×   rt   Ú r
   Únamingr   Úutils._dillr   Úutils.loggingr   Úarrow_datasetr   r@   r   r_   rL   rR   r   rX   r2   r`   rb   rk   rp   rr   ÚRandomr¨   r­   r¢   rª   r²   r¹   rÀ   rè   rû   ri   )rý   s   @r.   Ú<module>r	     sÞ   øðß €Û 	Û Û Û Û Ý Ý ß @Õ @ã Û å Ý 6Ý Ý %÷ Ý&ñ 
�HÓ	€ð  Ð Ø<@Ð Ó @Ø>BÐ  Ó B÷1ñ 1òh6ò&jòò*õ*"õ*/÷"ñ "ðD —-’-“/€à(*Ð Ó *õ÷Bò/÷d
÷(÷*"÷Zfñ fr?   