o
    Û­jÔ  ã                	   @   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/html/CropPilot/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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 s›w   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    ÿ
þ.





úö