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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)	DataFramez=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                  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   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/io/parser/test_dialect.pycustom_dialect   s   r   c                 C   s   | }d}t  }t j|_|jdkr6d}tjt|d |jt	||d W d    d S 1 s/w   Y  d S |jt	||d}d}|t	|}|j
ddd	d
 t|| 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expr   r   r   test_dialect#   s"   

r/   c              	   C   s   d}| }d}t ddgddgd}tj|dd	H |jd
krId}tjt|d |jt||d W d    n1 s;w   Y  	 W d    d S |jt||d}t	|| W d    d S 1 scw   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*   r.   r,   r-   r   r   r   test_dialect_str@   s   
"r8   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   InvalidDialectV   s    r<   za
1zInvalid dialectr   r   )r!   r"   r#   r$   r   )r(   r<   r*   r)   r,   r   r   r   test_invalid_dialectU   s   "r=   arg)Nr
   r   r   r   r   value)r   defaultotherc              	   C   sD  |\}}| }t dgdgd}d}d }	i }
|d ur;|dkr$|| |
|< n|dkr5ddlm} || |
|< nt}	d	|
|< tj|fi |T |jd
kr{d}tjt	|d |j
d dt|fd|i|
 W d    n1 smw   Y  	 W d    d S |j
|	dt|fd|i|
}t|| W d    d S 1 sw   Y  d S )N      r   ba:b
1:2r   r@   r   )parser_defaultsblahr   r   r   zConflicting values for)r   pandas.io.parsers.base_parserrG   r   r&   r7   r    r!   r"   r#   read_csv_check_warningsr   r'   )r(   r   r>   r?   r   r   r)   expectedr*   warning_klasskwdsrG   r,   resultr   r   r   &test_dialect_conflict_except_delimitera   sR   
	"rO   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 |T |jdkrQd}	tjt|	d |jd dt|fd	|i| W d    n1 sCw   Y  	 W d    d S |j|dt|fd	|i|}
t	|
| W d    d S 1 sqw   Y  d S )
NrB   rC   rD   rF   r   r   r   z"Conflicting values for 'delimiter'r   )
r   r&   r7   r    r!   r"   r#   rJ   r   r'   )r(   r   kwargsrL   r   r   r)   rK   r*   r,   rN   r   r   r   test_dialect_conflict_delimiter   s>   
	"rU   )__doc__r   ior   r!   pandas.errorsr   pandasr   pandas._testing_testingr&   markfilterwarnings
pytestmarkfixturer   r/   r8   r=   parametrizerO   rU   r   r   r   r   <module>   sB    
.





