Ë
    u™ãj i  ã                  ó.  — d dl mZ d dlmZ d dlmZmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZmZmZmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$m%Z% erd dl&m'Z' d dl(Z)d dl*m+Z+ d dl,m-Z- dd„Z. G d„ de$«      Z/y)é    )Úannotations)Údefaultdict)ÚTYPE_CHECKINGÚcastN)Úusing_string_dtype)Úlib)Úimport_optional_dependency)Úpa_version_under25p0)ÚEmptyDataErrorÚPandas4WarningÚParserErrorÚParserWarning)Úfind_stack_level)Úpandas_dtype)ÚCategoricalDtype)Ú
is_integer)Úto_pyarrow_type)Úarrow_table_to_pandas)Úmangle_dupe_names)Ú
ParserBaseÚdate_converter)ÚHashable)Ú
ReadBuffer)Ú	DataFramec                ó†  — t        d«      }t        | «      } t        | t        «      r#| j                  €y| j                  j
                  } | t        k(  r |j                  «       S t        | j                  «      }|�G|j                  j                  |«      s|j                  j                  |«      r |j                  «       S y)a  
    The pyarrow type a column should be parsed as in order to faithfully
    apply the requested pandas dtype afterwards, or None to leave the
    column to pyarrow's type inference.

    GH#57666 dtypes whose conversion must start from the original text --
    string dtypes and object -- are parsed as strings: converting an
    inferred column instead is lossy (e.g. leading zeros are lost once a
    column has been inferred as integer). All other dtypes are left to
    inference and cast afterwards in _finalize_dtype, which is lossless for
    them and keeps behavior consistent with the other engines (e.g. a column
    of "True"/"False" values with dtype=float is inferred as boolean and
    then cast, which pyarrow's parse-time conversion would reject).
    ÚpyarrowN)r	   r   Ú
isinstancer   Ú
categoriesÚdtypeÚobjectÚlarge_stringr   ÚtypeÚtypesÚ	is_stringÚis_large_string)r   ÚpaÚtarget_dtypes      úq/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/io/parsers/arrow_parser_wrapper.pyÚ_pyarrow_parse_typer)   2   s¨   € ô 
$ IÓ	.€Bä˜Ó€EÜ�%Ô)Ô*Ø×ÑÐ#ð à× Ñ ×&Ñ&ˆØ”‚àˆr�‰Ó Ð ô # 5§:¡:Ó.€LØÐØ
�‰×Ñ˜<Ô(¨B¯H©H×,DÑ,DÀ\Ô,Rð ˆr�‰Ó Ð Øó    c                  ó–   ‡ — e Zd ZdZdˆ fd„Zdd„Zdd„Zdd„Zd„ Z	 	 	 	 dd„Z	dd„Z
dd	„Zdd
„Z	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zˆ xZS )ÚArrowParserWrapperz7
    Wrapper for the pyarrow engine for read_csv()
    c                ó`   •— t         ‰| �  |«       || _        || _        | j	                  «        y ©N)ÚsuperÚ__init__ÚkwdsÚsrcÚ_parse_kwds)Úselfr2   r1   Ú	__class__s      €r(   r0   zArrowParserWrapper.__init__`   s*   ø€ Ü‰Ñ˜ÔØˆŒ	ØˆŒà×ÑÕr*   c                ón  — | j                   j                  d«      }|€dn|| _        | j                   j                  d«      }|�t        |«      dk7  rt	        d«      ‚| j                   j                  dd«      }|�7t        |t        t        f«      s!t        d	t        |«      j                  › �«      ‚|st        d
