o
    g                  	   @   s   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d Zdd	 Zd
d Zdd Zejdg dejdg d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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)	DataFramec                  C   s   d} ddddddd}| |fS )NweirdF~:   )doublequote
escapechar	delimiterskipinitialspace	quotecharquoting )dialect_namedialect_kwargsr   r   a/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/io/parser/test_dialect.pycustom_dialect   s   r   c                 C   s\   | }d}t  }t j|_|jt||d}d}|t|}|jdddd t|| d S )Nz0label1,label2,label3
index1,"a,c,e
index2,b,d,f
dialectz/label1,label2,label3
index1,a,c,e
index2,b,d,f
az"aT)inplace)	csvexcel
QUOTE_NONEr   read_csvr   replacetmassert_frame_equal)all_parsersparserdatadiadfexpr   r   r   test_dialect   s   r%   c                 C   st   d}| }d}t ddgddgd}tj|dd	 |jt||d
}t|| W d    d S 1 s3w   Y  d S )N	mydialectz+fruit:vegetable
apple:broccoli
pear:tomato
applepearbroccolitomato)fruit	vegetabler   )r   r   )r   r   with_csv_dialectr   r   r   )r   r   r    r!   r$   r#   r   r   r   test_dialect_str5   s   "r.   c                 C   s`   G dd d}d}| }d}t jt|d |jt||d W d    d S 1 s)w   Y  d S )Nc                   @   s   e Zd ZdS )z,test_invalid_dialect.<locals>.InvalidDialectN)__name__
__module____qualname__r   r   r   r   InvalidDialectE   s    r2   za
1zInvalid dialect)matchr   )pytestraises
ValueErrorr   r   )r   r2   r!   r    msgr   r   r   test_invalid_dialectD   s   "r8   arg)Nr	   r
   r   r   r   value)r   defaultotherc              	   C   s  |\}}| }t dgdgd}d}d }	i }
|d ur;ddkr$|| |
|< nddkr5dd	lm} || |
|< nt}	d
|
|< tj|fi |9 t|	 |jt|fd|i|
}t	|| W d    n1 shw   Y  W d    d S W d    d S 1 sw   Y  d S )N      r   ba:b
1:2r:   r   r;   r   )parser_defaultsblah)
r   pandas.io.parsers.base_parserrB   r   r   r-   assert_produces_warningr   r   r   )r   r   r9   r:   r   r   r    expectedr!   warning_klasskwdsrB   resultr   r   r   &test_dialect_conflict_except_delimiterP   s,   "rJ   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           
   	   C   s   |\}}| }t dgdgd}d}tj|fi |9 t| |jt|fd|i|}	t|	| W d    n1 s>w   Y  W d    d S W d    d S 1 sVw   Y  d S )Nr=   r>   r?   rA   r   )r   r   r-   rE   r   r   r   )
r   r   kwargsrG   r   r   r    rF   r!   rI   r   r   r   test_dialect_conflict_delimiterr   s   "rP   )__doc__r   ior   r4   pandas.errorsr   pandasr   pandas._testing_testingr   fixturer   r%   r.   r8   markparametrizerJ   rP   r   r   r   r   <module>   s<    






