Ë
    u™ãj(#  ã                   ó¼  — d Z ddlmZ ddlZddlmZ ddl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c mc mZ  ej(                  ddgd	„ ¬
«      d„ «       ZdddddddœZ G d„ d«      Zd„ Zd„ Zej4                  j7                  dddg«      d„ «       Zej4                  j7                  dddg«      ej4                  j7                  dddg«      d„ «       «       Zd„ Zy)a  
Tests that features that are currently unsupported in
either the Python or C parser are actually enforced
and are clearly communicated to the user.

Ultimately, the goal is to remove test cases from this
test suite as new feature support is added to the parsers.
é    )ÚStringION)ÚPath)ÚPandas4WarningÚParserError)Úread_csvÚpythonz
python-fwfc                 ó   — | S ©N© )Úvals    úr/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/io/parser/test_unsupported.pyú<lambda>r      s   € À€ ó    )ÚparamsÚidsc                 ó   — | j                   S r
   )Úparam)Úrequests    r   Úpython_enginer      s   € à�=‰=Ðr   TF)ÚdayfirstÚiteratorÚ
low_memoryÚ
memory_mapÚ	na_filterÚskipinitialspacec                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestUnsupportedFeaturesc                 ó¤   — d}dD ]=  }t        j                  t        d¬«      5  t        t	        |«      |d¬«       d d d «       Œ? y # 1 sw Y   ŒJxY w)Núa b c
1 2 3)Úcr   zunexpected keyword©ÚmatchT)ÚengineÚmangle_dupe_cols)ÚpytestÚraisesÚ	TypeErrorr   r   )ÚselfÚdatar#   s      r   Útest_mangle_dupe_cols_falsez3TestUnsupportedFeatures.test_mangle_dupe_cols_false.   sV   € àˆà%ò 	OˆFÜ—‘œyÐ0DÔEñ OÜœ $›°ÈÕN÷Oð Oñ	O÷Oð Oús   £AÁA	c           	      ó°  — d}d}t        j                  t        |¬«      5  t        t	        |«      dd¬«       d d d «       t        j                  t        |¬«      5  t        t	        |«      ddt        d«      ¬	«       d d d «       t        j                  t        |¬«      5  t        t	        |«      dd
¬«       d d d «       d}t        j                  t        j                  |¬«      5  t        t	        |«      d¬«       d d d «       d}t        j                  t        j                  |¬«      5  t        t	        |«      dt        d«      ¬«       d d d «       d}t        j                  t        j                  |¬«      5  t        t	        |«      d
¬«       d d d «       d}d}t        j                  t        |¬«      5  t        t	        |«      d¬«       d d d «       t        j                  t        |¬«      5  t        t	        |«      dd¬«       d d d «       d}d}t        j                  t        |¬«      5  t        t	        |«      d¬«       d d d «       t        j                  t        |¬«      5  t        t	        |«      d¬«       d d d «       d}d}t        j                  t        |¬«      5  t        t	        |«      d¬«       d d d «       y # 1 sw Y   �Œ–xY w# 1 sw Y   �Œ^xY w# 1 sw Y   �Œ0xY w# 1 sw Y   �Œ÷xY w# 1 sw Y   �Œ´xY w# 1 sw Y   �Œ{xY w# 1 sw Y   �ŒJxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒêxY w# 1 sw Y   Œ¼xY w# 1 sw Y   y xY w)Nr   zdoes not supportr!   r    z\s)r#   Úsepú	é€   )r#   r,   Ú	quotecharé   )r#   Ú
skipfooterz3the 'c' engine does not support separators > 1 char)r,   z!quotechar is larger than one byte)r,   r/   z*the 'c' engine does not support skipfooter)r1   a                        A       B       C       D        E
one two three   four
a   b   10.0032 5    -0.5109 -2.3358 -0.4645  0.05076  0.3640
a   q   20      4     0.4473  1.4152  0.2834  1.00661  0.1744
x   q   30      3    -0.6662 -0.5243 -0.3580  0.89145  2.5838zError tokenizing dataz\s+z)Only length-1 thousands markers supportedzA|B|C
1|2,334|5
10|13|10.
z,,)Ú	thousandsÚ z(Only length-1 line terminators supportedza,b,c~~1,2,3~~4,5,6z~~)Úlineterminator)r%   r&   Ú
ValueErrorr   r   ÚchrÚtmÚassert_produces_warningÚparsersÚParserWarningr   )r(   r)   ÚmsgÚtexts       r   Útest_c_enginez%TestUnsupportedFeatures.test_c_engine6   s   € àˆØ ˆô �]‰]œ:¨SÔ1ñ 	<Ü”X˜d“^¨C°UÕ;÷	<ä�]‰]œ:¨SÔ1ñ 	OÜ”X˜d“^¨C°TÄSÈÃXÕN÷	Oä�]‰]œ:¨SÔ1ñ 	?Ü”X˜d“^¨C¸AÕ>÷	?ð DˆÜ×'Ñ'¬×(=Ñ(=ÀSÔIñ 	0Ü”X˜d“^¨Õ/÷	0à1ˆÜ×'Ñ'¬×(=Ñ(=ÀSÔIñ 	CÜ”X˜d“^¨¼¸S»ÕB÷	Cà:ˆÜ×'Ñ'¬×(=Ñ(=ÀSÔIñ 	3Ü”X˜d“^°Õ2÷	3ðAˆð
 &ˆä�]‰]œ;¨cÔ2ñ 	1Ü”X˜d“^¨Õ0÷	1ä�]‰]œ;¨cÔ2ñ 	=Ü”X˜d“^¨C°VÕ<÷	=ð :ˆðˆô �]‰]œ:¨SÔ1ñ 	5Ü”X˜d“^¨tÕ4÷	5ä�]‰]œ:¨SÔ1ñ 	3Ü”X˜d“^¨rÕ2÷	3ð 9ˆØ$ˆÜ�]‰]œ:¨SÔ1ñ 	:Ü”X˜d“^°DÕ9÷	:ð 	:÷U	<ñ 	<ú÷	Oñ 	Oú÷	?ñ 	?ú÷
	0ñ 	0ú÷	Cñ 	Cú÷	3ñ 	3ú÷	1ñ 	1ú÷	=ñ 	=ú÷	5ð 	5ú÷	3ð 	3ú÷
	:ð 	:úsƒ    KÁ"KÂ K&Ã'K3Ä-!L Å=LÆ;LÇ5L'È4L4É.M Ê,MËKËK#Ë&K0Ë3K=Ì L
