Ë
    ¤eh2  ã                   ó  — 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 ddl	m
Z ddlmZ ddlmc mc mZ ej"                  j%                  d«      Z ej(                  dd	gd
„ ¬«      d„ «       Z G d„ d«      Zd„ Z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)ÚParserError)Úread_csvz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningÚpythonz
python-fwfc                 ó   — | S ©N© )Úvals    úe/var/www/skyplay_api_hub/venv/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   c                   ó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}d}t        j                  t        |¬«      5  t        j                  t
        |¬«      5  t        t        |«      dd d¬«       d d d «       d 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 «       t        j                  t        j                  t
        f«      5  t        t        |«      d d¬«       d d d «       t        j                  t        j                  «      5  t        t        |«      d¬«       d d d «       t        j                  t        j                  «      5  t        t        |«      d
t        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   �ŒíxY w# 1 sw Y   �ŒµxY w# 1 sw Y   �Œ‡xY w# 1 sw Y   �ŒKx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   �ŒqxY w# 1 sw Y   �ŒCx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 supportú;The 'delim_whitespace' keyword in pd.read_csv is deprecatedr   r   F)r   ÚsepÚdelim_whitespacez\s)r   r&   ú	é€   )r   r&   Ú	quotecharé   )r   Ú
skipfooter)r&   r'   )r&   )r&   r*   )r,   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   Ú
ValueErrorÚtmÚassert_produces_warningÚFutureWarningr   r   ÚchrÚparsersÚParserWarningr   )r!   r"   ÚmsgÚdepr_msgÚtexts        r   Útest_c_enginez%TestUnsupportedFeatures.test_c_engine)   s6  € àˆØ ˆàPˆô �]‰]œ:¨SÔ1ñ 	WÜ×+Ñ+¬MÀÔJñ WÜœ $›°¸ÐPUÕV÷W÷	Wô �]‰]œ:¨SÔ1ñ 	<Ü”X˜d“^¨C°UÕ;÷	<ä�]‰]œ:¨SÔ1ñ 	OÜ”X˜d“^¨C°TÄSÈÃXÕN÷	Oä�]‰]œ:¨SÔ1ñ 	?Ü”X˜d“^¨C¸AÕ>÷	?ô ×'Ñ'¬×)>Ñ)>ÄÐ(NÓOñ 	GÜ”X˜d“^¨ÀÕF÷	Gä×'Ñ'¬×(=Ñ(=Ó>ñ 	0Ü”X˜d“^¨Õ/÷	0ä×'Ñ'¬×(=Ñ(=Ó>ñ 	CÜ”X˜d“^¨¼¸S»ÕB÷	Cä×'Ñ'¬×(=Ñ(=Ó>ñ 	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÷	:ð 	:÷WWñ Wú÷	Wñ 	Wú÷	<ñ 	<ú÷	Oñ 	Oú÷	?ñ 	?ú÷	Gñ 	Gú÷	0ñ 	0ú÷	Cñ 	Cú÷	3ñ 	3ú÷	1ñ 	1ú÷	=ñ 	=ú÷	5ñ 	5ú÷	3ð 	3ú÷
	:ð 	:ús²   ¢M8¾M+ÁM8ÂNÂ="NÄNÅN,ÆN9Ç!OÈOÉO ÊO-ËO:ÌPÍPÍ+M5	Í0M8Í8NÎNÎNÎN)Î,N6Î9OÏOÏOÏ O*Ï-O7Ï:PÐPÐPc                 óþ   — ddl m} d}|D ]d  }dt        |«      › dt        |«      › d�}|t        «       i}t	        j
                  t        |¬«      5  t        t        |«      fd|i|¤Ž d d d «       Œf y # 1 sw Y   Œqx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 enginer   r   )	Úpandas.io.parsers.readersr<   ÚreprÚobjectr   r   r0   r   r   )r!   r   Úpy_unsupportedr"   Údefaultr7   Úkwargss          r   Útest_python_enginez*TestUnsupportedFeatures.test_python_engine`   s˜   € ÝSðˆð &ò 	IˆGà”t˜G“}�oð &&Ü&*¨=Ó&9Ð%:¸'ðCð ð
 œv›xÐ(ˆFÜ—‘œz°Ô5ñ IÜœ $›ÑH°ÐHÀÒH÷Ið Iñ	I÷Ið Iús   ÁA3Á3A<	c                 ó¦   —  G d„ d«      }d}d}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__v   s	   € Ø$�•	r   c                 ó6   — | j                   j                  «       S r	   )r"   Ú__next__©r!   s    r   rM   zVTestUnsupportedFeatures.test_python_engine_file_no_iter.<locals>.NoNextBuffer.__next__y   s   € Ø—y‘y×)Ñ)Ó+Ð+r   c                 ó   — | j                   S r	   rI   rN   s    r   ÚreadzRTestUnsupportedFeatures.test_python_engine_file_no_iter.<locals>.NoNextBuffer.read|   ó   € Ø—y‘yÐ r   c                 ó   — | j                   S r	   rI   rN   s    r   ÚreadlinezVTestUnsupportedFeatures.test_python_engine_file_no_iter.<locals>.NoNextBuffer.readline   rQ   r   )ÚreturnN)Ú__name__Ú
__module__Ú__qualname__rK   rM   rP   rS   r
   r   r   ÚNoNextBufferrG   u   s   „ ó%ò,ò!ó!r   rX   za
