Ë
    ômxi¸#  ã                  ój  — d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ  G d„ d«      Z G d„ d	e«      Z G d
„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zej(                  d„ «       Zej(                  d„ «       ZeZeZeZeZegZeegZ ej:                  eej<                  j>                  ej<                  jA                  e d¬«      g¬«      gZ!g e¢e¢e!¢Z"dgZ#ddgZ$dgZ%g e$¢e#¢e%¢Z& ej(                  e"e&¬«      d„ «       Z' ej(                  ee$¬«      d„ «       Z( ej(                  ee#¬«      d„ «       Z) ej(                  e!e%¬«      d„ «       Z*d „ Z+ ej(                   e+«       d!    e+«       d"   ¬«      d#„ «       Z,g d$¢Z-g d%¢Z.d&d'gZ/e.D � �cg c]  } e/D ]	  }|› | › d(�‘Œ Œ c}} Z0 ej(                  e-¬)«      d*„ «       Z1 ej(                  e0¬)«      d+„ «       Z2 ej(                  g d,¢¬)«      d-„ «       Z3ej(                  d.„ «       Z4ej(                  d/„ «       Z5yc c}} w )0é    )ÚannotationsN)ÚHAS_PYARROW)ÚVERSIONS)Úread_csvÚ
read_tablec                  ón   — e Zd ZU dZded<   dZg Zded<   d„ Zd„ Zddd	œ	 	 	 	 	 dd
„Z	d„ Z
ddœ	 	 	 dd„Zy)Ú
BaseParserNz
str | NoneÚengineTzlist[str | None]Úfloat_precision_choicesc                óv   — |j                  «       }|j                  | j                  | j                  dœ«       |S )N)r
   Ú
low_memory)ÚcopyÚupdater
   r   )ÚselfÚkwargss     úV/home/htdocs/ttos/venv/lib/python3.12/site-packages/pandas/tests/io/parser/conftest.pyÚupdate_kwargszBaseParser.update_kwargs   s+   € Ø—‘“ˆØ�‰ §¡¸D¿O¹OÑLÔMàˆó    c                ó:   — | j                  |«      }t        |i |¤ŽS ©N)r   r   ©r   Úargsr   s      r   r   zBaseParser.read_csv   s"   € Ø×#Ñ# FÓ+ˆÜ˜Ð( Ñ(Ð(r   )Úraise_on_extra_warningsÚcheck_stacklevelc               ó˜   — | j                  |«      }t        j                  ||||¬«      5  t        |i |¤Žcd d d «       S # 1 sw Y   y xY w)N)Úmatchr   r   )r   ÚtmÚassert_produces_warningr   )r   Ú	warn_typeÚwarn_msgr   r   r   r   s          r   Úread_csv_check_warningsz"BaseParser.read_csv_check_warnings    sR   € ð ×#Ñ# FÓ+ˆÜ×'Ñ'ØØØ$;Ø-ô	
ñ 	-ô ˜TÐ, VÑ,÷	-÷ 	-ò 	-ús   «A Á A	c                ó:   — | j                  |«      }t        |i |¤ŽS r   )r   r   r   s      r   r   zBaseParser.read_table5   s"   € Ø×#Ñ# FÓ+ˆÜ˜4Ð* 6Ñ*Ð*r   )r   c               ó–   — | j                  |«      }t        j                  |||¬«      5  t        |i |¤Žcd d d «       S # 1 sw Y   y xY w)N)r   r   )r   r   r   r   )r   r   r    r   r   r   s         r   Úread_table_check_warningsz$BaseParser.read_table_check_warnings9   sN   € ð ×#Ñ# FÓ+ˆÜ×'Ñ'Ø˜XÐ?Vô
ñ 	/ô ˜tÐ. vÑ.÷	/÷ 	/ò 	/ús	   ª?¿A)r   útype[Warning]r    Ústrr   Úbool)r   r%   r    r&   )Ú__name__Ú
__module__Ú__qualname__r
   Ú__annotations__r   r   r   r   r!   r   r$   © r   r   r	   r	      sq   … Ø€FˆJÓØ€JØ02ÐÐ-Ó2òò)ð !%Ø!%ñ-à ð-ð ð-ð ó-ò*+ð !%ñ/à ð/ð ô/r   r	   c                  ó   — e Zd ZdZg d¢Zy)ÚCParserÚc)NÚhighÚ
