Ë
    ž…jX  ã            
       óÖ  — d 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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j.                  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j.                  ej8                  g«      ej                  j-                  dd
dg«      d „ «       «       «       Zej                  j-                  d!i g d"¢gfd#ej.                  dœg d"¢gfd#ej<                  dœg d"¢gfd#ej8                  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)Ú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        úd/root/aria/tools/markitdown-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#   5   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_basicr6   E   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%   r/   r0   )r   Úreplacer   r   r2   r3   )r   r8   r   r4   r   Únew_datar5   s          r   Útest_quote_char_variousrB   N   sQ   € à€FÜš-˜²/ÔB€Hà€DØ�|‰|˜C Ó,€Hà�_‰_œX hÓ/¸:ˆ_ÓF€FÜ×Ñ˜& (Õ+r7   r   c                 óÊ  — ||dœ}d}| }|t         j                  k7  rgt        sd}nd}| j                  dk(  r
|dk(  rd|› �nd}t	        j
                  t        |¬	«      5   |j                  t        |«      fi |¤Ž d d d «       y | j                  dk7  rEt        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   Úenginer   r   r   r   r   r   r2   r3   )	r   r   r8   r   r   r   r   r4   r5   s	            r   Útest_null_quote_charrJ   Z   sç   € ð &°'Ñ:€FØ€DØ€Fà”#—.‘.Ò åØ&‰Cà-ˆCð ×!Ñ! XÒ-°*ÀÒ2Bð % S EÑ*à;ð 	ô �]‰]œ9¨CÔ0ñ 	6ØˆF�O‰OœH T›NÑ5¨fÒ5÷	6ð 	6à	×	Ñ	˜xÒ	'äši˜[²/ÔBˆØ �—‘¤¨$£Ñ:°6Ñ:ˆÜ
×Ñ˜f hÕ/ð	 
(÷	6ð 	6ús   ÁCÃC"zkwargs,exp_data)r'   r   r   r/   )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   r2   r3   )r   r   Úexp_datar   r   r.   r5   r4   s           r   Útest_quoting_variousrN   w   sM   € ð$ €DØ€FÚ€GàˆV�_‰_œX d›^ÑE°7ÐE¸fÑE€FÜ˜¨7Ô3€HÜ×Ñ˜& (Õ+r7   zdoublequote,exp_dataTrF   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©Úreasonr/   )r
   Údoublequoter*   r+   r-   )
rI   r   ÚmarkÚxfailÚapplymarkerr   r   r   r2   r3   )	r   rT   rM   Úrequestr   r   rU   r5   r4   s	            r   Útest_double_quoterY   ’   sz   € ð €FØ€Dà‡}�}˜	Ò!©+Ü�{‰{× Ñ Ð(;Ð Ó<ˆØ×Ñ˜DÔ!à�_‰_œX d›^°sÈˆ_ÓT€FÜ˜¨C°¨:Ô6€HÜ×Ñ˜& (Õ+r7   úc                 óŒ   — d}| }t        ddgi«      }|j                  t        |«      |¬«      }t        j                  ||«       y )Nza
1r*   r'   r0   r1   )r   r
   r   r   r4   r5   s         r   Útest_quotechar_unicoder\   ¢   sD   € ð €DØ€FÜ˜# ˜s˜Ó$€Hà�_‰_œX d›^°yˆ_ÓA€FÜ×Ñ˜& (Õ+r7   Ú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,"3rP   rQ   rR   rE   r)   r-   r/   r,   z#EOF inside string starting at row 1zunexpected end of datar   )rI   r   rU   rV   rW   r   r   r   r2   r3   r   r   )	r   r]   rX   r   r   rU   r4   r5   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__rG   Úior   r   Úpandas.compatr   Úpandas.errorsr   Úpandasr   Úpandas._testingÚ_testingr2   rU   ÚfilterwarningsÚ
pytestmarkÚusefixturesÚxfail_pyarrowÚskip_pyarrowÚMSG1ÚMSG2ÚparametrizeÚQUOTE_MINIMALr   r#   r6   rB   rH   rJ   Ú	QUOTE_ALLÚQUOTE_NONNUMERICrN   rY   r\   r_   © r7   r   ú<module>rs      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ñ,r7   