
    bMhd              
          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j                            d
ddidfdej        ddfddi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                            d-d%d(g          d.             Z!dS )/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            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        c/var/www/html/test/jupyter/venv/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!   ,   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_basicr4   <   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   r0   r1   )r   r6   r   r2   r   new_datar3   s          r   test_quote_char_variousr@   E   sq    F---///BBBHD||C,,H__Xh//:_FFF&(+++++r5   r    c                    ||d}d}| }|t           j        k    rmt          r| 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 t          r| j        dk    sHt          g dgg d	
          } |j        t          |          fi |}t          j        ||           d S d S )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   sf    &'::FDF#.   <$+x77J"<L<L 76; 	 ]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 0*h66iii[///BBB $::6::
fh/////	 76s   A::A>A>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   r0   r1   )r   r   exp_datar   r   r,   r3   r2   s           r   test_quoting_variousrM   j   sf    $ DFooGV_Xd^^EE7EfEEF7333H&(+++++r5   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   r0   r1   )	r   rS   rL   requestr   r   rT   r3   r2   s	            r   test_double_quoterX      s     FD}	!!+!{  (; <<D!!!__Xd^^s_TTFC:666H&(+++++r5   c                     d}| }t          ddgi          }|                    t          |          |          }t          j        ||           d S )Nza
1r(   r%   r.   r/   )r   r	   r   r   r2   r3   s         r   test_quotechar_unicoder[      sU     DF#s$$H__Xd^^y_AAF&(+++++r5   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   r0   r1   r   r   )	r   r\   rW   r   r   rT   r2   r3   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_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8{&&~66 
u	MN3+<==6	
 q	KL
 
 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 0, 	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, , ,r5   