
    6pj@                        % S r SSKrSSKrSSKrSSK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JrJrJr  SSKJr  SSKrSSKJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&Jr'J(r(   SSKJr)  SS	K+J,r,  SS
K-J.r.  SSK/J0r0J1r1  SSK2J3r3J4r4  SSK5J6r6J7r7J8r8J9r9J:r:  SSK;J<r<J=r=  SSK>J?r?  SSK@JArAJBrBJCrC  SSKDJErE  SSKFJGrG  SSKHJIrI  SSKJJKrK  SSKLJMrN  SSKLJOrOJPrPJQrQ  SSKRJSrS  SSKTJUrU  SSKVJWrW  SSKXJYrY  SSKZJ[r[  SSK\J]r]J^r^  SSK_J`r`  SSKaJbrb  SSKcJdrd  SS KeJfrfJgrgJhrh  SS!KiJjrjJkrkJlrlJmrmJnrnJoroJprp   SS"K5JqrrJsrt  \d" 5       ru\S$   rv\)b  \)O\'rwS%\
4S& jrxS'\yS(\S)\y4S* jrzSSS+SSS,.S-\yS.\\y   S/\\{   S0\|S1\\\|\y4      S2\\\v      S)\N4S3 jjr}0 r~\\\\\P\Q4      4   \S4'   S-\yS.\yS5\yS6\|S)\\\\P\Q4         4
S7 jr SJS8S+SSSS9.S-\yS5\\y   S6\|S2\|S.\\y   S:\\y   S1\\\|\y4      S)\\\P\Q4      4S; jjjrS+SSSS<.S-\yS=\\\y   \y4   S2\|S.\\y   S:\\y   S1\\\|\y4      S)\\\P\Q4      4S> jjrSqSqSSS?.S@ jrSKSA jr " SB SC5      rSD rSE rSF r " SG SH5      r\GR                  SI 5       rg! \* a    Sr) GNf = f! \* a    SS#K5JrrrJtrt   GNUf = f)Lu  ModelScope dataset loading orchestration.

This module provides :class:`DatasetsWrapperHF` and the
:func:`load_dataset_with_ctx` context manager that monkey-patch the
HuggingFace ``datasets`` library to work with the ModelScope Hub.

Sub-modules:
    _compat           – backward-compat shims for datasets>=4.0 script loading
    _module_factories – dataset module factory functions & data-file resolution
    N)fields)Path)
