
    A>iX              
          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\(       a  S
rSrOSrSr\R                  R-                  SSS0S\ 34S\R.                  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\R.                  \R8                  /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#\R<                  S./ S"Q/4S#\R8                  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)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        b/var/www/html/land-tabula/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"   5   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_basicr5   E   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   r1   r2   )r   r7   r   r3   r   new_datar4   s          r   test_quote_char_variousrA   N   sO    F-/BHD||C,H__Xh/:_FF&+r6   r   c                    X!S.nSnU nU[         R                  :w  al  [        (       d  SnOSn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 U R                  S:w  aB  [        / 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   enginer   r   r   r   r   r   r1   r2   )	r   r   r7   r   r   r   r   r3   r4   s	            r   test_null_quote_charrI   Z   s     &:FDF#.. u&C-C !!X-*2B %SE*; 	 ]]9C0OOHTN5f5 10			x	'i[/B$:6:
f/	 
( 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   r1   r2   )r   r   exp_datar   r   r-   r4   r3   s           r   test_quoting_variousrM   w   sG    $ DFG__Xd^E7EfEF3H&+r6   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   r1   r2   )	r   rS   rL   requestr   r   rT   r4   r3   s	            r   test_double_quoterX      sx     FD}}	!+{{  (; <D!__Xd^s_TFC:6H&+r6   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/   r0   )r   r
   r   r   r3   r4   s         r   test_quotechar_unicoder[      sB     DF#s$H__Xd^y_AF&+r6   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   r1   r2   r   r   )	r   r\   rW   r   r   rT   r3   r4   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_testingr1   rT   filterwarnings
pytestmarkusefixturesxfail_pyarrowskip_pyarrowMSG1MSG2parametrizeQUOTE_MINIMALr   r"   r5   rA   rG   rI   	QUOTE_ALLQUOTE_NONNUMERICrM   rX   r[   r^    r6   r   <module>rr      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,r6   