«      ‚t        |«      dkD  rt        d«      ‚| j                   j                  d«      }|�/t        |t        t        f«      rt        |«      dk7  rt	        d«      ‚| j                   j                  dd«      }t        |t        t        f«      rt        |«      dk7  rt	        d«      ‚| j                   d   }t        |t        «      rt	        d«      ‚t        | j                   d   «      | _        y)z?
        Validates keywords before passing to pyarrow.
        ÚencodingNzutf-8Ú	delimiteré   z"Only length-1 delimiters supportedÚ	quotecharú"z "quotechar" must be string, not z(quotechar must be set if quoting enabledz("quotechar" must be a 1-character stringÚ
escapecharzOnly length-1 escapes supportedÚdecimalú.z'Only length-1 decimal markers supportedÚ	na_valuesz?The pyarrow engine doesn't support passing a dict for na_values)r1   Úgetr7   ÚlenÚ
ValueErrorr   ÚstrÚbytesÚ	TypeErrorr"   Ú__name__ÚdictÚlistr?   )r4   r7   r8   r:   r<   r=   r?   s          r(   r3   zArrowParserWrapper._parse_kwdsg   s€  € ð  $Ÿy™yŸ}™}¨ZÓ8ˆØ#+Ð#3™¸ˆŒð
 —I‘I—M‘M +Ó.ˆ	ØÐ ¤S¨£^°qÒ%8ô ÐAÓBÐBà—I‘I—M‘M +¨sÓ3ˆ	ØÐ ¬°IÄÄU¸|Ô)LÜØ2´4¸	³?×3KÑ3KÐ2LÐMóð ñ ô ÐFÓGÐGÜˆy‹>˜AÒÜÐFÓGÐGà—Y‘Y—]‘] <Ó0ˆ
ØÐ!Ü˜:¬¬U |Ô4¼¸J»È1Ò8LäÐ>Ó?Ð?à—)‘)—-‘- 	¨3Ó/ˆÜ˜'¤C¬ <Ô0´C¸³LÀAÒ4EÜÐFÓGÐGà—I‘I˜kÑ*ˆ	Ü�i¤Ô&ÜØQóð ô ˜dŸi™i¨Ñ4Ó5ˆ�r*   c                ó~  — dddddddœ}|j                  «       D ]X  \  }}|| j                  v sŒ| j                  j                  |«      €Œ1| j                  j                  |«      | j                  |<   ŒZ | j                  }t        |t        «      r|g}nd}|| j                  d	<   | j                  j                  «       D ��ci c]  \  }}|�|d
v r||“Œ c}}| _        | j                  j                  d«      }|�¦t        |«      r|| j                  d<   n‹|t        j                  j                  k(  rd| j                  d<   n^|t        j                  j                  k(  rdd„}|| j                  d<   n-|t        j                  j                  k(  rd„ | j                  d<   | j                  j                  «       D ��ci c]  \  }}|�|dv r||“Œ c}}| _        d| j                  d   v | j                  d<   | j                  €;d| j                  v r-| j                  d   D �	cg c]  }	d|	› �‘Œ	 c}	| j                  d<   | j                   ��
t        | j                   t"        «      rÄi }
| j                   j                  «       D ])  \  }}t        |t        «      sŒt%        |«      }|€Œ%||
|<   Œ+ |
r|
| j                  d<   t        | j                   t&        «      r}| j                   j(                  �gt*        sat%        | j                   j)                  «       «      }|�<|| j                  d<   n,t*        s&t%        | j                   «      }|�|| j                  d<   | j                  }t        |t,        «      rt/        |«      dk(  r|d   }nt1        d«      ‚t3        | j                  d   xs dd«      }|�I| j4                  �=| j                  j                  d«      }|rt7        d„ |D «       «      rt1        d«      ‚d}nd}||xs dz   }|du xs | j4                  du||| j8                  dœ| _        yc c}}w c c}}w c c}	w )z:
        Rename some arguments to pass to pyarrow
        Úinclude_columnsÚnull_valuesÚescape_charÚignore_empty_linesÚdecimal_pointÚ
quote_char)Úusecolsr?   r<   Úskip_blank_linesr=   r:   NÚtimestamp_parsers)r8   rO   rL   rM   Úon_bad_linesÚinvalid_row_handlerc                óš   — t        j                  d| j                  › d| j                  › d| j                  › �t
        t        «       ¬«       y)Nz	Expected z columns, but found z: )Ú