ÌLÌL$Ì'L1Ì4L=Í M	ÍMc                 óv  — ddl m} d}|D ]”  }d|›d|›d�}|t        j                  |t	        «       «      i}|dk(  rt
        nd }t        j                  t        |¬«      5  t        j                  |dd	¬
«      5  t        t        |«      fd|i|¤Ž d d d «       d d d «       Œ– y # 1 sw Y   ŒxY w# 1 sw Y   Œ­xY w)Nr   )Ú_python_unsupportedz*1,2,3,,
1,2,3,4,
1,2,3,4,5
1,2,,,
1,2,3,4,úThe z" option is not supported with the z engineÚfloat_precisionr!   F©r"   Úcheck_stacklevelr#   )Úpandas.io.parsers.readersr?   Ú_non_default_boolsÚgetÚobjectr   r%   r&   r5   r7   r8   r   r   )r(   r   Úpy_unsupportedr)   Údefaultr;   ÚkwargsÚwarns           r   Útest_python_enginez*TestUnsupportedFeatures.test_python_enginei   sÜ   € ÝSðˆð &ò 	MˆGà�w�kð "&Ø&3Ð%6°gð?ð ð
 Ô1×5Ñ5°g¼v»xÓHÐIˆFØ%,Ð0AÒ%A•>ÀtˆDÜ—‘œz°Ô5ñ MÜ×/Ñ/ØÐ 1ÀEôñ Mô œX d›^ÑL°MÐLÀVÒL÷M÷Mð Mñ	M÷Mð Mú÷Mð Mús$   ÁB/Á8B#ÂB/Â#B,Â(B/Â/B8	c                 óÈ   —  G d„ d«      }d}dj                  ddg«      }t        j                  t        |¬«      5  t	         ||«      |¬«       d d d «       y # 1 sw Y   y xY w)	Nc                   ó&   — e Zd Zdd„Zd„ Zd„ Zd„ Zy)úMTestUnsupportedFeatures.test_python_engine_file_no_iter.<locals>.NoNextBufferNc                 ó   — || _         y r
   ©r)   )r(   Úcsv_datas     r   Ú__init__zVTestUnsupportedFeatures.test_python_engine_file_no_iter.<locals>.NoNextBuffer.__init__ƒ   s	   € Ø$�•	r   c                 ó6   — | j                   j                  «       S r
   )r)   Ú__next__©r(   s    r   rU   zVTestUnsupportedFeatures.test_python_engine_file_no_iter.<locals>.NoNextBuffer.__next__†   s   € Ø—y‘y×)Ñ)Ó+Ð+r   c                 ó   — | j                   S r
   rQ   rV   s    r   ÚreadzRTestUnsupportedFeatures.test_python_engine_file_no_iter.<locals>.NoNextBuffer.read‰   ó   € Ø—y‘yÐ r   c                 ó   — | j                   S r
   rQ   rV   s    r   ÚreadlinezVTestUnsupportedFeatures.test_python_engine_file_no_iter.<locals>.NoNextBuffer.readlineŒ   rY   r   )ÚreturnN)Ú__name__Ú
