
    bMh              
          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                            d          Zej        d             Zd Zd	 Zd
 Zej                            dg d          ej                            dg d          d                         Ze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dS )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     c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/io/parser/test_dialect.pycustom_dialectr      s2    L! N ''    c                    | }d}t          j                    }t           j        |_        |j        dk    r[d}t          j        t          |          5  |                    t          |          |           d d d            n# 1 swxY w Y   d S |                    t          |          |          }d}|                    t          |                    }|
                    ddd	
           t          j        ||           d S )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11 	9 	9OOHTNNCO888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9	$	5	5BD
 //(4..
)
)CKKT4K((("c"""""s   %BB	Bc                    d}| }d}t          ddgddgd          }t          j        |d	          5  |j        d
k    rgd}t	          j        t          |          5  |                    t          |          |           d d d            n# 1 swxY w Y   	 d d d            d S |                    t          |          |          }t          j	        ||           d d d            d S # 1 swxY w Y   d S )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U
V
VC		\S	9	9	9 ' '=I%%SCz555 F FEEEF F F F F F F F F F F F F F F' ' ' ' ' ' ' ' __Xd^^\_BB
b#&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's;   )C,%BC,B	C,B	C,&9C,,C03C0c                      G d d          }d}| }d}t          j        t          |          5  |                    t	          |          |           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS ),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   s            DF
C	z	-	-	- @ @???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   %A!!A%(A%arg)Nr   r   r   r   r   value)r   defaultotherc           	      P   |\  }}| }t          dgdgd          }d}d }	i }
|6|dk    r||         |
|<   n$|dk    rddlm} ||         |
|<   nt          }	d	|
|<   t	          j        |fi |5  |j        d
k    rbd}t          j        t          |          5   |j
        d dt          |          fd|i|
 d d d            n# 1 swxY w Y   	 d d d            d S  |j
        |	dt          |          fd|i|
}t	          j        ||           d d d            d S # 1 swxY w Y   d S )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   sP    $2 L.Fs!--..HDMD I&s+DIIiEEEEEE',DII)MDI		\	<	<^	<	< 0 0=I%%SCz555  ..,TNN	 
 )                  0 0 0 0 0 0 0 0 0/$TNN
 
 !	

 
 
 	fh///)0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s<   ,)D C5DC	DC		D4D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    rbd}	t	          j        t          |	          5   |j        d dt          |          fd	|i| d d d            n# 1 swxY w Y   	 d d d            d S  |j        |dt          |          fd	|i|}
t          j	        |
|           d d d            d S # 1 swxY w Y   d S )
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 0=I%%SCz555  ..8TNN	 
 )                  0 0 0 0 0 0 0 0 0/0TNN
 
 !	

 
 
 	fh///)0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s;   )C B9CB			CB		C4C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SS  "A"A"ABB+0 +0 CB	 
+0\ 
t
}%
s	T"
t	d#
s	]+
s	]+	 	 	   &0 0' &0 0 0r   