round_tripN©r(   r)   r*   r
   r   r,   r   r   r.   r.   K   s   „ Ø€FÚ:Ñr   r.   c                  ó   — e Zd ZdZy)ÚCParserHighMemoryFN©r(   r)   r*   r   r,   r   r   r4   r4   P   s   „ Ø�Jr   r4   c                  ó   — e Zd ZdZy)ÚCParserLowMemoryTNr5   r,   r   r   r7   r7   T   s   „ Ø�Jr   r7   c                  ó   — e Zd ZdZdgZy)ÚPythonParserÚpythonNr2   r,   r   r   r9   r9   X   s   „ Ø€FØ#˜fÑr   r9   c                  ó   — e Zd ZdZdgZy)ÚPyArrowParserÚpyarrowNr2   r,   r   r   r<   r<   ]   s   „ Ø€FØ#˜fÑr   r<   c                ó   —  | ddd«      S )zG
    The directory path to the data files needed for parser tests.
    ÚioÚparserÚdatar,   ©Údatapaths    r   Úcsv_dir_pathrD   b   s   € ñ
 �D˜( FÓ+Ð+r   c                óR   — t         j                  j                   | ddd«      d«      S )zH
    The path to the data file "test1.csv" needed for parser tests.
    r?   rA   Úcsvz	test1.csv)ÚosÚpathÚjoinrB   s    r   Úcsv1rJ   j   s"   € ô
 �7‰7�<‰<™  v¨uÓ5°{ÓCÐCr   úpyarrow is not installed©Úreason©Úmarksr:   Úc_highÚc_lowr=   ©ÚparamsÚidsc                ó¨   — | j                  «       }|j                  dk(  r2t        j                  dt        d   «       ddl}|j                  d«       |S )z)
    Fixture all of the CSV parsers.
    r=   r   Né   )Úparamr
   ÚpytestÚimportorskipr   r=   Úset_cpu_count)Úrequestr@   r=   s      r   Úall_parsersr\   Œ   sH   € ð
 �]‰]‹_€FØ‡}�}˜	Ò!Ü×Ñ˜I¤x°	Ñ':Ô;ó 	à×Ñ˜aÔ Ø€Mr   c                ó"   — | j                  «       S )z<
    Fixture all of the CSV parsers using the C engine.
    ©rW   ©r[   s    r   Úc_parser_onlyr`   œ   ó   € ð
 �=‰=‹?Ðr   c                ó"   — | j                  «       S )zA
    Fixture all of the CSV parsers using the Python engine.
    r^   r_   s    r   Úpython_parser_onlyrc   ¤   ra   r   c                ó"   — | j                  «       S )zB
    Fixture all of the CSV parsers using the Pyarrow engine.
    r^   r_   s    r   Úpyarrow_parser_onlyre   ¬   ra   r   c                 óÐ  — g } g }t        t        t        «      D ]Ç  \  }}t        |d«      r|j                  d   }|j
                  D ]˜  }|j                  dk(  r@t        j                  j                  t        j                  j                  t         d¬«      gnd}t        j                   |«       |f|¬«      }| j                  |«       |j                  |› d|› �«       Œš ŒÉ | |d	œS )
za
    Return all allowable parser and float precision
    combinations and corresponding ids.
    Úvaluesr   r=   rK   rL   r,   rN   ú-rR   )ÚzipÚ_all_parsersÚ_all_parser_idsÚhasattrrg   r   r
   rX   ÚmarkÚ
single_cpuÚskipifr   rW   Úappend)rS   rT   r@   Ú	parser_idÚ	precisionrm   rW   s          r   Ú,_get_all_parser_float_precision_combinationsrs   ´   sê   € ð
 €FØ
€CÜ ¤¬Ó?ò 3Ñˆ�	Ü�6˜8Ô$à—]‘] 1Ñ%ˆFØ×7Ñ7ò 	3ˆIð —=‘= IÒ-ô —K‘K×*Ñ*Ü—K‘K×&Ñ&Ü'˜Ð0Jð 'ó ñð ð ô —L‘L¡&£(¨IÐ!6¸dÔCˆEØ�M‰M˜%Ô Ø�J‰J˜)˜ A i [Ð1Õ2ñ	3ð	3ð(  SÑ)Ð)r   rS   rT   c                ó   — | j                   S )zR
    Fixture for all allowable combinations of parser
    and float precision
    r^   r_   s    r   Úall_parsers_all_precisionsru   Ò   s   € ð �=‰=Ðr   )é   é   é    )Ú rh   Ú_ÚutfÚUTFz{0})rS   c                ó   — | j                   S )zE
    Fixture for all possible integer values for a UTF encoding.
    r^   r_   s    r   Ú	utf_valuer~   è   ó   € ð
 �=‰=Ðr   c                ó   — | j                   S )zD
    Fixture for all possible string formats of a UTF encoding.
    r^   r_   s    r   Úencoding_fmtr�   ð   r   r   )*)z-1,0ç      ð¿)z-1,2e0g333333ó¿)z-1e0r‚   )z+1e0ç      ð?)z+1e+0rƒ   )z+1e-1çš™™™™™¹?)z+,1e1rƒ   )z+1,e0rƒ   )z-,1e1r‚   )z-1,e0r‚   )z0,1r„   )z1,rƒ   )z,1r„   )z-,1gš™™™™™¹¿)z1_,rƒ   )z1_234,56ç
×£p=J“@)z
1_234,56e0r…   )rz   rz   )ú-_r†   )ú-_1r‡   )ú-_1e0rˆ   )Ú_1r‰   )ú_1,rŠ   )ú_1,_r‹   )Ú_1e0rŒ   )ú1,2e_1r�   )ú1,2e1_0rŽ   )ú1,_2r�   )ú,1__2r�   )ú,1er‘   )ú-,1er’   )ú1_000,000_000r“   )ú1,e1_2r”   )úe11,2r•   )ú1e11,2r–   )ú1,2,2r—   )ú1,2_1r˜   )ú	1,2e-10e1r™   )ú--1,2rš   )ú1a_2,1r›   )z1,2E-1g¸…ëQ¸¾?)z1,2E1g      (@c                ó   — | j                   S )z¨
    Fixture for all numeric formats which should get recognized. The first entry
    represents the value to read while the second represents the expected result.
    r^   r_   s    r   Únumeric_decimalr�   ø   s   € ðh �=‰=Ðr   c                ó  — d| j                   v r| j                  d«      }n$d| j                   v r| j                  d«      d   }ny|j                  dk(  r2t        j                  j                  d¬«      }| j                  |«       yy)z‰
    Fixture that xfails a test if the engine is pyarrow.

    Use if failure is do to unsupported keywords or inconsistent results.
    r\   ru   r   Nr=   zpyarrow doesn't support this.rL   )ÚfixturenamesÚgetfixturevaluer
   rX   rm   ÚxfailÚapplymarker)r[   r@   rm   s      r   Úpyarrow_xfailr£   /  s€   € ð ˜×,Ñ,Ñ,Ø×(Ñ(¨Ó7‰Ø	%¨×)=Ñ)=Ñ	=à×(Ñ(Ð)EÓFÀqÑI‰àØ‡}�}˜	Ò!Ü�{‰{× Ñ Ð(GÐ ÓHˆØ×Ñ˜DÕ!ð "r   c                óØ   — d| j                   v r| j                  d«      }n$d| j                   v r| j                  d«      d   }ny|j                  dk(  rt        j                  d¬«       yy)zƒ
    Fixture that skips a test if the engine is pyarrow.

    Use if failure is do a parsing failure from pyarrow.csv.read_csv
    r\   ru   r   Nr=   z,https://github.com/apache/arrow/issues/38676rL   )rŸ   r    r
   rX   Úskip)r[   r@   s     r   Úpyarrow_skipr¦   B  sg   € ð ˜×,Ñ,Ñ,Ø×(Ñ(¨Ó7‰Ø	%¨×)=Ñ)=Ñ	=à×(Ñ(Ð)EÓFÀqÑI‰àØ‡}�}˜	Ò!Ü�‰ÐIÖJð "r   )6Ú
__future__r   rG   rX   Úpandas.compatr   Úpandas.compat._optionalr   Úpandasr   r   Úpandas._testingÚ_testingr   r	   r.   r4   r7   r9   r<   ÚfixturerD   rJ   Ú_cParserHighMemoryÚ_cParserLowMemoryÚ_pythonParserÚ_pyarrowParserÚ_py_parsers_onlyÚ_c_parsers_onlyrW   rm   rn   ro   Ú_pyarrow_parsers_onlyrj   Ú_py_parser_idsÚ_c_parser_idsÚ_pyarrow_parsers_idsrk   r\   r`   rc   re   rs   ru   Ú_utf_valuesÚ_encoding_sepsÚ_encoding_prefixesÚ_encoding_fmtsr~   r�   r�   r£   r¦   )ÚsepÚprefixs   00r   ú<module>r¾      sø  ðÝ "ã 	ã å %Ý ,÷õ ÷7/ñ 7/ôt;ˆjô ;ô
˜ô ô�wô ô%�:ô %ô
%�Jô %ð
 ‡�ñ,ó ð,ð ‡�ñDó ðDð 'Ð Ø$Ð Ø€Ø€à!�?Ð Ø%Ð'8Ð9€à€F‡L�LØà�K‰K×"Ñ"Ø�K‰K×Ñ ;˜Ð7QÐÓRð
ôðÐ ð M�ÐLÐ#3ÐLÐ6KÐL€à�€Ø˜7Ð#€Ø!�{Ð àJ�MÐJ NÐJÐ5IÐJ€ð €‡��|¨Ô9ñó :ðð €‡��¨MÔ:ñó ;ðð €‡�Ð'¨^Ô<ñó =ðð €‡�Ð,Ð2FÔGñó Hðò*ð< €‡�Ù7Ó9¸(ÑCÙ4Ó6°uÑ=ôñó	ðò €â€Ø˜U�^Ð ð &4÷Ø!ÐBTòØ8>€v€hˆsˆe�5ÒðØó€ð
 €‡��{Ô#ñó $ðð €‡��~Ô&ñó 'ðð €‡�ò,ô.ñ^ó_.ð^ð ‡�ñ"ó ð"ð$ ‡�ñKó ñKùóAs   Æ$H/