stacklevelÚskip)ÚwarningsÚwarnÚexpected_columnsÚactual_columnsÚtextr   r   )Úinvalid_rows    r(   Úhandle_warningz?ArrowParserWrapper._get_pyarrow_options.<locals>.handle_warningÅ   sL   € Ü—M‘MØ# K×$@Ñ$@Ð#AÐAUØ&×5Ñ5Ð6°b¸×9IÑ9IÐ8JðLä%Ü#3Ó#5õ	ð "r*   c                 ó   — y)NrW   © )Ú_s    r(   ú<lambda>z9ArrowParserWrapper._get_pyarrow_options.<locals>.<lambda>Ð   s   � r*   )rJ   rK   Útrue_valuesÚfalse_valuesrN   rR   Ú Ústrings_can_be_nullÚfÚcolumn_typesÚdefault_column_typer9   r   zzThe 'pyarrow' engine does not support a list of integers for the 'header' argument (MultiIndex columns are not supported).Úskiprowsc              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr.   ©r   rC   )Ú.0Úcols     r(   ú	<genexpr>z:ArrowParserWrapper._get_pyarrow_options.<locals>.<genexpr>#  s   è ø€ ÒG¸œz¨#¬s×3ÑGùó   ‚zaThe 'pyarrow' engine does not support 'usecols' together with 'names' when 'header' is an integer)Úautogenerate_column_namesÚ	skip_rowsÚskip_rows_after_namesr7   )ÚreturnrC   )Úitemsr1   r@   ÚpopÚdate_formatr   rC   Úparse_optionsÚcallabler   ÚBadLineHandleMethodÚ
BLHM_ERRORÚ	BLHM_WARNÚ	BLHM_SKIPÚconvert_optionsÚheaderr   rG   r)   r   Údefault_factoryr
   rH   rA   rB   ÚmaxÚnamesÚallr7   Úread_options)r4   ÚmappingÚpandas_nameÚpyarrow_namerw   Úoption_nameÚoption_valuerS   r^   Únrh   rn   Ú	col_dtyper'   r   rj   rP   rs   rr   s                      r(   Ú_get_pyarrow_optionsz'ArrowParserWrapper._get_pyarrow_options”   s>  € ð
 )Ø&Ø'Ø 4Ø&Ø%ñ
ˆð *1¯©«ò 	EÑ%ˆK˜Ø˜dŸi™iÒ'¨D¯I©I¯M©M¸+Ó,FÑ,RØ*.¯)©)¯-©-¸Ó*D�—	‘	˜,Ò'ð	Eð ×&Ñ&ˆÜ�k¤3Ô'Ø&˜-‰Kð ˆKØ)4ˆ�	‰	Ð%Ñ&ð .2¯Y©Y¯_©_Ó->÷
á)�˜\ØÐ'ØØOñPð ˜Ñ%ó
ˆÔð —y‘y—}‘} ^Ó4ˆØÐ#Ü˜Ô%Ø<H�×"Ñ"Ð#8Ò9Ø¤×!?Ñ!?×!JÑ!JÒJàð ×"Ñ"Ð#8Ò9ð ¤×!?Ñ!?×!IÑ!IÒIó"ð =K�×"Ñ"Ð#8Ò9Ø¤×!?Ñ!?×!IÑ!IÒIÙ<L�×"Ñ"Ð#8Ñ9ð .2¯Y©Y¯_©_Ó->÷ 
á)�˜\ØÐ'Øðñð ˜Ñ%ó 
ˆÔð 79¸D¿I¹IÀmÑ<TÐ6Tˆ×ÑÐ2Ñ3à�;‰;ÐÐ#4¸×8LÑ8LÑ#Là!%×!5Ñ!5Ð6GÑ!Hö7Ø�!�A�3’ò7ˆD× Ñ Ð!2Ñ3ð �:‰:Ñ!ô ˜$Ÿ*™*¤dÔ+Ø!�Ø&*§j¡j×&6Ñ&6Ó&8ò 	9‘N�C˜Ü% c¬3Ô/ð
 !Ü#6°yÓ#A�LØ#Ñ/Ø,8˜ SÒ)ð	9ñ  Ø;G�D×(Ñ(¨Ñ8ä˜tŸz™z¬;Ô7ØŸ
