
    Mhd              
          S r SSKrSSKJr  SSKrSSKJr  SSKJr  SSK	J
r
  SSKJr  \R                  R                  S5      r\R                  R#                  S5      r\R                  R#                  S	5      r\R                  R)                  S
SS0S4S\R*                  S.S4SS0S4/5      \S 5       5       r\R                  R)                  SSS/5      \S 5       5       rS r\R                  R)                  S/ SQ5      S 5       r\\R                  R)                  S\R*                  \R4                  /5      \R                  R)                  SSS/5      S 5       5       5       r\R                  R)                  S0 / SQ/4S \R*                  S./ SQ/4S \R8                  S./ SQ/4S \R4                  S./ S!Q/4S \R:                  S./ S"Q/4/5      \S# 5       5       r\R                  R)                  S$S%S&S'//4S(S&S)//4/5      S* 5       r\R                  R)                  SS S+/5      S, 5       r \R                  R)                  S-S%S(/5      S. 5       r!g)/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                     SnU n[         R                  " [        US9   UR                  " [	        U5      40 UD6  S S S 5        g ! , (       d  f       g = f)N1,2,3matchpytestraises	TypeErrorread_csvr   )all_parserskwargsmsgdataparsers        U/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/parser/test_quoting.pytest_bad_quote_charr      s=     DF	y	,1&1 
-	,	,s   A
Azquoting,msg)r
   z%"quoting" must be an integer|Argument)
   zbad "quoting" valuec                     SnU n[         R                  " [        US9   UR                  [	        U5      US9  S S S 5        g ! , (       d  f       g = f)Nr   r   )r   r   )r   r   r   r   r   s        r   test_bad_quotingr!   ,   s<     DF	y	,8 
-	,	,s   A
Ac                     U nSn[        / SQ// SQS9nUR                  [        U5      SS9n[        R                  " XC5        g )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_basicr4   <   s>    FD-/BH__Xd^s_;F&+    
quote_char)~*%$@Pc                     U n[        / SQ// SQS9nSnUR                  SU5      nUR                  [        U5      US9n[        R
                  " Xc5        g )Nr$   r'   r+   r#   r-   r.   )r   replacer   r   r0   r1   )r   r6   r   r2   r   new_datar3   s          r   test_quote_char_variousr@   E   sO    F-/BHD||C,H__Xh/:_FF&+r5   r    c                    X!S.nSnU nU[         R                  :w  ad  [        (       a  U R                  S:X  a  US:X  a  SOSn[        R
                  " [        US9   UR                  " [        U5      40 UD6  S S S 5        g [        (       a  U R                  S:X  dB  [        / SQ// S	QS
9nUR                  " [        U5      40 UD6n[        R                  " X5        g g ! , (       d  f       g = f)Nr   za,b,c
1,2,3pythonrA   z("quotechar" must be a 1-character stringr   r   r%   r      r'   r+   )csv
QUOTE_NONEr   enginer   r   r   r   r   r   r0   r1   )	r   r   r6   r   r   r   r   r2   r3   s	            r   test_null_quote_charrI   Q   s     &:FDF#..  u++x7J"<L 7; 	 ]]9C0OOHTN5f5 10e**h6i[/B$:6:
f/	 7 10s   C
C-zkwargs,exp_data)r%   r   r
   r-   )r%   r   z"foo")g      ?g       @r
   c                     SnU n/ SQnUR                   " [        U5      4SU0UD6n[        X%S9n[        R                  " Xg5        g )Nz	1,2,"foo"r'   namesr+   )r   r   r   r0   r1   )r   r   exp_datar   r   r,   r3   r2   s           r   test_quoting_variousrM   j   sG    $ DFG__Xd^E7EfEF3H&+r5   zdoublequote,exp_dataTrE   z4 " 5Fz4 " 5"c                    U nSnUR                   S:X  a5  U(       d.  [        R                  R                  SS9nUR	                  U5        UR                  [        U5      SUS9n[        USS/S	9n[        R                  " Xx5        g )
Nza,b
3,"4 "" 5"pyarrowMismatched resultreasonr-   )r	   doublequoter(   r)   r+   )
rH   r   markxfailapplymarkerr   r   r   r0   r1   )	r   rS   rL   requestr   r   rT   r3   r2   s	            r   test_double_quoterX      sx     FD}}	!+{{  (; <D!__Xd^s_TFC:6H&+r5   c                     SnU n[        SS/05      nUR                  [        U5      US9n[        R                  " XT5        g )Nza
1r(   r%   r.   r/   )r   r	   r   r   r2   r3   s         r   test_quotechar_unicoder[      sB     DF#s$H__Xd^y_AF&+r5   balancedc                    U nSnUR                   S:X  a5  U(       d.  [        R                  R                  SS9nUR	                  U5        U(       aC  [        / SQ// SQS9nUR                  [        US-   5      5      n[        R                  " Xv5        g UR                   S	:X  a  S
OSn[        R                  " [        US9   UR                  [        U5      5        S S S 5        g ! , (       d  f       g = f)Nza,b,c
1,2,"3rO   rP   rQ   rD   r'   r+   r-   r*   z#EOF inside string starting at row 1zunexpected end of datar   )rH   r   rT   rU   rV   r   r   r   r0   r1   r   r   )	r   r\   rW   r   r   rT   r2   r3   r   s	            r   test_unbalanced_quotingr^      s     FD}}	!({{  (; <D!i[/B$*!56
f/ }}# 2) 	 ]];c2OOHTN+ 322s   C%%
C3)"__doc__rF   ior   r   pandas.compatr   pandas.errorsr   pandasr   pandas._testing_testingr0   rT   filterwarnings
pytestmarkusefixturesxfail_pyarrowskip_pyarrowparametrizeQUOTE_MINIMALr   r!   r4   r@   rG   rI   	QUOTE_ALLQUOTE_NONNUMERICrM   rX   r[   r^    r5   r   <module>rp      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Dz20 3 I 0, 	m_s'8'8	9M?Ks}}	5G s~~	68IJ s';';	<?P>QR  , !", da\N3eq(m_5MN
,
, sHo6, 7, dE]3, 4,r5   