
    di              
          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d	d
idfdej        ddfd	didfg          d             Zej                            dddg          d             Zd Zej                            dg d          d             Z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          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)	DataFrame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        _/var/www/html/t/fyr/venv311/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_basicr3   6   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   r/   r0   )r   r5   r   r1   r   new_datar2   s          r   test_quote_char_variousr?   ?   sq    F---///BBBHD||C,,H__Xh//:_FFF&(+++++r4   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pythonr@   z("quotechar" must be a 1-character stringr   r   r$   r      r&   r*   )csv
QUOTE_NONEr   enginer   r   r   r   r   r   r/   r0   )	r   r   r5   r   r   r   r   r1   r2   s	            r   test_null_quote_charrH   K   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   r/   r0   )r   r   exp_datar   r   r+   r2   r1   s           r   test_quoting_variousrM   c   sf    " DFooGV_Xd^^EE7EfEEF7333H&(+++++r4   zdoublequote,exp_dataTrD   z4 " 5Fz4 " 5"c                     | }d}|                     t          |          d|          }t          |ddg          }t          j        ||           d S )Nza,b
3,"4 "" 5"r,   )r   doublequoter'   r(   r*   rK   )r   rO   rL   r   r   r2   r1   s          r   test_double_quoterP   }   sZ     FD__Xd^^s_TTFC:666H&(+++++r4   c                     d}| }t          ddgi          }|                    t          |          |          }t          j        ||           d S )Nza
1r'   r$   r-   r.   )r   r   r   r   r1   r2   s         r   test_quotechar_unicoderS      sU     DF#s$$H__Xd^^y_AAF&(+++++r4   balancedc                    | }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,"3rC   r&   r*   r,   r)   z#EOF inside string starting at row 1zunexpected end of datar   )	r   r   r   r/   r0   rG   r   r   r   )r   rT   r   r   r1   r2   r   s          r   test_unbalanced_quotingrV      s    FD ,iii[///BBB$*!5!566
fh///// }## 21) 	 ];c222 	, 	,OOHTNN+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   #B33B7:B7)__doc__rE   ior   r   pandas.compatr   pandas.errorsr   pandasr   pandas._testing_testingr/   markusefixtures
pytestmarkparametrizeQUOTE_MINIMALr   r    r3   r?   rF   rH   	QUOTE_ALLQUOTE_NONNUMERICrM   rP   rS   rV    r4   r   <module>rf      sJ   
 


              % % % % % %            [$$^44
 
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, , ,r4   