
    h                         S SK r S SKJr  S SKJr  S SKrS SKrS SKJ	r	  S SK
Jr  \R                  R                  R                  \5      r\ " S S\R"                  5      5       r " S S	\R&                  5      rg)
    N)	dataclass)Optionalrequire_storage_cast)
table_castc                   d    \ rS rSr% SrSr\\R                     \	S'   Sr
\\	S'   Sr\\   \	S'   Srg)		XmlConfig   zBuilderConfig for xml files.Nfeatureszutf-8encodingencoding_errors )__name__
__module____qualname____firstlineno____doc__r   r   datasetsFeatures__annotations__r   strr   __static_attributes__r       [/home/james-whalen/.local/lib/python3.13/site-packages/datasets/packaged_modules/xml/xml.pyr	   r	      s2    &,0Hhx(()0Hc%)OXc])r   r	   c                   d    \ rS rSr\rS rS rS\R                  S\R                  4S jr
S rSrg	)
Xml   c                 R    [         R                  " U R                  R                  S9$ )N)r   )r   DatasetInfoconfigr   )selfs    r   _info	Xml._info   s    ##T[[-A-ABBr   c                    U R                   R                  (       d"  [        SU R                   R                   35      eSUR                  l        UR                  U R                   R                  5      n/ nUR                  5        Hc  u  pE[        U[        5      (       a  U/nU Vs/ s H  oaR                  U5      PM     nnUR                  [        R                  " USU0S95        Me     U$ s  snf )zThe `data_files` kwarg in load_dataset() can be a str, List[str], Dict[str,str], or Dict[str,List[str]].

If str or List[str], then the dataset returns only the 'train' split.
If dict, then keys should be from the `datasets.Split` enum.
z=At least one data file must be specified, but got data_files=Tfiles)name
gen_kwargs)r    
data_files
ValueErrordownload_configextract_on_the_flydownload_and_extractitems
isinstancer   
iter_filesappendr   SplitGenerator)r!   
dl_managerr(   splits
split_namer%   files          r   _split_generatorsXml._split_generators   s     {{%%\]a]h]h]s]s\tuvv8<
""544T[[5K5KL
!+!1!1!3J%%%=BCUT**40UECMM(11zwX]N^_`	 "4
  Ds   'C/pa_tablereturnc                    U R                   R                  by  U R                   R                  R                  n[        S U R                   R                  R	                  5        5       5      (       a  UR                  U5      nU$ [        X5      nU$ UR                  [        R                  " S[        R                  " 5       05      5      $ )Nc              3   B   #    U  H  n[        U5      (       + v   M     g 7f)Nr   ).0features     r   	<genexpr>"Xml._cast_table.<locals>.<genexpr>3   s     bDa+G444Das   xml)
r    r   arrow_schemaallvaluescastr   paschemastring)r!   r8   rF   s      r   _cast_tableXml._cast_table0   s    ;;+[[))66FbDKKDXDXD_D_Dabbb#==0 O &h7O==E299;+?!@AAr   c              #   *  #    U R                   R                  b  [        U R                   R                  5      OS/n[        [        R
                  R                  U5      5       H  u  p4[        X@R                   R                  U R                   R                  S9 nUR                  5       n[        R                  R                  [        R                  " U/5      /US9nX0R                  U5      4v   S S S 5        M     g ! , (       d  f       M  = f7f)Nr@   )r   errors)names)r    r   list	enumerate	itertoolschainfrom_iterableopenr   r   readrE   Tablefrom_arraysarrayrH   )r!   r%   pa_table_namesfile_idxr5   fr@   r8   s           r   _generate_tablesXml._generate_tables=   s     7;{{7K7K7Wdkk223^c]d'	(E(Ee(LMNHd[[%9%9$++B]B]^bcffh88//3%0A/X 0 0 ::: _^ N^^s   BDAD4D
D	Dr   N)r   r   r   r   r	   BUILDER_CONFIG_CLASSr"   r6   rE   rT   rH   rZ   r   r   r   r   r   r      s6    $C$BBHH B B;r   r   )rO   dataclassesr   typingr   pyarrowrE   r   datasets.features.featuresr   datasets.tabler   utilslogging
get_loggerr   loggerBuilderConfigr	   ArrowBasedBuilderr   r   r   r   <module>rh      si     !    ; % 
			*	*8	4 *&& * *,;(
$
$ ,;r   