Ë
    ômxiŒ  ã            
       óÚ  — d Z ddlZddlmZ ddlZddlmZmZ ddlm	Z	 ddl
mZ ddlmZ ej                  j!                  d«      Zej                  j%                  d«      Zej                  j%                  d	«      Zerd
ZdZndZdZej                  j/                  dddide› �fdej0                  dœdfddide› d�fg«      ed„ «       «       Zej                  j/                  dddg«      ed„ «       «       Zd„ Zej                  j/                  dg d¢«      d„ «       Zeej                  j/                  dej0                  ej:                  g«      ej                  j/                  dd
dg«      d „ «       «       «       Zej                  j/                  d!i g d"¢gfd#ej0                  dœg d"¢gfd#ej>                  dœg d"¢gfd#ej:                  dœg d$¢gfd#ej@                  dœg d%¢gfg«      ed&„ «       «       Z!ej                  j/                  d'd(d)d*ggfd+d)d,ggfg«      d-„ «       Z"ej                  j/                  dd#d.g«      d/„ «       Z#ej                  j/                  d0d(d+g«      d1„ «       Z$y)2zt
Tests that quoting specifications are properly handled
during parsing for all of the parsers defined in parsers.py
é    N)ÚStringIO)ÚPY311ÚPY314)ÚParserError)Ú	DataFramez=ignore:Passing a BlockManager to DataFrame:DeprecationWarningÚpyarrow_xfailÚpyarrow_skipÚ z[\s\S]*za(n)? 1-character stringzstring( or None)?z
kwargs,msgÚ	quotecharÚfooz"quotechar" must be ©r   Úquotingú(quotechar must be set if quoting enabledé   z	, not intc                 ó¤   — d}| }t        j                  t        |¬«      5   |j                  t	        |«      fi |¤Ž d d d «       y # 1 sw Y   y xY w)Nú1,2,3©Úmatch©ÚpytestÚraisesÚ	TypeErrorÚread_csvr   )Úall_parsersÚkwargsÚmsgÚdataÚparsers        úZ/home/htdocs/ttos/venv/lib/python3.12/site-packages/pandas/tests/io/parser/test_quoting.pyÚtest_bad_quote_charr    $   sH   € ð €DØ€Fä	�‰”y¨Ô	,ñ 2Øˆ�‰œ ›Ñ1¨&Ò1÷2÷ 2ñ 2úó    AÁAzquoting,msg)r   z%"quoting" must be an integer|Argument)é
   zbad "quoting" valuec                 ó¤   — d}| }t        j                  t        |¬«      5  |j                  t	        |«      |¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   )r   r   )r   r   r   r   r   s        r   Útest_bad_quotingr$   8   sE   € ð €DØ€Fä	�‰”y¨Ô	,ñ 9Ø�‰œ ›°ˆÔ8÷9÷ 9ñ 9úr!   c                 ó”   — | }d}t        g d¢gg d¢¬«      }|j                  t        |«      d¬«      }t        j                  ||«       y )Núa,b,c
1,2,"cat"©é   r   Úcat©ÚaÚbÚc©Úcolumnsú"©r   ©r   r   r   ÚtmÚassert_frame_equal)r   r   r   ÚexpectedÚresults        r   Útest_quote_char_basicr7   H   s@   € Ø€FØ€DÜš-˜²/ÔB€Hà�_‰_œX d›^°sˆ_Ó;€FÜ×Ñ˜& (Õ+ó    Ú
quote_char)ú~Ú*ú%ú$ú@ÚPc                 ó¸   — | }t        g d¢gg d¢¬«      }d}|j                  d|«      }|j                  t        |«      |¬«      }t	        j
                  ||«       y )Nr'   r*   r.   r&   r0   r1   )r   Úreplacer   r   r3   r4   )r   r9   r   r5   r   Únew_datar6   s          r   Útest_quote_char_variousrC   Q   sQ   € à€FÜš-˜²/ÔB€Hà€DØ�|‰|˜C Ó,€Hà�_‰_œX hÓ/¸:ˆ_ÓF€FÜ×Ñ˜& (Õ+r8   r   c                 óâ  — ||dœ}d}| }|t         j                  k7  rmt        sd}nd}t        r| j                  dk(  r
|dk(  rd|› �nd}t        j                  t        |¬	«      5   |j                  t        |«      fi |¤Ž d d d «       y t        r| j                  dk(  sEt        g d
¢gg d¢¬«      } |j                  t        |«      fi |¤Ž}t        j                  ||«       y y # 1 sw Y   y xY w)Nr   za,b,c
1,2,3z1-character stringzunicode character or NoneÚpythonr
   z"quotechar" must be a r   r   ©r(   r   é   r*   r.   )ÚcsvÚ
