Ë
    ¤ehd  ã            
       ó²  — 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j                  j)                  d
ddidfdej*                  dœdfddi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j4                  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j8                  dœg d¢gfd ej4                  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)                  d-d%d(g«      d.„ «       Z!y)/zt
Tests that quoting specifications are properly handled
during parsing for all of the parsers defined in parsers.py
é    N)ÚStringIO)ÚPY311)ÚParserError)Ú	DataFramez=ignore:Passing a BlockManager to DataFrame:DeprecationWarningÚpyarrow_xfailÚpyarrow_skipz
kwargs,msgÚ	quotecharÚfooz,"quotechar" must be a(n)? 1-character string©r	   Úquotingú(quotechar must be set if quoting enabledé   z."quotechar" must be string( or None)?, 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        úa/var/www/skyplay_api_hub/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"   ,   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_basicr5   <   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.   r/   )r   Úreplacer   r   r1   r2   )r   r7   r   r3   r   Únew_datar4   s          r   Útest_quote_char_variousrA   E   sQ   € à€FÜš-˜²/ÔB€Hà€DØ�|‰|˜C Ó,€Hà�_‰_œX hÓ/¸:ˆ_ÓF€FÜ×Ñ˜& (Õ+r6   r   Ú c                 óÆ  — ||dœ}d}| }|t         j                  k7  r_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,3ÚpythonrB   z("quotechar" must be a 1-character stringr   r   ©r&   r   é   r(   r,   )ÚcsvÚ
QUOTE_NONEr   Úenginer   r   r   r   r   r   r1   r2   )	r   r   r7   r   r   r   r   r3   r4   s	            r   Útest_null_quote_charrJ   Q   s×   € ð &°'Ñ:€FØ€DØ€Fà”#—.‘.Ò õ ˜×+Ñ+¨xÒ7¸JÈ"Ò<Lñ 7à;ð 	ô �]‰]œ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
   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   r1   r2   )r   r   Úexp_datar   r   r-   r4   r3   s           r   Útest_quoting_variousrN   j   sM   € ð$ €DØ€FÚ€GàˆV�_‰_œX d›^ÑE°7ÐE¸fÑE€FÜ˜¨7Ô3€HÜ×Ñ˜& (Õ+r6   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   r1   r2   )	r   rT   rM   Úrequestr   r   rU   r4   r3   s	            r   Útest_double_quoterY   …   sz   € ð €FØ€Dà‡}�}˜	Ò!©+Ü�{‰{× Ñ Ð(;Ð Ó<ˆØ×Ñ˜DÔ!à�_‰_œX d›^°sÈˆ_ÓT€FÜ˜¨C°¨:Ô6€HÜ×Ñ˜& (Õ+r6   úc                 óŒ   — d}| }t        ddgi«      }|j                  t        |«      |¬«      }t        j                  ||«       y )Nza
1r)   r&   r/   r0   )r   r	   r   r   r3   r4   s         r   Útest_quotechar_unicoder\   •   sD   € ð €DØ€FÜ˜# ˜s˜Ó$€Hà�_‰_œX d›^°yˆ_ÓA€FÜ×Ñ˜& (Õ+r6   Ú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   r1   r2   r   r   )	r   r]   rX   r   r   rU   r3   r4   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Ú_testingr1   rU   ÚfilterwarningsÚ
pytestmarkÚusefixturesÚxfail_pyarrowÚskip_pyarrowÚparametrizeÚQUOTE_MINIMALr   r"   r5   rA   rH   rJ   Ú	QUOTE_ALLÚQUOTE_NONNUMERICrN   rY   r\   r_   © r6   r   ú<module>rq      s·  ðñó
 Ý ã å Ý %å Ý à�[‰[×'Ñ'ØCó€
ð —‘×'Ñ'¨Ó8€Ø�{‰{×&Ñ& ~Ó6€ð ‡�×ÑØà
�uÐ	ÐMÐNà¨3×+<Ñ+<Ñ=Ø6ð	
ð �qÐ	ÐKÐLðó
ð ñ2ó ó
ð2ð ‡�×ÑØà8Ø#ðóð ñ9ó óð9ò,ð ‡�×Ñ˜Ò'EÓFñ,ó Gð,ð Ø‡�×Ñ˜ S×%6Ñ%6¸¿¹Ð$GÓHØ‡�×Ñ˜¨¨D zÓ2ñ0ó 3ó Ió ð0ð, ‡�×ÑØà	Š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ñ,r6   