
    g              
          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     `/var/www/dash_apps/app1/venv/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_dialectr2   #   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-   r1   r/   r0   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   rC   za
1zInvalid dialectr   r   )r$   r%   r&   r'   r   )r+   rC   r-   r,   r/   s        r   test_invalid_dialectrD   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   rG   r   )parser_defaultsblahr   r   r   zConflicting values for)r   pandas.io.parsers.base_parserrO   r   r)   r;   r#   r$   r%   r&   read_csv_check_warningsr   r*   )r+   r   rE   rF   r   r   r,   expectedr-   warning_klasskwdsrO   r/   results                 r   &test_dialect_conflict_except_delimiterrW   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)
NrJ   rK   rL   rN   r   r   r   z"Conflicting values for 'delimiter'r   )
r   r)   r;   r#   r$   r%   r&   rR   r   r*   )r+   r   kwargsrT   r   r   r,   rS   r-   r/   rV   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   r2   r<   rD   parametrizerW   r^   r   r   r   <module>rj      s%  
    '  [[''C

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