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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
| """
| Tests that work on both the Python and C engines but do not have a
| specific classification into the other test modules.
| """
| from io import StringIO
|
| import pytest
|
| import pandas._testing as tm
|
| depr_msg = "The 'verbose' keyword in pd.read_csv is deprecated"
|
|
| def test_verbose_read(all_parsers, capsys):
| parser = all_parsers
| data = """a,b,c,d
| one,1,2,3
| one,1,2,3
| ,1,2,3
| one,1,2,3
| ,1,2,3
| ,1,2,3
| one,1,2,3
| two,1,2,3"""
|
| if parser.engine == "pyarrow":
| msg = "The 'verbose' option is not supported with the 'pyarrow' engine"
| with pytest.raises(ValueError, match=msg):
| with tm.assert_produces_warning(
| FutureWarning, match=depr_msg, check_stacklevel=False
| ):
| parser.read_csv(StringIO(data), verbose=True)
| return
|
| # Engines are verbose in different ways.
| with tm.assert_produces_warning(
| FutureWarning, match=depr_msg, check_stacklevel=False
| ):
| parser.read_csv(StringIO(data), verbose=True)
| captured = capsys.readouterr()
|
| if parser.engine == "c":
| assert "Tokenization took:" in captured.out
| assert "Parser memory cleanup took:" in captured.out
| else: # Python engine
| assert captured.out == "Filled 3 NA values in column a\n"
|
|
| def test_verbose_read2(all_parsers, capsys):
| parser = all_parsers
| data = """a,b,c,d
| one,1,2,3
| two,1,2,3
| three,1,2,3
| four,1,2,3
| five,1,2,3
| ,1,2,3
| seven,1,2,3
| eight,1,2,3"""
|
| if parser.engine == "pyarrow":
| msg = "The 'verbose' option is not supported with the 'pyarrow' engine"
| with pytest.raises(ValueError, match=msg):
| with tm.assert_produces_warning(
| FutureWarning, match=depr_msg, check_stacklevel=False
| ):
| parser.read_csv(StringIO(data), verbose=True, index_col=0)
| return
|
| with tm.assert_produces_warning(
| FutureWarning, match=depr_msg, check_stacklevel=False
| ):
| parser.read_csv(StringIO(data), verbose=True, index_col=0)
| captured = capsys.readouterr()
|
| # Engines are verbose in different ways.
| if parser.engine == "c":
| assert "Tokenization took:" in captured.out
| assert "Parser memory cleanup took:" in captured.out
| else: # Python engine
| assert captured.out == "Filled 1 NA values in column a\n"
|
|