
    {hh              
          d Z ddlZddlmZ ddlZddlmZ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)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                     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        Z/var/www/histauto/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#   8   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_basicr6   H   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/   r0   )r   replacer   r   r2   r3   )r   r8   r   r4   r   new_datar5   s          r   test_quote_char_variousrB   Q   sq    F---///BBBHD||C,,H__Xh//:_FFF&(+++++r7   r   c                    ||d}d}| }|t           j        k    r|t          sd}nd}t          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,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#.   	.&CC-C <$+x77J"<L<L +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 0*h66iii[///BBB $::6::
fh/////	 76s    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   r2   r3   )r   r   exp_datar   r   r.   r5   r4   s           r   test_quoting_variousrN   z   sf    $ DFooGV_Xd^^EE7EfEEF7333H&(+++++r7   zdoublequote,exp_dataTrF   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-   )
rI   r   markxfailapplymarkerr   r   r   r2   r3   )	r   rT   rM   requestr   r   rU   r5   r4   s	            r   test_double_quoterY      s     FD}	!!+!{  (; <<D!!!__Xd^^s_TTFC:666H&(+++++r7   c                     d}| }t          ddgi          }|                    t          |          |          }t          j        ||           d S )Nza
1r*   r'   r0   r1   )r   r   r   r   r4   r5   s         r   test_quotechar_unicoder\      sU     DF#s$$H__Xd^^y_AAF&(+++++r7   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,"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_      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__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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, , ,r7   