™
×2Ñ2Ð>Ý0ô $7°t·z±z×7QÑ7QÓ7SÓ#T�LØ#Ð/ØFR˜×,Ñ,Ð-BÒCÝ)ô  3°4·:±:Ó>�ØÐ+ØBN�D×(Ñ(Ð)>Ñ?à—‘ˆÜ�fœdÔ#ä�6‹{˜aÒØ ™‘ä ð"óð ô �t—y‘y Ñ,Ò1°°1Ó5ˆàÐ $§*¡*Ð"8ð ×*Ñ*×.Ñ.Ð/@ÓAˆGÙœ3ÑG¸wÔGÔGÜ ð?óð ð %&Ñ!à$%Ð!ð  ¢¨!Ñ,ˆ	à)/°4¨Ò)Q¸4¿:¹:ÈTÐ;QØ"Ø%:ØŸ™ñ	
ˆÕùóA
ùó> 
ùò"7s   ÃP.Æ?P4È$P:c                óŠ   — t        | j                  t        «      r| j                  S || j                  v xs || j                  v S )zó
        Whether the index column with the given name/position should be parsed
        as dates. Unlike the other engines, the pyarrow path sets the index after
        reading, so parse_dates handling for index columns happens here.
        )r   Úparse_datesÚbool)r4   ÚnameÚpositions      r(   Ú_index_col_should_parse_datesz0ArrowParserWrapper._index_col_should_parse_dates:  sA   € ô �d×&Ñ&¬Ô-Ø×#Ñ#Ð#Ø�t×'Ñ'Ð'ÒG¨8°t×7GÑ7GÐ+GÐGr*   c                ó†  — t        d«      }	  |j                  di | j                  ¤Ž}|S # t        $ rŒ}| j                  j	                  dd «      }|�| j                  |«       | j                  j	                  dt        «       «      }t        j                  |«      rt        d„ |D «       «      st        d«      |‚‚ d }~ww xY w)Núpyarrow.csvrJ   rK   c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr.   rl   ©rm   Úxs     r(   ro   z:ArrowParserWrapper._get_convert_options.<locals>.<genexpr>O  s   è ø€ ò 6Ø'(”
˜1œc×"ñ6ùrp   z9The 'pyarrow' engine requires all na_values to be stringsr`   )
r	   ÚConvertOptionsr~   rE   r@   Ú_validate_usecolsÚsetr   Úis_list_likerƒ   )r4   Úpyarrow_csvr~   ÚerrÚincludeÚnullss         r(   Ú_get_convert_optionsz'ArrowParserWrapper._get_convert_optionsD  sÉ   € Ü0°Ó?ˆð	Ø8˜k×8Ñ8ÑP¸4×;OÑ;OÑPˆOð  Ðøô ò 	Ø×*Ñ*×.Ñ.Ð/@À$ÓGˆGØÐ"Ø×&Ñ& wÔ/à×(Ñ(×,Ñ,¨]¼C»EÓBˆEÜ×#Ñ# EÔ*´#ñ 6Ø,1ô6ô 3ô  ØOóàðð ûð	ús   �+ «	C ´BB;Â;C c                óê   — g }g }t        |«      D ]1  \  }}|dk(  rd|› �}|j                  |«       |j                  |«       Œ3 t        ||| j                  «      }||D �ch c]  }||   ’Œ	 c}fS c c}w )a  
        Match other engines' header handling: empty names become
        "Unnamed: {i}" and duplicated names are de-duplicated, mirroring the
        algorithm in pandas._libs.parsers.TextReader.

        Returns the new names along with the set of placeholder names.
        re   z	Unnamed: )Ú	enumerateÚappendr   r   )r4   Ú	raw_namesr‚   Úunnamed_col_indicesÚir�   s         r(   Ú_dedup_column_namesz&ArrowParserWrapper._dedup_column_namesZ  s†   € ð !#ˆØ ÐÜ  Ó+ò 	‰GˆAˆtØ�rŠzØ" 1 #��Ø#×*Ñ*¨1Ô-Ø�L‰L˜Õð		ô " %Ð)<¸d¿j¹jÓIˆØÐ)<Ö= A�u˜Q“xÒ=Ð=Ð=ùÒ=s   Á A0c                ó¾  — t        |j                  «      }d}d| _        | j                  €| j                  €t        |«      | _        | j                  ��t        | j                  «      |k7  rì| j                  j                  d«      }| j                  �t        | j                  «      |kD  s#|�,t        | j                  «      t        |«      k7  rt        d«      ‚t        | j                  «      |k  rg|t        | j                  «      z
  | _        t        | j                  «      D �cg c]  }t        |«      ‘Œ }}|t        | j                  «      z   | _        d}|S c c}w )NTr   rJ   zHNumber of passed names did not match number of header fields in the fileF)rA   ÚcolumnsÚ_implicit_index_countr   r‚   Úranger1   r@   rB   rC   rH   )r4   ÚtableÚnum_colsÚmulti_index_namedrP   r—   Úcolumns_prefixs          r(   Ú_adjust_column_namesz'ArrowParserWrapper._adjust_column_nameso  s"  € Ü�u—}‘}Ó%ˆØ ÐØ%&ˆÔ"Ø�;‰;Ð 4§:¡:Ð#5Ü˜x›ˆDŒJØ�:‰:Ñ!¤c¨$¯*©*£o¸Ò&Að —i‘i—m‘mÐ$5Ó6ˆGØ—‘Ð'¬C°·
±
«O¸hÒ,FØÐ#¬¨D¯J©J«¼3¸w»<Ò(Gô !ð0óð ô �4—:‘:‹ Ò)ð .6¼¸D¿J¹J»Ñ-G�Ô*Ü27¸×8RÑ8RÓ2SÖ!T¨Q¤# a¥&Ð!T�Ð!TØ+¬d°4·:±:Ó.>Ñ>�”
Ø$)Ð!Ø Ð ùò "Us   Ä%Ec                ó8  — | j                   €/| j                  r#t        t        | j                  «      «      | _         | j                   ��Ì| j                   j	                  «       }t        | j                   «      D �]p  \  }}t        |«      r |j                  |   }|||<   t        |«      }nD||j                  vrt        d|› d�«      ‚|}t        d|j                  j                  |«      «      }| j                  ||«      r4t        ||   || j                  | j                  | j                   ¬«      ||<   t#        | j$                  t&        «      sŒ×| j$                  j)                  |«      �|| j$                  j)                  |«      fn6|j                  |   | j$                  j)                  |j                  |   «      f\  }}	|	€�ŒM||   j+                  |	«      ||<   | j$                  |= �Œs | j$                  �…t#        | j$                  t&        «      sk|D ]f  }||   j$                  t,        k(  sŒ| j/                  ||   j1                  d¬«      t3        «       d¬«      \  }
}|
||<   ||   j5                  «       ||<   Œh |j7                  |d¬«      }|s4d gt9        |j:                  j<                  «      z  |j:                  _        |S | j>                  rC|j:                  j<                  D �cg c]  }|| j>                  v rd n|‘Œ c}|j:                  _        |S c c}w )	NzIndex z invalidÚint)rn   ÚdayfirstÚcache_datesrw   T)Úcopy)Úno_dtype_specified)Údrop) Ú	index_colrª   rH   r«   rµ   r¢   r   r©   r²   rB   r   Úget_locr’   r   r³   r´   rw   r   r   rG   r@   Úastyper    Ú_infer_typesÚto_numpyrš   Úinfer_objectsÚ	set_indexrA   Úindexr‚   Úunnamed_cols)r4   Úframer®   Úindex_to_setr¦   ÚitemÚcol_namer‘   ÚkeyÚ	new_dtypeÚ
new_valuesra   r�   s                r(   Ú_finalize_indexz"ArrowParserWrapper._finalize_index‹  sÑ  € Ø�>‰>Ð! d×&@Ò&@Ü!¤%¨×(BÑ(BÓ"CÓDˆDŒNØ�>‰>Ñ%ØŸ>™>×.Ñ.Ó0ˆLÜ$ T§^¡^Ó4ó !,‘��4Ü˜dÔ#Ø$Ÿ}™}¨TÑ2�HØ&.�L ‘OÜ" 4›y‘Hà §¡Ñ.Ü$ v¨d¨V°8Ð%<Ó=Ð=à#�HÜ# E¨5¯=©=×+@Ñ+@ÀÓ+FÓG�Hð
 ×5Ñ5°hÀÔIÜ&4Ø˜h™Ø$Ø!%§¡Ø$(×$4Ñ$4Ø$(×$4Ñ$4ô'�E˜(‘Oô ˜dŸj™j¬$Õ/ð  Ÿ:™:Ÿ>™>¨$Ó/Ð;ð ˜tŸz™zŸ~™~¨dÓ3Ñ4à#Ÿm™m¨DÑ1°4·:±:·>±>À%Ç-Á-ÐPTÑBUÓ3VÐWñ #�C˜ð
 !Ò,Ø%*¨3¡Z×%6Ñ%6°yÓ%A˜˜c™
Ø ŸJ™J sšOðC!,ðF �z‰zÐ%¬j¸¿¹ÄTÔ.Jð (ò @�CØ˜S‘z×'Ñ'¬6Ó1Ø(,×(9Ñ(9Ø! #™J×/Ñ/°TÐ/Ó:Ü›EØ/3ð ):ó )™˜
 Að
 &0˜˜c™
Ø%*¨3¡Z×%=Ñ%=Ó%?˜˜cš
ð@ð —O‘O L°t�OÓ<ˆEá$Ø%) F¬S°·±×1BÑ1BÓ-CÑ$C�—‘Ô!ð ˆð ×"Ò"ð
 !&§¡× 1Ñ 1ö%àð ! D×$5Ñ$5Ñ5‘D¸4Ñ?ò%�—‘Ô!ð
 ˆùò%s   Ë*Lc                ój  — | j                   �õt        | j                   t        «      rK| j                   j                  «       D ��ci c]  \  }}||j                  v r|t        |«      “Œ! c}}| _         nrt        | j                   «      }t        | j                  t        «      rt        | j                  «      n	t        «       }|j                  D �ci c]	  }||vr||“Œ c}| _         	 |j                  | j                   «      }|S |S c c}}w c c}w # t        $ r}t        t        |«      «      |‚d }~ww xY wr.   )r   r   rG   ru   r©   r   rŽ   rH   rš   rº   rE   rB   rC   )r4   rÁ   ÚkÚvÚscalar_dtypeÚparse_dates_colsrn   r�   s           r(   Ú_finalize_dtypez"ArrowParserWrapper._finalize_dtypeÏ  s  € Ø�:‰:Ð!ô ˜$Ÿ*™*¤dÔ+ð !%§
