
    Mh              
          S r SSKrSSKJr  SSKrSSKJr  SSKJr  SSK	J
r  \R                  R                  S5      r\R                  S 5       rS rS	 rS
 r\R                  R)                  S/ SQ5      \R                  R)                  S/ SQ5      S 5       5       r\R                  R)                  SSS0S4SS0\4SS0S4SS0S4SS0\4SS0\4// SQS9S 5       rg)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                      Sn SSSSSSS.nX4$ )NweirdF~:`   )doublequote
escapechar	delimiterskipinitialspace	quotecharquoting )dialect_namedialect_kwargss     U/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/parser/test_dialect.pycustom_dialectr      s+    L!N ''    c                    U nSn[         R                  " 5       n[         R                  Ul        UR                  S:X  a>  Sn[
        R                  " [        US9   UR                  [        U5      US9  S S S 5        g UR                  [        U5      US9nSnUR                  [        U5      5      nUR                  SSS	S
9  [        R                  " XV5        g ! , (       d  f       g = f)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OOHTNCO8 2	$	5BD
 //(4.
)CKKT4K("" 21s   C
C(c                    SnU nSn[        SS/SS/S.5      n[        R                  " USS	9   UR                  S
:X  aG  Sn[        R
                  " [        US9   UR                  [        U5      US9  S S S 5         S S S 5        g UR                  [        U5      US9n[        R                  " Xd5        S S S 5        g ! , (       d  f       NP= f! , (       d  f       g = f)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
VC			\S	9==I%SCz5E 6 
:	9 __Xd^\_B
b& 
:	9 65 
:	9s)   ,CB>4	C/C>
C	C
Cc                      " S S5      nSnU nSn[         R                  " [        US9   UR                  [	        U5      US9  S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg),test_invalid_dialect.<locals>.InvalidDialectV   r   N)__name__
__module____qualname____firstlineno____static_attributes__r   r   r   InvalidDialectr@   V   s    r   rG   za
1zInvalid dialectr   r   )r%   r&   r'   r(   r   )r,   rG   r.   r-   r0   s        r   test_invalid_dialectrH   U   sK      DF
C	z	-? 
.	-	-s   A
Aarg)Nr   r   r   r   r   value)r   defaultotherc           	      B   Uu  pEU n[        S/S/S.5      nSnS n	0 n
Ub*  US:X  a  XR   X'   OUS:X  a  SSKJn  X   X'   O
[        n	S	X'   [        R
                  " U40 UD6   UR                  S
:X  aN  Sn[        R                  " [        US9   UR                  " S S[        U5      4SU0U
D6  S S S 5         S S S 5        g UR                  " U	S[        U5      4SU0U
D6n[        R                  " X5        S S S 5        g ! , (       d  f       NW= f! , (       d  f       g = f)N      r   ba:b
1:2r   rK   r   )parser_defaultsblahr   r   r   zConflicting values for)r   pandas.io.parsers.base_parserrS   r   r*   r<   r$   r%   r&   r'   read_csv_check_warningsr   r+   )r,   r   rI   rJ   r   r   r-   expectedr.   warning_klasskwdsrS   r0   results                 r   &test_dialect_conflict_except_delimiterr[   a   s=    $2 LFs!-.HDMD I&+DIiE',DI)MDI			\	<^	<==I%SCz5..,TN	
 )  6  
=	< //$TN
 !	

 
 	f/) 
=	< 65 
=	<s*   !,D!C?.	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           	         Uu  pEU n[        S/S/S.5      nSn[        R                  " U40 UD6   UR                  S:X  aN  Sn	[        R
                  " [        U	S9   UR                  " S S[        U5      4S	U0UD6  S S S 5         S S S 5        g UR                  " US[        U5      4S	U0UD6n
[        R                  " X5        S S S 5        g ! , (       d  f       NW= f! , (       d  f       g = f)
NrN   rO   rP   rR   r   r   r   z"Conflicting values for 'delimiter'r   )
r   r*   r<   r$   r%   r&   r'   rV   r   r+   )r,   r   kwargsrX   r   r   r-   rW   r.   r0   rZ   s              r   test_dialect_conflict_delimiterrb      s    * $2 LFs!-.HD			\	<^	<==I%SCz5..8TN	
 )  6  
=	< //0TN
 !	

 
 	f/) 
=	< 65 
=	<s)   ,C!C=	C6C
C	C
C-)__doc__r!   ior   r%   pandas.errorsr   pandasr   pandas._testing_testingr*   markfilterwarnings
pytestmarkfixturer   r3   r=   rH   parametrizer[   rb   r   r   r   <module>rn      s%  
    '  [[''C

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