1zD'NoNextBuffer' object is not iterable|argument 1 must be an iteratorr   )r   )r   r   r    r   )r!   r   rX   r"   r7   s        r   Útest_python_engine_file_no_iterz7TestUnsupportedFeatures.test_python_engine_file_no_iters   sJ   € ÷	!ñ 	!ð ˆØTˆä�]‰]œ9¨CÔ0ñ 	?Ü‘\ $Ó'°Õ>÷	?÷ 	?ñ 	?ús   ªAÁAc                 ó¼  — ddl m} d}|D ]·  }dt        |«      › d�}|t        «       i}ddh}|dk(  rd	||<   n||v rd
||<   n
|dk(  rd||<   d }d }d|v rd}t        }d|v rd}t        }t        j                  t        |¬«      5  t        j                  ||¬«      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Úwarn_bad_linesÚerror_bad_linesÚdialectÚexcelTÚon_bad_linesÚwarnr'   r%   Úverbosez2The 'verbose' keyword in pd.read_csv is deprecatedr   r   Úpyarrow)r>   r[   r?   r@   r3   r   r   r0   r1   r2   r   r   )	r!   Úpa_unsupportedr"   rB   r7   rC   Údefault_needs_boolra   r8   s	            r   Útest_pyarrow_enginez+TestUnsupportedFeatures.test_pyarrow_engineˆ   s!  € ÝTðˆð &ò 	IˆGà”t˜G“}�oð &6ð 7ð ð œv›xÐ(ˆFØ"2Ð4EÐ!FÐØ˜)Ò#Ø")��w’ØÐ.Ñ.Ø"&��w’Ø˜NÒ*Ø"(��w‘àˆDØˆHØ! VÑ+ØX�Ü$�Ø˜FÑ"ØO�Ü$�ä—‘œz°Ô5ñ IÜ×/Ñ/°¸HÔEñ IÜœX d›^ÑH°IÐHÀÒH÷I÷Ið Iñ/	I÷0Ið Iú÷Ið Iús$   ÂCÂCÂ3CÃCÃ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   rc   zKon_bad_line can only be a callable function if engine='python' or 'pyarrow'r   )r`   )r   r   r   r   r0   r   )r!   Úall_parsersÚsioÚbad_lines_funcÚparserr7   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)	rU   rV   rW   r#   r:   rD   rY   rf   rn   r
   r   r   r   r       s%   „ òOò5:ònIò&?ò*"IóH>r   r   c                 óê  — | }t         }|j                  dk(  rt        j                  d¬«       t	        j
                  d«      5 }t        |«      j                  dd¬«       t	        j                  d«      5  t        j                  |d	¬
«      5  |j                  |g d¢¬«       d d d «       d d d «       t        j                  |«       d d d «       y # 1 sw Y   Œ/xY w# 1 sw Y   Œ3xY w# 1 sw Y   y xY w)Nrc   z,https://github.com/apache/arrow/issues/38676©Úreasonztest.csvzcol1,col2
a,b
1,2zutf-8)ÚencodingFÚcol3r   )Úcol1Úcol2rs   )Úusecols)r0   r   r   Úskipr1   Úensure_cleanr   Ú
write_textr2   r   r   ÚosÚunlink)rj   rm   ÚerrorÚfnames       r   Ú)test_close_file_handle_on_invalid_usecolsr~   ½   sÒ   € à€Fä€EØ‡}�}˜	Ò!ä�‰ÐIÕJä	�‰˜Ó	$ð ¨ÜˆU‹×ÑÐ4¸wÐÔGÜ×'Ñ'¨Ó.ñ 	IÜ—‘˜u¨FÔ3ñ IØ—‘ Ò/G�ÔH÷I÷	Iô 	�	‰	�%Ô÷ð ÷Ið Iú÷	Ið 	Iú÷ð ús<   Á2C)Á5CÂCÂ#CÂ+C)ÃCÃCÃC&	Ã"C)Ã)C2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.rp   ÚInvalidr   )r   Úapplymarkerr   ÚmarkÚxfailr   r0   r   )r   rj   rm   s      r   Útest_invalid_file_inputsr„   Ï   ss   € à€FØ‡}�}˜Ò Ø×ÑÜ�K‰K×Ñ¨¯© Ð6MÐ%NÐÓOô	
ô 
�‰”z¨Ô	3ñ Ø�‰˜Ô÷÷ ñ ús   Á)BÂB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   r0   r   )rj   rm   r7   s      r   Útest_invalid_dtype_backendr‰   Û   sF   € Ø€Fð	!ð ô 
�‰”z¨Ô	-ñ 7Ø�‰˜¨gˆÔ6÷7÷ 7ñ 7ús	    =½A)Ú__doc__Úior   rz   Úpathlibr   r   Úpandas.errorsr   Úpandas._testingÚ_testingr1   Úpandas.io.parsersr   r>   r5   Úreadersr‚   ÚfilterwarningsÚ
pytestmarkÚfixturer   r   r~   r„   r‰   r
   r   r   ú<module>r•      s�   ðñõ Û 	Ý ã å %å å &ß +Ó +à�[‰[×'Ñ'ØCó€
ð
 €‡�˜ ,Ð/±_ÔEñó Fð÷Z>ñ Z>òzò$	ó7r   