QUOTE_NONEr   r   Úenginer   r   r   r   r   r   r3   r4   )	r   r   r9   r   r   r   r   r5   r6   s	            r   Útest_null_quote_charrK   ]   së   € ð &°'Ñ:€FØ€DØ€Fà”#—.‘.Ò åØ&‰Cà-ˆCõ ˜×+Ñ+¨xÒ7¸JÈ"Ò<Lð % S EÑ*à;ð 	ô �]‰]œ9¨CÔ0ñ 	6ØˆF�O‰OœH T›NÑ5¨fÒ5÷	6ð 	6å˜×*Ñ*¨hÒ6äši˜[²/ÔBˆØ �—‘¤¨$£Ñ:°6Ñ:ˆÜ
×Ñ˜f hÕ/ð	 7÷	6ð 	6ús   Á$C%Ã%C.zkwargs,exp_data)r(   r   r   r0   )r(   r   z"foo")g      ð?g       @r   c                 ó–   — d}| }g d¢} |j                   t        |«      fd|i|¤Ž}t        ||¬«      }t        j                  ||«       y )Nz	1,2,"foo"r*   Únamesr.   )r   r   r   r3   r4   )r   r   Úexp_datar   r   r/   r6   r5   s           r   Útest_quoting_variousrO   z   sM   € ð$ €DØ€FÚ€GàˆV�_‰_œX d›^ÑE°7ÐE¸fÑE€FÜ˜¨7Ô3€HÜ×Ñ˜& (Õ+r8   zdoublequote,exp_dataTrG   z4 " 5Fz4 " 5"c                 ó  — | }d}|j                   dk(  r3|s1t        j                  j                  d¬«      }|j	                  |«       |j                  t        |«      d|¬«      }t        |ddg¬	«      }t        j                  ||«       y )
Nza,b
3,"4 "" 5"ÚpyarrowúMismatched result©Úreasonr0   )r   Údoublequoter+   r,   r.   )
rJ   r   ÚmarkÚxfailÚapplymarkerr   r   r   r3   r4   )	r   rU   rN   Úrequestr   r   rV   r6   r5   s	            r   Útest_double_quoterZ   •   sz   € ð €FØ€Dà‡}�}˜	Ò!©+Ü�{‰{× Ñ Ð(;Ð Ó<ˆØ×Ñ˜DÔ!à�_‰_œX d›^°sÈˆ_ÓT€FÜ˜¨C°¨:Ô6€HÜ×Ñ˜& (Õ+r8   úc                 óŒ   — d}| }t        ddgi«      }|j                  t        |«      |¬«      }t        j                  ||«       y )Nza
1r+   r(   r1   r2   )r   r   r   r   r5   r6   s         r   Útest_quotechar_unicoder]   ¥   sD   € ð €DØ€FÜ˜# ˜s˜Ó$€Hà�_‰_œX d›^°yˆ_ÓA€FÜ×Ñ˜& (Õ+r8   Úbalancedc                 óÚ  — | }d}|j                   dk(  r3|s1t        j                  j                  d¬«      }|j	                  |«       |rFt        g d¢gg d¢¬«      }|j                  t        |dz   «      «      }t        j                  ||«       y |j                   d	k(  rd
nd}t        j                  t        |¬«      5  |j                  t        |«      «       d d d «       y # 1 sw Y   y xY w)Nza,b,c
1,2,"3rQ   rR   rS   rF   r*   r.   r0   r-   z#EOF inside string starting at row 1zunexpected end of datar   )rJ   r   rV   rW   rX   r   r   r   r3   r4   r   r   )	r   r^   rY   r   r   rV   r5   r6   r   s	            r   Útest_unbalanced_quotingr`   °   sÊ   € ð €FØ€Dà‡}�}˜	Ò!©(Ü�{‰{× Ñ Ð(;Ð Ó<ˆØ×Ñ˜DÔ!áäši˜[²/ÔBˆØ—‘¤¨$°©*Ó!5Ó6ˆÜ
×Ñ˜f hÕ/ð �}‰} Ò#ñ 2à)ð 	ô �]‰]œ;¨cÔ2ñ 	,Ø�O‰OœH T›NÔ+÷	,÷ 	,ñ 	,ús   Â=C!Ã!C*)%Ú__doc__rH   Úior   r   Úpandas.compatr   r   Úpandas.errorsr   Úpandasr   Úpandas._testingÚ_testingr3   rV   ÚfilterwarningsÚ
pytestmarkÚusefixturesÚxfail_pyarrowÚskip_pyarrowÚMSG1ÚMSG2ÚparametrizeÚQUOTE_MINIMALr    r$   r7   rC   rI   rK   Ú	QUOTE_ALLÚQUOTE_NONNUMERICrO   rZ   r]   r`   © r8   r   ú<module>rt      sä  ðñó
 Ý ã ÷õ &å Ý à�[‰[×'Ñ'ØCó€
ð —‘×'Ñ'¨Ó8€Ø�{‰{×&Ñ& ~Ó6€ñ 	à€DØ�Dà%€DØ€Dð ‡�×ÑØà
�uÐ	Ð!5°d°VÐ<Ð=à¨3×+<Ñ+<Ñ=Ø6ð	
ð �qÐ	Ð1°$°°yÐAÐBðó
ð ñ2ó ó
ð2ð ‡�×ÑØà8Ø#ðóð ñ9ó óð9ò,ð ‡�×Ñ˜Ò'EÓFñ,ó Gð,ð Ø‡�×Ñ˜ S×%6Ñ%6¸¿¹Ð$GÓHØ‡�×Ñ˜¨¨D zÓ2ñ0ó 3ó Ió ð0ð4 ‡�×ÑØà	Šmˆ_Ðà s×'8Ñ'8Ñ	9ºM¸?ÐKà s§}¡}Ñ	5º°ÐGð  s§~¡~Ñ	6ºÐ8IÐJð  s×';Ñ';Ñ	<Ò?PÐ>QÐRðóð  ñ,ó ó!ð",ð ‡�×ÑØ˜d a¨ \ NÐ3°e¸qÀ(¸m¸_Ð5MÐNóñ
,óð
,ð ‡�×Ñ˜ s¨H oÓ6ñ,ó 7ð,ð ‡�×Ñ˜ d¨E ]Ó3ñ,ó 4ñ,r8   