
    Owg              
          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 ej                  j                  d      Zej                  d        Zd Zd	 Zd
 Zej                  j)                  dg d      ej                  j)                  dg d      d               Zej                  j)                  dddidfddiefddidfddidfddiefddiefgg d      d        Zy)zf
Tests that dialects are properly handled during parsing
for all of the parsers defined in parsers.py
    N)StringIO)ParserWarning)	DataFramez=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                       d} ddddddd}| |fS )NweirdF~:`   )doublequote
escapechar	delimiterskipinitialspace	quotecharquoting )dialect_namedialect_kwargss     Z/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/io/parser/test_dialect.pycustom_dialectr      s-    L!N ''    c                    | }d}t        j                         }t         j                  |_        |j                  dk(  rCd}t        j                  t        |      5  |j                  t        |      |       d d d        y |j                  t        |      |      }d}|j                  t        |            }|j                  ddd	
       t        j                  ||       y # 1 sw Y   y xY w)Nz0label1,label2,label3
index1,"a,c,e
index2,b,d,f
pyarrow?The 'dialect' option is not supported with the 'pyarrow' enginematchdialectz/label1,label2,label3
index1,a,c,e
index2,b,d,f
az"aT)inplace)csvexcel
QUOTE_NONEr   enginepytestraises
ValueErrorread_csvr   replacetmassert_frame_equal)all_parsersparserdatadiamsgdfexps          r   test_dialectr3   #   s    FD ))+C..CK}}	!O]]:S1 	9OOHTNCO8	9	$	5BD
 //(4.
)CKKT4K("c"	9s   C##C,c                    d}| }d}t        ddgddgd      }t        j                  |d	      5  |j                  d
k(  rLd}t	        j
                  t        |      5  |j                  t        |      |       d d d        	 d d d        y |j                  t        |      |      }t        j                  ||       d d d        y # 1 sw Y   NxY w# 1 sw Y   y xY w)N	mydialectz+fruit:vegetable
apple:broccoli
pear:tomato
applepearbroccolitomato)fruit	vegetabler	   )r   r   r   r   r   )
r   r*   with_csv_dialectr$   r%   r&   r'   r(   r   r+   )r,   r   r-   r.   r2   r0   r1   s          r   test_dialect_strr=   @   s    LFD
 w/z8>TU
VC			\S	9 '==I%SCz5 FEF' ' __Xd^\_B
b#&' 'F F' 's)   -CC:	C2CC	CCc                      G d d      }d}| }d}t        j                  t        |      5  |j                  t	        |      |       d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zy),test_invalid_dialect.<locals>.InvalidDialectN)__name__
__module____qualname__r   r   r   InvalidDialectr@   V   s    r   rD   za
1zInvalid dialectr   r   )r%   r&   r'   r(   r   )r,   rD   r.   r-   r0   s        r   test_invalid_dialectrE   U   sX      DF
C	z	- @?@ @ @s   AAarg)Nr   r   r   r   r   value)r   defaultotherc           	      4   |\  }}| }t        dgdgd      }d}d }	i }
|-|dk(  r	||   |
|<   n|dk(  rddlm} ||   |
|<   nt        }	d	|
|<   t	        j
                  |fi |5  |j                  d
k(  rPd}t        j                  t        |      5   |j                  d dt        |      fd|i|
 d d d        	 d d d        y  |j                  |	dt        |      fd|i|
}t	        j                  ||       d d d        y # 1 sw Y   RxY w# 1 sw Y   y xY w)N      r   ba:b
1:2r   rH   r   )parser_defaultsblahr   r   r   zConflicting values for)r   pandas.io.parsers.base_parserrP   r   r*   r<   r$   r%   r&   r'   read_csv_check_warningsr   r+   )r,   r   rF   rG   r   r   r-   expectedr.   warning_klasskwdsrP   r0   results                 r   &test_dialect_conflict_except_delimiterrX   a   sa    $2 L.Fs!-.HDMD I&s+DIiE',DI)MDI			\	<^	< 0==I%SCz5 ...,TN	
 )  0 0 0//$TN
 !	

 
 	fh/)0 0 0 0s*   #-D!D1	D6DD	DDzkwargs,warning_klasssep,.r   r	   )zsep-override-truezsep-override-falsezdelimiter-no-conflictzdelimiter-default-argzdelimiter-conflictzdelimiter-conflict2)idsc           	         |\  }}| }t        dgdgd      }d}t        j                  |fi |5  |j                  dk(  rPd}	t	        j
                  t        |	      5   |j                  d dt        |      fd	|i| d d d        	 d d d        y  |j                  |dt        |      fd	|i|}
t        j                  |
|       d d d        y # 1 sw Y   RxY w# 1 sw Y   y xY w)
NrK   rL   rM   rO   r   r   r   z"Conflicting values for 'delimiter'r   )
r   r*   r<   r$   r%   r&   r'   rS   r   r+   )r,   r   kwargsrU   r   r   r-   rT   r.   r0   rW   s              r   test_dialect_conflict_delimiterr_      s   * $2 L.Fs!-.HD			\	<^	< 0==I%SCz5 ...8TN	
 )  0 0 0//0TN
 !	

 
 	fh/)0 0 0 0s)   -C!C>	C6CC	CC$)__doc__r!   ior   r%   pandas.errorsr   pandasr   pandas._testing_testingr*   markfilterwarnings
pytestmarkfixturer   r3   r=   rE   parametrizerX   r_   r   r   r   <module>rk      s%  
    '  [[''C

 
( 
(#:'*	@ 	S "AB+0 C	
+0\ 
t
}%
s	T"
t	d#
s	]+
s	]+	  &0'&0r   