__module__Ú__qualname__rS   rU   rX   r[   r   r   r   ÚNoNextBufferrO   ‚   s   „ ó%ò,ò!ó!r   r`   za
1ú|z%'NoNextBuffer' object is not iterablezargument 1 must be an iteratorr!   )r#   )Újoinr%   r&   r'   r   )r(   r   r`   r)   r;   s        r   Útest_python_engine_file_no_iterz7TestUnsupportedFeatures.test_python_engine_file_no_iter€   s^   € ÷	!ñ 	!ð ˆØ�h‰hØ4Ð6VÐWó
ˆô �]‰]œ9¨CÔ0ñ 	?Ü‘\ $Ó'°Õ>÷	?÷ 	?ñ 	?ús   »AÁA!c                 óš  — ddl m} d}|D ]¦  }d|›d�}|t        j                  |t	        «       «      i}|dk(  rd||<   n
|dk(  rd	||<   |d
k(  rt
        nd }t        j                  t        |¬«      5  t        j                  |d
d¬«      5  t        t        |«      fddi|¤Ž d d d «       d d d «       Œ¨ y # 1 sw Y   ŒxY w# 1 sw Y   Œ¿xY w)Nr   )Ú_pyarrow_unsupportedzJ1,2,3,,
        1,2,3,4,
        1,2,3,4,5
        1,2,,,
        1,2,3,4,r@   z2 option is not supported with the 'pyarrow' engineÚdialectÚexcelÚon_bad_linesrK   rA   r!   FrB   r#   Úpyarrow)rD   re   rE   rF   rG   r   r%   r&   r5   r7   r8   r   r   )r(   Úpa_unsupportedr)   rI   r;   rJ   rK   s          r   Útest_pyarrow_enginez+TestUnsupportedFeatures.test_pyarrow_engine—   sí   € ÝTðˆð &ò 	IˆGØ˜˜Ð#UÐVˆCØÔ1×5Ñ5°g¼v»xÓHÐIˆFØ˜)Ò#Ø")��w’Ø˜NÒ*Ø"(��w‘à%,Ð0AÒ%A•>ÀtˆDÜ—‘œz°Ô5ñ IÜ×/Ñ/ØÐ 1ÀEôñ Iô œX d›^ÑH°IÐHÀÒH÷I÷Ið Iñ	I÷Ið Iú÷Ið Iús$   Á1CÂ
B5Â"CÂ5B>Â:CÃC
	c                 óò   — t        d«      }d„ }|}|j                  dvr:d}t        j                  t        |¬«      5  |j                  ||¬«       d d d «       y |j                  ||¬«       y # 1 sw Y   y xY w)Nza,b
1,2c                 ó   — | S r
   r   )Úxs    r   r   zVTestUnsupportedFeatures.test_on_bad_lines_callable_python_or_pyarrow.<locals>.<lambda>³   s   €  1€ r   )r   ri   zKon_bad_line can only be a callable function if engine='python' or 'pyarrow'r!   )rh   )r   r#   r%   r&   r5   r   )r(   Úall_parsersÚsioÚbad_lines_funcÚparserr;   s         r   Ú,test_on_bad_lines_callable_python_or_pyarrowzDTestUnsupportedFeatures.test_on_bad_lines_callable_python_or_pyarrow¯   s‚   € ô �zÓ"ˆÙ$ˆØˆØ×ÑÐ%:Ñ:ð;ð ô —‘œz°Ô5ñ BØ—‘ °.�ÔA÷Bð Bð �O‰O˜C¨nˆOÕ=÷Bð Bús   ¼A-Á-A6N)	r]   r^   r_   r*   r=   rL   rc   rk   rs   r   r   r   r   r   -   s$   „ òOò1:òfMò.?ò.Ió0>r   r   c                 óš  — | }t         }|j                  dk(  rt        j                  d¬«       |}t	        |«      j                  dd¬«       t        j                  d«      5  t        j                  |d¬	«      5  |j                  |g d