AnyDictIterableListLiteralMappingOptionalSequenceTupleUnion)	urlencode)DatasetDatasetBuilderDatasetDictDownloadConfigDownloadManagerDownloadModeFeaturesIterableDatasetIterableDatasetDictSplitVerificationModeVersionconfig
data_files	LargeListr   	SplitDict)r   )features)_FEATURE_TYPES)DataFilesDictEmptyDatasetError)DataFilesNotFoundErrorDatasetNotFoundError)CachedDatasetModuleFactoryDatasetModule(HubDatasetModuleFactoryWithParquetExportPackagedDatasetModuleFactoryget_dataset_builder_class)_EXTENSION_TO_MODULE_PACKAGED_DATASETS_MODULES)
file_utils)!_raise_if_offline_mode_is_enabledcached_pathrelative_to_absolute_path)is_small_dataset)tracked_str)
hf_hub_url)OfflineModeIsEnabled)DatasetInfo)HfApiRepoFile
RepoFolder)HfFileSystem)HubApi)get_endpoint)get_from_cache_ms)MS_DATASETS_CACHE)DEFAULT_DATASET_REVISIONREPO_TYPE_DATASET)has_attr_in_class)is_relative_path)
get_logger)_HAS_SCRIPT_LOADING!HubDatasetModuleFactoryWithScript#LocalDatasetModuleFactoryWithScript)_resolve_pattern_download_repo_fileget_module_without_scriptget_module_with_script_compat_local_script_module_compat_hub_script_module_get_hub_api)HubDatasetModuleFactoryLocalDatasetModuleFactory)$HubDatasetModuleFactoryWithoutScript&LocalDatasetModuleFactoryWithoutScript)authorcardDatacitation	createdAtdisableddescription	downloadsdownloadsAllTimegatedlastModifiedlikespaperswithcode_idprivatesiblingsshatagsobjc           
      L   [        U [        5      (       a  U  Vs/ s H  n[        U5      PM     sn$ SU ;  d  [        U S   [        5      (       a/  U R	                  5        VVs0 s H  u  p!U[        U5      _M     snn$ [        U 5      n U R                  S5      nUS:X  a6  U R                  S5      nU R                  SS5      n[        [        U5      US9$ [        R                  " US5      =(       d    [        5       R                  US5      nUc-  [        SU S	[        [        R                  " 5       5       35      eU[        :X  a&  U R                  S5      n[        [        U5      40 U D6$ [        bD  U[        L d  [        U[        5      (       a&  U R                  S5      n[        [        U5      40 U D6$ [        U5       Vs1 s H  owR                   iM     nnU" S
0 U R	                  5        V	V
s0 s H  u  pX;   d  M  X_M     sn
n	D6$ s  snf s  snnf s  snf s  sn
n	f )a  Regenerate the nested feature object from a deserialized dict.

This is a ModelScope-patched version of ``features.generate_from_dict``
that handles backward compatibility for legacy ``Sequence`` types in
datasets 4.0+ where ``Sequence`` is no longer a registered feature type.
_typer   featurelength)rd   re   NzFeature type 'z&' not found. Available feature types:  )
isinstancelistgenerate_from_dict_msdictitemspopget
SequenceHfr!   globals
ValueErrorkeysr   _NativeList
issubclassr   name)ra   valuekeyrc   rd   re   
class_typeffield_nameskvs              h/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/modelscope/msdatasets/utils/hf_datasets_util.pyrj   rj      s    #t:=>#%e,#>>cZGd;;DGIIKPKjc*511KPP
s)CGGGE
'')$2&"7"@PP##E40NGIMM%4NJ>%0VW[\j\o\o\qWrVstuuY'')$.w7?3??J+$=JXcAdAd'')$09ASAA#)*#56#5a66#5K6K#))+J+$!9I+JKK1 ?P* 7Js   H#HH5H H url_or_filenamedownload_configreturnc                    [        U5      nUR                  S5      (       a  U[        S5      S nS H)  nUR                  U5      (       d  M  U[        U5      S n  O   SU;   aA  UR                  S5      nX5S-   S nUR	                  S5      nUS:X  a  UnSn	O;USU nXgS-   S n	O.UR                  SS	5      n
[        n[        U
5      S	:  a  U
S	   OSn	[        S
XS.5      nU R                  U-   nO3[        U5      (       a#  [        n[        S
XS.5      nU R                  U-   n[        XS9n[        U5      nUR                  U5        U$ )zModelScope replacement for ``DownloadManager._download``.

Rewrites relative paths and ``hf://`` URLs to ModelScope API endpoints.
zhf://N)z	datasets/zmodels/@   /rf       SDK)SourceRevisionFilePath)r   )str
startswithlenindexfindsplitr>   r   
_base_pathrA   r/   r2   
set_origin)selfr~   r   hf_path_prefixat_idxafter_at	slash_idxrevision	file_pathparts
params_strouts                r}   _download_msr      sT   
 /*O!!'**!#g,-0/G!!'**!#g,-0 0 '>]]3'Fz{+H c*IB#	#JY/$]^4	MM#q)E/H$'JNaI%X]^
//J6	/	*	*+%Xcd
//J6
o
GC
c
CNN?#J    F)r   timeoutfiles_metadatatokenexpandrepo_idr   r   r   r   r   c                Z   U R                  USUSUU[        S9nUSU(       a  UR                  S5      S   OSUSSSSS/ / SS.n/ n	U HR  n
[        U
[        5      (       d  M  U	R                  [        U
R                  U
R                  U
R                  S95        MT     XS'   [        S	0 UD6$ )
z2ModelScope replacement for ``HfApi.dataset_info``.r   F)r   path_in_repor   	recursiver   r   	repo_typer   N)idr]   rQ   r_   rZ   rY   rU   rW   r[   r`   rR   rT   )	rfilenameblobIdsizer^   rg   )list_repo_treer?   r   rh   r7   appendrk   r   blob_idr   HfDatasetInfo)r   r   r   r   r   r   r   repo_info_iter	data_infodata_siblings	info_items              r}   _dataset_infor      s     ((# ) N +2'--$Q'I M#	i**  '11$,," $ *j%9%%r   _repo_tree_cacher   r   c                    XSS4n[         R                  U5      nUc  gU(       a  US:w  a  UR                  S5      OSn/ nU H  nUR                  n	U(       aM  U	R	                  US-   5      (       d  X:w  a  M6  U	R	                  US-   5      (       a  U	[        U5      S-   S OSn
OU	n
U(       d  SU
;   a  Mt  UR                  U5        M     U$ )z;Try to derive results from a cached recursive root listing.r   TNr   r   )r   rn   strippathr   r   r   )r   r   r   r   root_keyroot_cachedprefixresultsitem	item_pathrel_paths              r}   _derive_from_recursive_cacher     s     3-H"&&x0K(49L\$RTFGII	''55):M6?6J6J6TW<6X6XyVq!12^`H HSH_t  Nr   T)r   r   r   r   r   r   c             #   "  #    U=(       d    [         nU=(       d    SnXX4n	[        R                  U	5      n
U
b  U
 Sh  vN   g[        XX5      nUb  U[        U	'   U Sh  vN   g[	        5       nUR                  U[        S9nUR                  S5      u  pUR                  XUS9u  nn/ nSnSnSnUU::  a   UR                  UUUUUUUUS9nU(       d  OuU HR  nUS   S:X  a  SOSUS   US   US   S.nUS   S:X  a  [        S0 UD6O
[        S0 UD6nUR                  U5        Uv   MT     [!        U5      U:  a  OUS-  nUU::  a  M  U[        U	'   g GN N! [         a&  n[        R                  S	U S
U 35         SnAM:  SnAff = f7f)z4ModelScope replacement for ``HfApi.list_repo_tree``.r   Nr   r   dataset_name	namespaceendpointr   i  i'  )r   r   	root_pathr   page_number	page_sizer   dataset_hub_idzGet dataset: z file list failed, message: Typetree	directoryfiler   SizeSha256)typer   r   oidr   rg   )r>   r   rn   r   rL   get_endpoint_for_readr?   r   get_dataset_id_and_typeget_dataset_files	Exceptionloggererrorr7   r8   r   r   )r   r   r   r   r   r   r   r   normalized_path	cache_keycachedderivedapir   _owner_dataset_namer   _r   r   r   	max_pagesdataset_filesefile_info_d	path_infor   s                              r}   _list_repo_treer   '  s     33H")cOO?I!!),F*7oYG&-#
.C((#4 ) 6H $MM#.F33"x 4 INA 24GKII

"	11!)#'#!- 2 	M (K'26':f'D&#F+#F+"8,	I -6f,=,G8(i(ZMdZcMdDNN4 J ) }	)qA 
"D #*Yo 	 	6  	LL=	1MaSQR	sS   <FE"F!E"AF:E A;FFF
F&FFFF)r   r   r   r   pathsc          	         U=(       d    [         n[        U[        5      (       a  U/n[        U5      n[        R                  5        HT  u  pUS   U:w  d	  US   U:w  a  M  U	 V
s/ s H  oR                  U;   d  M  U
PM     nn
U(       a  Us  $ XUSS4:X  d  MR  / s  $    U R                  USUUUUS9nU V
s/ s H  oR                  U;   d  M  U
PM     sn
$ s  sn
f s  sn
f )z4ModelScope replacement for ``HfApi.get_paths_info``.r   r   r   TF)r   r   r   r   r   r   )r>   rh   r   setr   rl   r   r   )r   r   r   r   r   r   r   	paths_setr   cached_itemsr   matchedr   s                r}   _get_paths_infor   s  s     33H%E
I $4#9#9#;	Q<7"ilh&>$0KLDII4J4LKN(C66I $< (( ) N ,F^TyyI/ED^FF! L  Gs   $C;C7CCr   r   c                    [        U /UQ7XS.UD6  U(       av  [        U[        5      (       a`  [        U R                  S5      (       a  U R                  R
                  c  0 U R                  l        SU 3U R                  R
                  S'   ggg)aC  HfFileSystem.__init__ wrapper that injects ModelScope cookie auth.

ModelScope's /resolve/ endpoint authenticates via `m_session_id` cookie
rather than the `Authorization: Bearer` header used by HuggingFace Hub.
This wrapper ensures the cookie is included in all subsequent HTTP
requests made by the HfFileSystem instance.
r   headersNzm_session_id=Cookie)_hf_fs_init_originalrh   r   hasattr_apir   )r   r   r   argskwargss        r}   _hf_fs_init_with_cookier     sx     OOxOOE3''tyy),,		0A0A0I "DII(5eW&=		(# (ur   c                 F   US:X  Ga}  SU;  Gav   U R                  U5      nUR                  5       nU R                  U5      nSnX`R                  ;   aJ  U R                  U    H7  nUS   U:X  d  M  UR	                  S5      S:X  d  M%  UR	                  SS5      n  O   US:X  a  [        UR                  UR                  UR                  UR                  U R                  S	9n	U R                  R                  5       n
[        R                  " XS
SS9nUR                  S:X  ac  UR                   R	                  S5      nU(       aA  [#        U5      nXS'   U R                  R	                  U/ 5       H  nUS   U:X  d  M  XS'     O   ['        X4SU0UD6$ ! [$         a     Nf = f)a_  Wrapper for HfFileSystem._open that fixes size=0 from ModelScope API.

The ModelScope tree API may report Size=0 for files. When HfFileSystem
caches this, AbstractBufferedFile treats the file as empty (0 bytes).
This wrapper detects size=0 for files opened in read mode and resolves
the actual size via a HEAD request before creating the file object.
rbr   Nru   r   r   rf   r   )r   r   filenamer   r   T   )r   allow_redirectsr      zContent-Lengthmode)resolve_path	unresolve_parentdircachern   r3   r   r   r   r   r   r   _build_hf_headersrequestsheadstatus_coder   intr   _hf_fs_open_original)r   r   r   r   resolvedresolved_nameparentcached_sizeentryurlr   respclactual_sizes                 r}   _hf_fs_openr    s    t|f,	((.H$..0M\\-0FK&!]]62EV}5%))F:Kv:U&+ii&; 3 a $,,%..%22&00!]] ))557}}S4Y[\##s*))*:;B&)"g)4v%)]]%6%6vr%BE$V}=0;f % &C  @@@@  		s+   AF 0F C2F =F F 
F F c                   z    \ rS rSrSr\R                  rS rS r	S r
S rS rS r\S	 5       r\S
 5       rS rSrg)_DryRunDownloadManageri  a  Minimal download-manager stub for split discovery without I/O.

Returns placeholder paths for all download/extract calls, allowing
_split_generators() to execute and return SplitGenerator objects
(which carry split names) without triggering actual network or disk I/O.
c                 $    U R                  U5      $ N_mapr   url_or_urlss     r}   download_DryRunDownloadManager.download      yy%%r   c                 $    U R                  U5      $ r  r  r  s     r}   download_and_extract+_DryRunDownloadManager.download_and_extract  r  r   c                 $    U R                  U5      $ r  r  )r   path_or_pathss     r}   extract_DryRunDownloadManager.extract  s    yy''r   c                 $    U R                  U5      $ r  r  )r   r  custom_downloads      r}   download_custom&_DryRunDownloadManager.download_custom  r  r   c                     [        / 5      $ r  iter)r   r   s     r}   iter_archive#_DryRunDownloadManager.iter_archive      Bxr   c                     [        / 5      $ r  r+  )r   r   s     r}   
iter_files!_DryRunDownloadManager.iter_files  r/  r   c                     g r  rg   r   s    r}   
manual_dir!_DryRunDownloadManager.manual_dir  s    r   c                     g)NFrg   r4  s    r}   is_streaming#_DryRunDownloadManager.is_streaming  s    r   c                    ^  [        U[        5      (       a  U Vs0 s H  o"T R                  _M     sn$ [        U[        [        [
        45      (       a  [        U5      " U 4S jU 5       5      $ T R                  $ s  snf )Nc              3   <   >#    U  H  nTR                   v   M     g 7fr  )_PLACEHOLDER).0r   r   s     r}   	<genexpr>._DryRunDownloadManager._map.<locals>.<genexpr>  s     B6a 1 16s   )rh   rk   r<  ri   tupler   r   )r   input_r{   s   `  r}   r  _DryRunDownloadManager._map   sh    fd##289&Qt(((&99ftUC011<B6BBB    :s   A;rg   N)__name__
__module____qualname____firstlineno____doc__osdevnullr<  r  r   r$  r(  r-  r1  propertyr5  r8  r  __static_attributes__rg   r   r}   r  r    s]     ::L&&(&    !r   r  c                 4   [        U S5      (       d
  [        5       $  U R                  [        5       5      nU Vs1 s H  n[	        UR
                  5      iM     sn$ s  snf ! [         a,  n[        R                  SU 35        [        5       s SnA$ SnAff = f)aX  Discover available split names by dry-running _split_generators().

For script-based datasets that lack README split metadata, this calls
the builder's _split_generators() with a stub download manager to
extract split names without performing any actual downloads.

Returns:
    A set of split name strings, or an empty set if discovery fails.
_split_generatorsz(Failed to discover splits from builder: N)	r   r   rM  r  r   ru   r   r   debug)builder_instance
generatorssgr   s       r}   _discover_splits_from_builderrR    s~     #%899u%778N8PQ
'12zBGGz222 ?sCDus.   A! AA! A! !
B+!BBBc                 .   Uc  gSSK Jn  U" U5      nU(       d  g[        5       n[        U SS5      nUb4  UR                  (       a#  [        UR                  R                  5       5      nU(       dI  [        U SS5      n[        USS5      n[        U[        5      (       a  [        UR
                  " 5       5      nU(       d  [        U 5      nU(       d  [        R                  S5        gX4-
  nU(       a#  [        S[        U5       S	[        U5       35      eg)
a  Fail-fast check: raise ValueError before downloading if the
requested split does not exist in the dataset metadata.

Args:
    builder_instance: The DatasetBuilder instance with info/config.
    split: The user-requested split specification (may be None).

Raises:
    ValueError: If any requested split name is not found among
        the available splits declared in the dataset metadata.
Nr   _extract_split_namesinfor   r   z|Cannot determine available splits from dataset metadata; split validation skipped. Invalid splits will be caught downstream.zSplit z) not found in dataset. Available splits: )-modelscope.msdatasets.utils._module_factoriesrU  r   getattrsplitsrr   rh   rk   rR  r   rN  rq   sorted)	rO  r   rU  split_names	availablerV  r   r   missings	            r}   _validate_split_existsr^    s    }R&u-K I#VT2DDKK((*+	 )8T:V\48
j$''JOO-.I 12BC	R	
 	%GVG_% &!!'	!2 35
 	
 r   c                    Uc  g[        U SS5      nUb  UR                  c  gSSKJn  U" U5      nU(       d  g[	        UR                  R                  5       5      nXE:  a  gUR                  R                  5        VVs0 s H  u  pgXd;   d  M  Xg_M     nnnU(       d  g[        XR                  R                  S9Ul        gs  snnf )a  Align builder.info.splits with the actually requested split(s).

When data_files have been filtered to a subset of splits (see
_filter_data_files_by_split in _module_factories.py), the builder's
info.splits metadata may still list all original splits from the
README.  download_and_prepare() calls verify_splits() which would
then raise ExpectedMoreSplitsError.  This helper prunes info.splits
to only contain the splits that will actually be generated.
NrV  r   rT  r   )	rX  rY  rW  rU  r   rr   rl   r   r   )	rO  r   rV  rU  r[  existing_keysr{   r|   filtereds	            r}   %_align_builder_splits_with_data_filesrc  P  s     }#VT2D|t{{*R&u-K((*+M#!%!2!2!4I!48H!4HIH;;3K3KLDK	 Js   ?CCc            /          \ rS rSr\                    SS\S\\   S\\   S\\\\\   \	\\\\\   4   4   4      S\\\\
4      S\\   S	\\   S
\\   S\\\\4      S\\\\4      S\\   S\S\\\\4      S\\\\4      S\S\\   S\\   S\S\\   S\\\\\\4   4(S jj5       r\              SS\S\\   S\\   S\\\\\   \	\\\\\   4   4   4      S\\   S	\\   S
\\   S\\\\4      S\\\\4      S\\\\4      S\\   S\\   S\\\\
4      S\4S jj5       r\          SS\S\\\\4      S
\\   S\\\\4      S\\   S\\   S\\\\\\4      S\\   S\\   S\4S jj5       rSrg)DatasetsWrapperHFit  Nr   ru   data_dirr   r   	cache_dirr    r   download_modeverification_modekeep_in_memory
save_infosr   r   	streamingnum_procstorage_optionstrust_remote_codedataset_info_onlyr   c                 &
   US:w  a  [         R                  " S[        5        UnUS:w  a  [         R                  " S[        5        OS nUb  U(       d  [        SU S35      e[	        U [
        R                  5      R                  5       (       a  [        S5      eU(       a  Ub  [        S5      e[        U=(       d    [        R                  5      n[        U(       d  U	=(       d    [        R                  O[        R                  5      n	U(       a  [        R                  SU  S	35        [         R"                  " S!U UUUUUUUUUUUUS L US
.UD6nU(       Ga&  0 n[%        U [&        5      (       a]  U R)                  S5      (       aG  [*        R,                  R                  U 5      (       a#  SSKJn  U" U 5      nU Vs0 s H  nU/ _M     nnU$ Uc  [        R3                  SU  S35        U$ [5        USS 5      nU(       a  [7        US5      (       a  UR9                  5       nOU Vs/ s H  n[5        USS5      U4PM     nnU Hs  u  nn['        U5      n[7        US5      (       d  M$  UR:                  c  M3  [=        UR:                  R?                  5       5       V s/ s H  n ['        U 5      PM     sn UU'   Mu     U(       a%  [A        S URC                  5        5       5      (       a  [5        USS5      =(       d    Sn!/ n"[5        USS 5      n#U#b4  U#RD                  (       a#  [G        U#RD                  R?                  5       5      n"U"(       d  [I        U5      n$U$(       a  [G        U$5      n"U"(       a  U!U"0nU$ U(       d  U!/ 0nU$ [K        UU5        U(       a  URM                  US9$ [O        UU5        URQ                  UUU	UUS9  U
b  U
O[S        URT                  RV                  5      n
URY                  UU	U
S9n%UbJ  [         RZ                  " 5          [         R\                  " S[        5        U%R_                  U5      n%S S S 5        U(       a  URa                  5          [c        5       n&[e        U 5      (       aN  U Rg                  S5      S:X  a9  U Ri                  S5      u  n'n(U&Rk                  U [l        S9n)U&Ro                  U(U'U)S9  U%$ s  snf s  snf s  sn f ! , (       d  f       N= f! [p         a#  n*[        R                  S U* 35         S n*A*U%$ S n*A*ff = f)"N
deprecated'use_auth_token' was deprecated in favor of 'token' in version 2.14.0 and will be removed in 3.0.0.
You can remove this warning by passing 'token=<use_auth_token>' instead.zF'task' was deprecated in version 2.13.0 and will be removed in 3.0.0.
zEmpty 'data_files': 'z3'. It should be either non-empty or None (default).zjYou are trying to load a dataset that was saved using `save_to_disk`. Please use `load_from_disk` instead.zLoading a streaming dataset in parallel with `num_proc` is not implemented. To parallelize streaming, you can wrap the dataset with a PyTorch DataLoader using `num_workers` > 1 instead.z3Use trust_remote_code=True. Will invoke codes from z9. Please make sure that you can trust the external codes.)r   ru   rf  r   rg  r    r   rh  r   r   rn  ro  _require_default_config_namer   .pyr   )get_dataset_config_namesz No builder instance created for z	 dataset.builder_configsrl   ru   defaultr   c              3   .   #    U  H  o(       + v   M     g 7fr  rg   )r=  r|   s     r}   r>  1DatasetsWrapperHF.load_dataset.<locals>.<genexpr>  s     "D2CQ552Cs   config_namerV  )r   )r   rh  ri  rm  rn  )r   ri  	in_memoryignorer   r   r   r   z&Could not record download statistics: rg   )9warningswarnFutureWarningrq   r   r   DATASET_STATE_JSON_FILENAMEexistsNotImplementedErrorr   REUSE_DATASET_IF_EXISTSr   BASIC_CHECKS
ALL_CHECKSr   warningre  load_dataset_builderrh   r   endswithrH  r   datasetsrv  r   rX  r   rl   r   ri   rr   allvaluesrY  rZ  rR  r^  as_streaming_datasetrc  download_and_preparer1   rV  dataset_size
as_datasetcatch_warningssimplefilterprepare_for_task_save_infosrL   rA   countr   r   r?   dataset_download_statisticsr   )+r   ru   rf  r   r   rg  r    r   rh  ri  rj  rk  r   r   use_auth_tokentaskrl  rm  rn  ro  rp  config_kwargsrO  ret_dictrv  subset_list_subset_tmp_builder_configsconfigs_iterctmp_config_nametmp_builder_configr   r{  rY  rV  
discovereddsr   
_namespacer   r   r   s+                                              r}   load_datasetDatasetsWrapperHF.load_datasetv  s   : \)MM[
 #E<MMY
 D!*'
|3fg  f889@@BB78 8 -%34 4
 %] &M(4(L(LN, >!1!>!>!1!<!<> NNPQUPV WD D E -AA 
!+'+/)-
 
$ H $$$u)=)="''..QUBVBV=6t<7BC{GGRK{C'?vYOP $++;=NPT#U #/99#7#=#=#?LPd#ePd1WQ	%BA$FPdL#e;G7O%7&)/&:O1<@@EWEbEbEnKOPbPmPmPrPrPtKu4vKu4SYKu4v1 <H s"D(//2C"DDD%&6yQ^U^ />##DKK$4$4$67F !>?O!PJ!!'
!3 +V4H O " +R0HO/7#88u8EE-.>F--+'/+ 	. 	
 -8N>N %%22?4 	 ((/$ ) & ((*%%h>((. + ((*	I.C%%$**S/Q*>,0JJsO)
M44 ,= 5 ?//]V`ks/t 	c D $f 5w` +*  	INNCA3GHH		Is7   ;S$SS-SA(S# 
S #
T-TTc                    U
S:w  a  [         R                  " S[        5        U
n	[        U=(       d    [        R                  5      nU	b'  U(       a  UR                  5       O	[        5       nXl        Ub<  U(       a  UR                  5       O	[        5       nUR                  R                  U5        UbC  U(       a  UR                  5       O	[        5       nUR                  c  0 Ul        XR                  S'   [        R                  U UUUUUUUU[        U5      US9nUR                  nUR                  SU5      nUR                  SU5      nUR                  SU=(       d    UR                  R                   5      nUR                  SS 5      nUR"                  (       a  UR"                  R%                  U5      OS nU [&        ;   ap  Ucm  UR                  R(                  S	   R*                  cI  S
U  S3n[,         Vs/ s H  n[,        U   U :X  d  M  UPM     nnU(       a  USUS	    S3-  n[/        U5      e[1        UUS9nUR2                  n[5        US5      (       a  [7        UR8                  R;                  5       5      n [7        [<        R>                  " UR@                  5      RB                  R;                  5       5      nUU-  nURG                  5        VVs0 s H  u  nnUU;   d  M  UU_M     nnnU" SUUUUUURH                  UUU	US.
UDUD6nURK                  U5        U$ s  snf ! [.        [D        4 a    [7        5       n Nf = fs  snnf )Nrr  rs  r   )
r   r   rh  rf  r   rg  ro  rt  _require_custom_configsru   rf  r   r{  r   r   z@Please specify the data files or data directory to load for the z dataset builder.z9
For example `data_files={"train": "path/to/data/train/*.z"}`r`  __dataclass_fields__)
rg  r   r{  rf  r   hashrV  r    r   rn  rg   )&r~  r  r  r   r  copyr   r   rn  updatere  dataset_module_factoryboolbuilder_kwargsrm   builder_configs_parametersdefault_config_namedataset_infosrn   r,   rw  r   r+   rq   r*   BUILDER_CONFIG_CLASSr   r   r  rr   inspect	signature__init__
parameters	TypeErrorrl   r  !_use_legacy_cache_dir_if_possible)r   ru   rf  r   rg  r    r   rh  r   r   r  rn  ro  rt  r   r  dataset_moduler  r{  r   rV  	error_msg	extensionexample_extensionsbuilder_cls_config_cls_valid_fields_init_paramsr{   r|   rO  s                                  r}   r  &DatasetsWrapperHF.load_dataset_builder&  s   , \)MM[
 #E$] &M(4(L(LN  .22 &4&6 $)!&  .22 &4&6 ++22?C  .22 &4&6 ..624/7<++G4*AA+'!/)E$($7 B 
 (66!%%j(;#''jA
$((4 M88LLN &)).$?*88 ++//>B 	 ..:3E"==##-:6Z[_Z``qrI+?"+?i'	2d: +?  " "Z[mno[pZqquvv	Y''/7 "66; 677 @ @ E E GHM%"%%k&:&:;FFKKM 
 *L8M!.!4!4!6!6A% 1!6  
 ,7 ,
%#!$$+,
 ,
 ,
 	::>J["* 	* %"u%s+   9L%L%?AL* M
)M
*MMdynamic_modules_pathc                 N   UR                  SS 5      nU=(       d    [        nUc  [        S+0 UD6nUR                  R	                  SU05        UR                  R	                  SU05        U(       a  UR
                  c  [        Ul        [        U=(       d    [        R                  5      nSUl	        SUl
        U[        R                  :H  Ul        [        [        S U R                  [         R"                  S5      R%                  S5      5      5      S   nUR'                  S5      (       d  US-   n[         R(                  R+                  X5      nU [,        ;   a  [/        U UUUUS9R1                  5       $ U R'                  U5      (       al  [         R(                  R3                  U 5      (       a1  [4        (       a  [7        U UUUS	9R1                  5       $ [9        U UUUS	9$ [;        S
[=        U 5       35      e[         R(                  R3                  U5      (       a1  [4        (       a  [7        UUUUS	9R1                  5       $ [9        UUUUS	9$ [         R(                  R?                  U 5      (       a  [A        U UUUS9R1                  5       $ [C        U 5      (       Ga  U RE                  S5      S:X  Ga   [G        5          [I        5       RK                  U UURL                  SS9n[e        U SUUS9n[         R(                  Rg                  [         R(                  Ri                  U5      5      nUURj                   Vs/ s H  nURl                  PM     sn;   a  Sn[n        Rp                  (       aO  U(       aH   [s        [t        S5      (       a  [u        U UUS9R1                  5       $ [u        U UUS9R1                  5       $ [4        (       aM  [s        [z        S5      (       a  [{        U UUUUUS9R1                  5       $ [{        U UUUUUS9R1                  5       $ [}        U UUUUUS9$ [s        [~        S5      (       a  [        U UUUUUS 9R1                  5       $ [        U UUUUUS!9R1                  5       $ [;        S
[=        U5       S*35      e! [N         a  n[Q        U[R        [T        RV                  RX                  [T        RV                  RZ                  45      (       a%  [[        SU  S[]        U5      R^                   S35      eS[a        U5      ;   a%  SU  S3n[c        U(       a  USU S3-   5      eU5      eS[a        U5      ;   a&  SU  S3nU(       a	  USU S3-   OUn[c        US-   5      eUeS nAff = fs  snf ! [N         a   n[v        Ry                  U5         S nAGNS nAff = f! [N         a  n[v        Ry                  S"U  S#U 35         S$U0n[4        (       a  UUS%'   [        U 40 UD6R1                  5       s S nA$ ! [N         a    [Q        U[R        5      (       a  [[        S&U  S'U 35      S e[Q        U[        [b        [        45      (       a  US e[Q        U[:        5      (       a4  [;        S
[=        U5       S(U  S)[]        U5      R^                   S#U 35      S eUS ef = fS nAff = f),Nru   r   Tc                     U $ r  rg   )xs    r}   <lambda>:DatasetsWrapperHF.dataset_module_factory.<locals>.<lambda>  s    Qr   r   rf   ru  )rf  r   r   rh  )rh  r  ro  z"Couldn't find a dataset script at )rf  r   rh  r   g      Y@)r   r   r   r   zCouldn't reach 'z' on the Hub ()404z	Dataset 'z' doesn't exist on the Hubz at revision ''401zT. If the repo is private or gated, make sure to log in with `huggingface-cli login`.z	README.md)r   r   r   r   F)r   r   )commit_hashr   )r   r   rh  r  ro  )r  r   rh  r  ro  )r   rf  r   r   rh  )r  rf  r   r   rh  z>> Error loading z: rg  r  z1Couldn't reach the Hugging Face Hub for dataset 'z': z8 or any data file in the same directory. Couldn't find 'z"' on the Hugging Face Hub either: z( or any data file in the same directory.rg   )Crm   r>   r   rn  r  rg  r=   r   r  extract_compressed_fileforce_extractFORCE_REDOWNLOADforce_downloadri   filterreplacerH  sepr   r  r   joinr,   r)   
get_moduleisfilerC   rE   rJ   FileNotFoundErrorr0   isdirrP   rA   r  r.   r6   dataset_infor   r   rh   r4   r  
exceptionsConnectTimeoutConnectionErrorr   rC  r   r%   rG   basenamedirnamer^   r   r   USE_PARQUET_EXPORTr@   r(   r   r   rD   rK   rO   r&   r$   r#   )r   r   r   rh  r  rf  r   rg  ro  rt  r  download_kwargssubset_namer   combined_pathr  r   msgdataset_readme_pathr  sibling#can_load_config_from_parquet_exporte1_cached_factory_kwargss                           r}   r  (DatasetsWrapperHF.dataset_module_factory  s5     +..vt<77",??O''../DE''..
H/EF88@(9O%$] &M(4(L(LN26/(,%)6,:W:W)W&;<<,22379::<>   ''%'HT4 --/!% /+ jl ]]8$$ww~~d##&&>&3-A*;	
 !jl# 3"/)=&7	  (89RSW9X8YZ  WW^^M**"":!"/)=&7	
 *, /+%9"3	  WW]]4  9!%+	- .8Z\	: d##

31(<H'13! #(7#7#7 $!)-33 %	 $8 $LD ': !,$3%	'# !gg..rww?R/ST9E9N9N 9Ng))9N   ;@7005X,01Y[eff'O$(-54C(E FPZ\!R
 $L $,70?$A BLN +*,-NPZ[[#D $)10?.;5I2C$ )jl+  A (3,;*71E.?  %*,' 5!)(7&3-A*;  ))MzZZC %-%-'1,;*7  %*,' @$/!)#-(7&3 !jl#D $45N}5]4^ _7 89 9A !  !0$//>>$//??  ..tfN47CSCSBTTUV  #a& )$/IJ2>F   .xj:; LO  #a& )$/IJDLcnXJa$@@RU2 #P P 
  5 H    ) ,"LLOO,d  '0b=>'.99-E***I]./EF58 688B
E  '!"&:;;-OPTvUXY[X\]#$ ""#9#79J#LM M !d*!"&788/@AZ[hAi@j k..2V3UVZ[]V^VgVgUhhjkmjnp  $	$
 $&''s   3
V" >$R "AV" 9U0$V" 4-U5 "U5 ;;V" 7V" V" !0V" V" 
U-CU((U--V" 5
V?VV" VV" "
Z$,Z-W;5Z$;B!ZZZ$rg   )NNNNNNNNNNFNNrr  rr  FNNFF)NNNNNNNNNrr  NNTN)
NNNNNNNNTF) rC  rD  rE  rF  staticmethodr   r   r   r   r
   r   r   r   r   r   r  r   r  r   r   r   r   r   rk   r  r   r  r   r"   r'   r  rK  rg   r   r}   re  re  t  sW    #"& KO-1#''+48<@DH)- 26,0#"&*."',1/mmsmm 3-m U3#*3c6>sm7D 1E ,E $F$F G H	m c5j)*m C=m 8$m ".1m  lC&7 89m $E*:C*?$@Am !m m 5g./m  dCi()!m& 'm( 3-)m* "$+m,  -m. $D>/m2 
{G%8/ 
3m m^  #"& KO#''+48<@26,0#*.,0%)-1#u u smu  3-u  U3#*3c6>sm7D 1E ,E $F$F G H	u  C=u  8$u  ".1u   lC&7 89u  5g./u  dCi()u  "$u  $D>u " c5j)*#u & 
'u  u n  3748<@.2"&FJ#',0%) %e9e95g./e9 ".1e9  lC&7 89	e9
 'sme9 3-e9 U4sM#ABCe9 C=e9 $D>e9 
e9 e9r   re  c               /     #    [         R                  n[        R                  n[	        [
        S5      (       a  [
        R                  O[
        R                  n[        R                  n[        R                  n[        R                  n[        R                  n[        R                  n	[         (       a  ["        R                  OSn
[$        R&                  n[(        R*                  n[(        R,                  nU[.        L nU[0        L n[3        5       [         l        [4        [        l        [	        [
        S5      (       a  [6        [
        l        O[6        [
        l        [8        [        l	        [:        [        l
        [<        [        l        [>        [        l        [@        [        l        [         (       a  [B        ["        l        [D        [$        l        U(       d  Uq#[.        [(        l        U(       d  Uq$[0        [(        l        URK                  SS5      nSn [L        RN                  " U 0 UD6nUnUv   [P        RS                  5         [T        RV                  RS                  5         U(       + nU(       a  U(       d  U[(        l        Sq#U(       d  U[(        l        Sq$U[         l        U[        l        U[$        l        [	        [
        S5      (       a  U[
        l        OU[
        l        U[        l	        U[        l
        U[        l        U[        l        U	[        l        [         (       a  U
["        l        ggg! [P        RS                  5         [T        RV                  RS                  5         U(       + nU(       a  U(       d  U[(        l        Sq#U(       d  U[(        l        Sq$U[         l        U[        l        U[$        l        [	        [
        S5      (       a  U[
        l        OU[
        l        U[        l	        U[        l
        U[        l        U[        l        U	[        l        [         (       a  U
["        l        f f f = f7f)zContext manager that monkey-patches ``datasets`` to use ModelScope.

All monkey-patches are applied on entry and restored on exit (for
non-streaming mode) or kept alive (for streaming mode, where lazy
iteration needs the patches to remain active).
	_downloadNrl  F),r   HF_ENDPOINTr-   get_from_cacher   r   r  _download_singler6   r  r   get_paths_infor   resolve_patternrO   r  rC   rD   r    generate_from_dictr9   _openr  r  r   r;   r<   r   r   r   r   rF   rH   rI   rj   r	  r   rn   re  r  r   clearr:   _dataset_id_type_cache)r   r   hf_endpoint_originget_from_cache_origin_download_origindataset_info_originlist_repo_tree_originget_paths_info_originresolve_pattern_origin get_module_without_script_originget_module_with_script_origingenerate_from_dict_originhf_fs_open_originhf_fs_init_originhf_fs_open_was_patchedhf_fs_init_was_patchedrl  _streaming_dataset_returneddataset_resshould_restores                       r}   load_dataset_with_ctxr    s'      ++&554;O[4Y4Y00-- ,,!00!00'77'K'V'V$8K8K)44QU " ( ; ;$**$--.+=.2II &F 1J,,$0!+7(&E*E*E!1J6O(37M)4"7H!0(!0 7

;.I"' ]'44dEfE&/# %%++-88)%6"'+$)(9%'+$!3F(=J%*CH'44,<)3C0!4E#8E #8E )?J&>^0;""?\1< #- 	 	 %%++-88)%6"'+$)(9%'+$!3F(=J%*CH'44,<)3C0!4E#8E #8E )?J&>^0;""?\1< #- s    HP>L5 0DP>5DP;;P>r  )r   )rG  
contextlibr  rH  r~  dataclassesr   pathlibr   typingr   r   r   r   r	   r
   r   r   r   r   urllib.parser   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ro   r   DatasetListImportErrordatasets.featuresr    datasets.features.featuresr!   datasets.data_filesr"   r#   datasets.exceptionsr$   r%   datasets.loadr&   r'   r(   r)   r*   datasets.packaged_modulesr+   r,   datasets.utilsr-   datasets.utils.file_utilsr.   r/   r0   datasets.utils.info_utilsr1   datasets.utils.trackr2   huggingface_hubr3   huggingface_hub.errorsr4   huggingface_hub.hf_apir5   r   r6   r7   r8   huggingface_hub.hf_file_systemr9   
modelscoper:   modelscope.hub.utils.utilsr;   )modelscope.msdatasets.utils.hf_file_utilsr<   modelscope.utils.config_dsr=   modelscope.utils.constantr>   r?   modelscope.utils.import_utilsr@   modelscope.utils.file_utilsrA   modelscope.utils.loggerrB   #modelscope.msdatasets.utils._compatrC   rD   rE   rW  rF   rG   rH   rI   rJ   rK   rL   rM   rO   rN   rP   r   ExpandDatasetProperty_Trs   rj   r   r   floatr  r   r   r@  __annotations__r   r   r   r	  r   r   r  r  rR  r^  rc  re  contextmanagerr  rg   r   r}   <module>r+     s  	   	    ` ` ` " 9 9 9 9 9, ' 5 @ L 
 Y %O O 6 , & 7 ? > > 7  3 G 8 Q ; 8 .   0M 
 " 0 )4k* Ls  LN$ $n $QT $^ ## (,6:0&0& sm	0&
 e_0& 0& E$)$%0& T1230& 0&j DF $ud5:)=#>??@ E  	
 d5:-./0> #'I*
 "#(,I*I* 3-I*
 I* I* smI* }I* E$)$%I* eHj()*I*b "#(,$G$G cC $G
 $G sm$G }$G E$)$%$G 
%*$
%&$GV    37d >(AV)! )!X(1
hMHP9 P9n U] U]W#  Kr  00 00s$   )I+ .I: +I76I7:JJ