
    m*i              
          S r SSKrSSKJr  SSKrSSKJr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\(       a  S
rSrOSrSr\R                  R/                  SSS0S\ 34S\R0                  S.S4SS0S\ S3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\R0                  \R:                  /5      \R                  R/                  SS
S/5      S  5       5       5       r\R                  R/                  S!0 / S"Q/4S#\R0                  S./ S"Q/4S#\R>                  S./ S"Q/4S#\R:                  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/                  S0S(S+/5      S1 5       r$g)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                     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        c/var/www/html/land-doc-ocr/venv/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#   8   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_basicr6   H   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/   r0   )r   replacer   r   r2   r3   )r   r8   r   r4   r   new_datar5   s          r   test_quote_char_variousrB   Q   sO    F-/BHD||C,H__Xh/:_FF&+r7   r   c                    X!S.nSnU nU[         R                  :w  aw  [        (       d  SnOSn[        (       a  U R                  S:X  a  US:X  a  SU 3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,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   r2   r3   )	r   r   r8   r   r   r   r   r4   r5   s	            r   test_null_quote_charrJ   ]   s     &:FDF#.. u&C-C u++x7J"<L %SE*; 	 ]]9C0OOHTN5f5 10e**h6i[/B$:6:
f/	 7 10s   .C22
D 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   r2   r3   )r   r   exp_datar   r   r.   r5   r4   s           r   test_quoting_variousrN   z   sG    $ DFG__Xd^E7EfEF3H&+r7   zdoublequote,exp_dataTrF   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-   )
rI   r   markxfailapplymarkerr   r   r   r2   r3   )	r   rT   rM   requestr   r   rU   r5   r4   s	            r   test_double_quoterY      sx     FD}}	!+{{  (; <D!__Xd^s_TFC:6H&+r7   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'   r0   r1   )r   r   r   r   r4   r5   s         r   test_quotechar_unicoder\      sB     DF#s$H__Xd^y_AF&+r7   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,"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/ }}# 2) 	 ]];c2OOHTN+ 322s   C%%
C3)%__doc__rG   ior   r   pandas.compatr   r   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	!5dV<=3+<+<=6	
 q	1$yAB
 2 
2 8# 9 9, 'EF, G, S%6%6$GHDz20 3 I 04 	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,r7   