
    PiX              
          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                            d          Zej                            d          Zej                            d	          Zerd
ZdZndZdZe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                            dddg          ed                         Zd Zej                            dg d          d             Zeej                            dej        ej        g          ej                            dd
dg          d                                      Ze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j        dg d$gfd#ej        dg d%gfg          ed&                         Z ej                            d'd(d)d*ggfd+d)d,ggfg          d-             Z!ej                            dd#d.g          d/             Z"ej                            d0d(d+g          d1             Z#dS )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            d S # 1 swxY w Y   d S )N1,2,3matchpytestraises	TypeErrorread_csvr   )all_parserskwargsmsgdataparsers        w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/parser/test_quoting.pytest_bad_quote_charr   !   s     DF	y	,	,	, 2 211&1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   A		AAzquoting,msg)r   z%"quoting" must be an integer|Argument)
   zbad "quoting" valuec                     d}| }t          j        t          |          5  |                    t	          |          |           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   )r   r   r   r   r   s        r   test_bad_quotingr"   5   s     DF	y	,	,	, 9 98889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s   %AAAc                     | }d}t          g dgg d          }|                    t          |          d          }t          j        ||           d S )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---///BBBH__Xd^^s_;;F&(+++++    
quote_char)~*%$@Pc                     | }t          g dgg d          }d}|                    d|          }|                    t          |          |          }t	          j        ||           d S )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   sq    F---///BBBHD||C,,H__Xh//:_FFF&(+++++r6   r   c                    ||d}d}| }|t           j        k    rut          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            d S # 1 swxY w Y   d S | j        dk    rHt          g d
gg d          } |j        t          |          fi |}t          j        ||           d S d S )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   ss    &'::FDF#.   	.&CC-C !X--*2B2B +S***; 	 ]9C000 	6 	6FOHTNN55f555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6		x	'	'iii[///BBB $::6::
fh/////	 
(	's   BB	B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        ||           d S )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   sf    $ DFooGV_Xd^^EE7EfEEF7333H&(+++++r6   zdoublequote,exp_dataTrE   z4 " 5Fz4 " 5"c                 ,   | }d}|j         dk    r7|s5t          j                            d          }|                    |           |                    t          |          d|          }t          |ddg	          }t          j	        ||           d S )
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      s     FD}	!!+!{  (; <<D!!!__Xd^^s_TTFC:666H&(+++++r6   c                     d}| }t          ddgi          }|                    t          |          |          }t          j        ||           d S )Nza
1r)   r&   r/   r0   )r   r
   r   r   r3   r4   s         r   test_quotechar_unicoder[      sU     DF#s$$H__Xd^^y_AAF&(+++++r6   balancedc                    | }d}|j         dk    r7|s5t          j                            d          }|                    |           |rRt          g dgg d          }|                    t          |dz                       }t          j	        ||           d S |j         d	k    rd
nd}t          j
        t          |          5  |                    t          |                     d d d            d S # 1 swxY w Y   d S )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^      sY    FD}	!!(!{  (; <<D!!! ,iii[///BBB$*!5!566
fh///// }## 21) 	 ];c222 	, 	,OOHTNN+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   #C55C9<C9)$__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8{&&~66 	 DDD%DD 
u	<d<<=3+<==6	
 q	A$AAAB
 
 2 2 
 
2 8#  9 9  9, , , 'E'E'EFF, , GF, S%6$GHHDz220 0 32 IH 04 	mmm_s'8	9	9MMM?Ks}	5	5G s~	6	68IJ s';	<	<?P?P?P>QR   , , ! ", da\N3eq(m_5MN 
, 
, 
, sHo66, , 76, dE]33, , 43, , ,r6   