¡
× 0Ñ 0Ó 2÷á˜˜1Ø˜EŸM™MÑ)ð ”| A“Ñ&ó�•
ô  ,¨D¯J©JÓ7�ô " $×"2Ñ"2´DÔ9ô ˜×(Ñ(Ô)ä›ð !ð  %Ÿ}™}öàØÐ"2Ñ2ð ˜Ñ%ò�”
ð
4ØŸ™ T§Z¡ZÓ0�ð ˆˆuˆùó1ùòøô ò 4ä ¤ S£Ó*°Ð3ûð4ús$   Á$DÃD
Ã%D Ä	D2ÄD-Ä-D2c                ó  — | j                  |j                  |«      }| j                  |«      }| j                  ||«      }| j	                  |«      }| j                  t        |j                  «      | j                  «      |_        |S )a  
        Processes data read in based on kwargs.

        Parameters
        ----------
        frame : DataFrame
            The DataFrame to process.
        multi_index_named : bool

        Returns
        -------
        DataFrame
            The processed DataFrame.
        )Ú_do_date_conversionsr©   Ú_maybe_restore_string_dtyperÈ   rÎ   Ú_maybe_make_multi_index_columnsrH   Ú	col_names)r4   rÁ   r®   s      r(   Ú_finalize_pandas_outputz*ArrowParserWrapper._finalize_pandas_outputî  sz   € ð" ×)Ñ)¨%¯-©-¸Ó?ˆØ×0Ñ0°Ó7ˆØ×$Ñ$ UÐ,=Ó>ˆØ×$Ñ$ UÓ+ˆð ×<Ñ<Ü�—‘Ó §¡ó
ˆŒð ˆr*   c                óî   — t        «       rt        | j                  t        «      s|S | j                  D ]?  }||j                  v sŒ||   j
                  t        k(  sŒ)||   j                  d«      ||<   ŒA |S )NrC   )r   r   rŽ   rH   r©   r   r    rº   )r4   rÁ   rn   s      r(   rÑ   z.ArrowParserWrapper._maybe_restore_string_dtype
  so   € ô #Ô$¬°D×4DÑ4DÄdÔ)KØˆLØ×#Ñ#ò 	6ˆCØ�e—m‘mÒ#¨¨c©
×(8Ñ(8¼FÓ(BØ" 3™Z×.Ñ.¨uÓ5��c’
ð	6ð ˆr*   c                ó”   — t        j                  |«      rt        d„ |D «       «      st        d«      ‚t	        |«      rt        d«      ‚y )Nc              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr.   rl   r–   s     r(   ro   z7ArrowParserWrapper._validate_usecols.<locals>.<genexpr>  s   è ø€ Ò0UÈ´¸A¼s×1CÑ0Uùrp   zwThe pyarrow engine does not allow 'usecols' to be integer column positions. Pass a list of string column names instead.z=The pyarrow engine does not allow 'usecols' to be a callable.)r   r›   rƒ   rB   ry   )r4   rP   s     r(   r™   z$ArrowParserWrapper._validate_usecols  sO   € Ü×Ñ˜GÔ$¬SÑ0UÈWÔ0UÔ-UÜðPóð ô �gÔÜØOóð ð r*   c           	     ó¤  — t        d«      }t        d«      }| j                  «        | j                  «       }	 |j                  | j                   |j
                  di | j                  ¤Ž |j                  di | j                  ¤Ž|¬«      }| j                  d	k(  r!|j                  g «      j!                  d
d
«      }| j"                  d   }|t$        j&                  u r¡|j(                  } |j*                  «       }t-        |j(                  j.                  «      D ]Q  \  }	}
|j.                  j1                  |
«      sŒ"|j3                  |	|j5                  |	«      j7                  |«      «      }ŒS |j9                  |«      }| j:                  �O| j<                  €C| j?                  |j@                  «      \  }| _!        ||j@                  k7  r|jE                  |«      }| jG                  |«      }tI        | jJ                  tL        «      rQ| j<                  �tO        | j<                  «      }n|j@                  }|D �ci c]  }|| jJ                  |   “Œ c}| _%        tQ        jR                  «       5  tQ        jT                  ddtV        «       tY        ||d| jJ                  | j<                  ¬«      }ddd«       | j<                  �| j<                  _-        | j]                  |«      S # |j                  $ r*}dt        |«      v rt        d«      |‚t        |«      |‚d}~wt        $ r}dt        |«      v rt        d«      |‚‚ d}~ww xY wc c}w # 1 sw Y   ŒŸxY w)zÿ
        Reads the contents of a CSV file into a DataFrame and
        processes it according to the kwargs passed in the
        constructor.

        Returns
        -------
        DataFrame
            The DataFrame created from the CSV file.
        r   r”   )r„   rx   r~   zEmpty CSV filezNo columns to parse from fileNza bytes-like object is requiredzdThe 'pyarrow' engine can only read from a binary file object; the given file was opened in text modeÚemptyr   Údtype_backendÚignorezmake_block is deprecatedT)rÚ   Únull_to_int64r   r‚   r`   )/r	   rŒ   r    Úread_csvr2   ÚReadOptionsr„   ÚParseOptionsrx   ÚArrowInvalidrC   r   r   rE   Úusecols_dtypeÚselectÚslicer1   r   Ú
no_defaultÚschemaÚfloat64r¢   r#   Úis_nullrš   ÚfieldÚ	with_typer   r   r‚   r§   Úcolumn_namesrÀ   Úrename_columnsr°   r   r   r   rH   rX   Úcatch_warningsÚfilterwarningsr   r   r©   rÔ   )r4   r&   rœ   r~   r¬   r�   rÚ   Ú
new_schemaÚnew_typer¦   Ú
arrow_typeÚ	new_namesr®   r©   rn   rÁ   s                   r(   ÚreadzArrowParserWrapper.read   s  € ô (¨	Ó2ˆÜ0°Ó?ˆØ×!Ñ!Ô#Ø×3Ñ3Ó5ˆð	Ø×(Ñ(Ø—‘Ø4˜[×4Ñ4ÑI°t×7HÑ7HÑIØ6˜k×6Ñ6ÑL¸×9KÑ9KÑLØ /ð	 )ó ˆEð. ×Ñ Ò(ð —L‘L Ó$×*Ñ*¨1¨aÓ0ˆEàŸ	™	 /Ñ2ˆð œCŸN™NÑ*ØŸ™ˆJØ!�r—z‘z“|ˆHÜ!*¨5¯<©<×+=Ñ+=Ó!>ò ‘��:Ø—8‘8×#Ñ# JÕ/Ø!+§¡Ø˜:×+Ñ+¨AÓ.×8Ñ8¸ÓBó"‘Jðð —J‘J˜zÓ*ˆEà�;‰;Ð" t§z¡zÐ'9Ø+/×+CÑ+CÀE×DVÑDVÓ+WÑ(ˆI�tÔ(Ø˜E×.Ñ.Ò.Ø×,Ñ,¨YÓ7�à ×5Ñ5°eÓ<Ðä�d—j‘j¤+Ô.ð �z‰zÐ%ä˜tŸz™zÓ*‘à×,Ñ,�Ø:AÖB°3˜#˜tŸz™z¨#™Ñ.ÒBˆDŒJä×$Ñ$Ó&ñ 	Ü×#Ñ#ØØ*Üôô
 *ØØ+Ø"Ø—j‘jØ—j‘jôˆE÷	ð �:‰:Ð!Ø ŸJ™JˆEŒMà×+Ñ+¨EÐ3DÓEÐEøðO �‰ò 	,ð  ¤3 s£8Ñ+Ü$Ð%DÓEÈ3ÐNÜ˜cÓ"¨Ð+ûÜò 	ð 1´C¸³HÑ<ÜðEóð ðð ûð	üòZ C÷	ð 	ús7   ¸AK È5MÉ(A MËL>Ë.%LÌL>ÌL9Ì9L>ÍM)r2   zReadBuffer[bytes]rt   ÚNone)rt   ró   )r‘   r²   rt   r�   )r¤   z	list[str]rt   z$tuple[list[Hashable], set[Hashable]])r¬   zpa.Tablert   r�   )rÁ   r   r®   r�   rt   r   )rÁ   r   rt   r   )rt   r   )rF   Ú
__module__Ú__qualname__Ú__doc__r0   r3   rŒ   r’   r    r§   r°   rÈ   rÎ   rÔ   rÑ   r™   rò   Ú__classcell__)r5   s   @r(   r,   r,   [   sy   ø„ ñõó+6óZd
óLHòð,>Ø"ð>à	-ó>ó*!ó8BóHð>ØðØ37ðà	óó8	ó	÷^Fr*   r,   )rt   zpa.DataType | None)0Ú
__future__r   Úcollectionsr   Útypingr   r   rX   Úpandas._configr   Úpandas._libsr   Úpandas.compat._optionalr	   Úpandas.compat.pyarrowr
   Úpandas.errorsr   r   r   r   Úpandas.util._exceptionsr   Úpandas.core.dtypes.commonr   Úpandas.core.dtypes.dtypesr   Úpandas.core.dtypes.inferencer   Úpandas.core.arrays.arrow.arrayr   Úpandas.io._utilr   Úpandas.io.commonr   Úpandas.io.parsers.base_parserr   r   Úcollections.abcr   r   r&   Úpandas._typingr   Úpandasr   r)   r,   r`   r*   r(   ú<module>r     sr   ðÝ "å #÷ó å -å Ý >Ý 6÷ó õõõ 7Ý 3å :å 1Ý .÷ñ
 Ý(ãå)å ó&ôRcF˜õ cFr*   