1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
U
­ý°dã @sêdZddlZddlmZddlZddlmZddlmZddl    m
Z
ddl m Z ej d¡Zej dd    d
id fdejd œd fd    didfg¡dd„ƒZej dddg¡dd„ƒZdd„Zej dddddddg¡d d!„ƒZej d"ejejg¡ej dd#dg¡d$d%„ƒƒZej d&id'dd
ggfd(ejd œd'dd
ggfd(ejd œd'dd
ggfd(ejd œd'dd)ggfd(ejd œd*d+d
ggfg¡d,d-„ƒZej d.d/d0d1ggfd2d0d3ggfg¡d4d5„ƒZej d    d(d6g¡d7d8„ƒZej d9d/d2g¡d:d;„ƒZdS)<zt
Tests that quoting specifications are properly handled
during parsing for all of the parsers defined in parsers.py
éN)ÚStringIO)ÚPY311)Ú ParserError)Ú    DataFrameZ pyarrow_skipz
kwargs,msgÚ    quotecharÚfooz,"quotechar" must be a(n)? 1-character string©rÚquotingú(quotechar must be set if quoting enabledéz."quotechar" must be string( or None)?, not intc    Cs8d}|}tjt|d|jt|ƒf|ŽW5QRXdS)Nú1,2,3©Úmatch©ÚpytestÚraisesÚ    TypeErrorÚread_csvr)Ú all_parsersÚkwargsÚmsgÚdataÚparser©rúZd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/parser/test_quoting.pyÚtest_bad_quote_chars rz quoting,msg)rz%"quoting" must be an integer|Argument)ézbad "quoting" valuec    Cs8d}|}tjt|d|jt|ƒ|dW5QRXdS)Nr r )r    r)rr    rrrrrrÚtest_bad_quoting'srcCsD|}d}tdddggdddgd}|jt|ƒd    d
}t ||¡dS) Núa,b,c
1,2,"cat"ér ÚcatÚaÚbÚc©Úcolumnsú"©r©rrrÚtmÚassert_frame_equal)rrrÚexpectedÚresultrrrÚtest_quote_char_basic6s
r-Ú
quote_charú~Ú*ú%ú$ú@ÚPcCsP|}tdddggdddgd}d}| d    |¡}|jt|ƒ|d
}t ||¡dS) Nrr r r!r"r#r$rr&r')rÚreplacerrr)r*)rr.rr+rZnew_datar,rrrÚtest_quote_char_various?s  r6r    Úc        Cs²||dœ}d}|}|tjkrhtr6|jdkr6|dkr6dnd}tjt|d|jt|ƒf|ŽW5QRXnFtrv|jdks®t    dd    d
ggd d d gd}|jt|ƒf|Ž}t
  ||¡dS)Nrz a,b,c
1,2,3Úpythonr7z("quotechar" must be a 1-character stringr
r rr ér!r"r#r$) ÚcsvÚ
QUOTE_NONErÚenginerrrrrrr)r*)    rr    r.rrrrr+r,rrrÚtest_null_quote_charKs$
 
ÿÿÿýr=zkwargs,exp_datarr&z"foo"gð?g@cCsHd}|}dddg}|jt|ƒfd|i|—Ž}t||d}t ||¡dS)Nz    1,2,"foo"r!r"r#Únamesr$©rrrr)r*)rrÚexp_datarrr%r,r+rrrÚtest_quoting_variouscs 
 rAzdoublequote,exp_dataTr9z4 " 5Fz4 " 5"cCs<|}d}|jt|ƒd|d}t|ddgd}t ||¡dS)Nza,b
3,"4 "" 5"r&)rÚ doublequoter!r"r$r?)rrBr@rrr,r+rrrÚtest_double_quote}s
rCúcCs8d}|}tddgiƒ}|jt|ƒ|d}t ||¡dS)Nza
1r!rr'r()rrrrr+r,rrrÚtest_quotechar_unicode‰s
rEÚbalancedc    Cs„|}d}|rFtdddggdddgd}| t|d    ƒ¡}t ||¡n:|jdkrTd
nd }tjt|d | t|ƒ¡W5QRXdS) Nz a,b,c
1,2,"3rr r9r!r"r#r$r&z#EOF inside string starting at row 1zunexpected end of datar )    rrrr)r*r<rrr)rrFrrr+r,rrrrÚtest_unbalanced_quoting”sÿýrG)Ú__doc__r:ÚiorrZ pandas.compatrZ pandas.errorsrZpandasrZpandas._testingZ_testingr)ÚmarkZ usefixturesZ
pytestmarkZ parametrizeÚ QUOTE_MINIMALrrr-r6r;r=Ú    QUOTE_ALLÚQUOTE_NONNUMERICrArCrErGrrrrÚ<module>sd      
 
þ
úþ
þþ
    
 õþ
 
ÿ