¢¬«       d d d «       d d d «       t        j                  |«       y # 1 sw Y   Œ'xY w# 1 sw Y   Œ+xY w)Nri   z,https://github.com/apache/arrow/issues/38676©Úreasonzcol1,col2
a,b
1,2zutf-8)ÚencodingFÚcol3r!   )Úcol1Úcol2rx   )Úusecols)r5   r#   r%   Úskipr   Ú
write_textr7   r8   r&   r   ÚosÚunlink)ro   Ú	temp_filerr   ÚerrorÚfnames        r   Ú)test_close_file_handle_on_invalid_usecolsrƒ   À   s¯   € à€Fä€EØ‡}�}˜	Ò!ä�‰ÐIÕJà€EÜˆƒK×ÑÐ0¸7ÐÔCÜ	×	#Ñ	# EÓ	*ñ EÜ�]‰]˜5¨Ô/ñ 	EØ�O‰O˜EÒ+CˆOÔD÷	E÷Eô ‡I�IˆeÕ÷	Eð 	Eú÷Eð Eús$   Á!CÁ9B5ÂCÂ5B>	Â:CÃC
c                 ó   — |}|j                   dk(  r<| j                  t        j                  j	                  |j                   › d�¬«      «       t        j
                  t        d¬«      5  |j                  g «       d d d «       y # 1 sw Y   y xY w)Nr   z engine supports lists.ru   ÚInvalidr!   )r#   Úapplymarkerr%   ÚmarkÚxfailr&   r5   r   )r   ro   rr   s      r   Útest_invalid_file_inputsr‰   Ò   ss   € à€FØ‡}�}˜Ò Ø×ÑÜ�K‰K×Ñ¨¯© Ð6MÐ%NÐÓOô	
ô 
�‰”z¨Ô	3ñ Ø�‰˜Ô÷÷ ñ ús   Á)BÂBÚkeyr,   Ú	delimiterc                 ó¼  — d}t        j                  dgdgdœ«      }t        j                  t        j
                  d¬«      5  t        t        |«      fi | d i¤Ž}d d d «       t        j                  |«       t        j                  d «      5  t        t        |«      fddi| d i¤Ž}d d d «       t        j                  ||«       y # 1 sw Y   ŒmxY w# 1 sw Y   Œ,xY w)	Núa;b
1;2
r0   é   )ÚaÚbzsep=Noner!   r#   r   )	ÚpdÚ	DataFramer7   r8   r9   r:   r   r   Úassert_frame_equal)rŠ   r)   ÚexpectedÚresults       r   Ú)test_sep_none_falls_back_to_python_enginer–   Þ   sÅ   € ð €DÜ�|‰| 1 #¨Q¨CÑ0Ó1€Hä	×	#Ñ	#¤G×$9Ñ$9ÀÔ	Lñ 9Üœ( 4›.Ñ8¨S°$¨KÑ8ˆ÷9ä×Ñ˜& (Ô+ä	×	#Ñ	# DÓ	)ñ JÜœ( 4›.ÑI°ÐI¸cÀ4¸[ÑIˆ÷Jä×Ñ˜& (Õ+÷9ð 9ú÷Jð Jús   ÁCÂCÃCÃCr#   r    ri   c                 ó¢   — d| › d�}t        j                  t        |¬«      5  t        t	        d«      fd| i|d i¤Ž d d d «       y # 1 sw Y   y xY w)Nzthe 'z"' engine does not support sep=Noner!   r�   r#   )r%   r&   r5   r   r   )r#   rŠ   r;   s      r   Ú$test_sep_none_explicit_engine_raisesr˜   î   sU   € ð
 �&�Ð;Ð
<€Cä	�‰”z¨Ô	-ñ GÜ”˜,Ó'ÑF°ÐF¸3À¸+ÒF÷G÷ Gñ Gús   ¢AÁAc                 ó’   — | }d}t        j                  t        |¬«      5  |j                  dd¬«       d d d «       y # 1 sw Y   y xY w)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r!   ÚtestÚnumpy)Údtype_backend)r%   r&   r5   r   )ro   rr   r;   s      r   Útest_invalid_dtype_backendr�   ù   sF   € Ø€Fð	!ð ô 
�‰”z¨Ô	-ñ 7Ø�‰˜¨gˆÔ6÷7÷ 7ñ 7ús	    =½A)Ú__doc__Úior   r~   Úpathlibr   r%   Úpandas.errorsr   r   Úpandasr‘   Úpandas._testingÚ_testingr7   Úpandas.io.parsersr   rD   r9   ÚreadersÚfixturer   rE   r   rƒ   r‰   r‡   Úparametrizer–   r˜   r�   r   r   r   ú<module>r©      s  ðñõ Û 	Ý ã ÷ó
 Ý å &ß +Ó +ð €‡�˜ ,Ð/±_ÔEñó Fðð ØØØØØñÐ ÷P>ñ P>òfò$	ð ‡�×Ñ˜ ¨Ð 4Ó5ñ,ó 6ð,ð ‡�×Ñ˜ ¨Ð 4Ó5Ø‡�×Ñ˜ C¨Ð#3Ó4ñGó 5ó 6ðGó7r   