Skip to content

Commit 492040b

Browse files
CLN: Add teardowns for some benchmarks (#17616) (#18388)
Added teardowns for hdfstore, io and packers benchmarks.
1 parent b45325e commit 492040b

File tree

3 files changed

+52
-46
lines changed

3 files changed

+52
-46
lines changed

asv_bench/benchmarks/hdfstore_bench.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ def setup(self):
4040

4141
def teardown(self):
4242
self.store.close()
43+
self.remove(self.f)
4344

4445
def remove(self, f):
4546
try:
46-
os.remove(self.f)
47+
os.remove(f)
4748
except:
4849
pass
4950

@@ -115,10 +116,11 @@ def setup(self):
115116

116117
def teardown(self):
117118
self.store.close()
119+
self.remove(self.f)
118120

119121
def remove(self, f):
120122
try:
121-
os.remove(self.f)
123+
os.remove(f)
122124
except:
123125
pass
124126

asv_bench/benchmarks/io_bench.py

+40-23
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,36 @@
88
import timeit
99

1010

11-
class frame_to_csv(object):
11+
class _BenchTeardown(object):
12+
"""
13+
base class for teardown method implementation
14+
"""
15+
fname = None
16+
17+
def remove(self, f):
18+
try:
19+
os.remove(f)
20+
except:
21+
pass
22+
23+
def teardown(self):
24+
self.remove(self.fname)
25+
26+
27+
class frame_to_csv(_BenchTeardown):
1228
goal_time = 0.2
29+
fname = '__test__.csv'
1330

1431
def setup(self):
1532
self.df = DataFrame(np.random.randn(3000, 30))
1633

1734
def time_frame_to_csv(self):
18-
self.df.to_csv('__test__.csv')
35+
self.df.to_csv(self.fname)
1936

2037

21-
class frame_to_csv2(object):
38+
class frame_to_csv2(_BenchTeardown):
2239
goal_time = 0.2
40+
fname = '__test__.csv'
2341

2442
def setup(self):
2543
self.df = DataFrame({'A': range(50000), })
@@ -28,22 +46,24 @@ def setup(self):
2846
self.df['D'] = (self.df.A + 3.0)
2947

3048
def time_frame_to_csv2(self):
31-
self.df.to_csv('__test__.csv')
49+
self.df.to_csv(self.fname)
3250

3351

34-
class frame_to_csv_date_formatting(object):
52+
class frame_to_csv_date_formatting(_BenchTeardown):
3553
goal_time = 0.2
54+
fname = '__test__.csv'
3655

3756
def setup(self):
3857
self.rng = date_range('1/1/2000', periods=1000)
3958
self.data = DataFrame(self.rng, index=self.rng)
4059

4160
def time_frame_to_csv_date_formatting(self):
42-
self.data.to_csv('__test__.csv', date_format='%Y%m%d')
61+
self.data.to_csv(self.fname, date_format='%Y%m%d')
4362

4463

45-
class frame_to_csv_mixed(object):
64+
class frame_to_csv_mixed(_BenchTeardown):
4665
goal_time = 0.2
66+
fname = '__test__.csv'
4767

4868
def setup(self):
4969
self.df_float = DataFrame(np.random.randn(5000, 5), dtype='float64', columns=self.create_cols('float'))
@@ -55,7 +75,7 @@ def setup(self):
5575
self.df = concat([self.df_float, self.df_int, self.df_bool, self.df_object, self.df_dt], axis=1)
5676

5777
def time_frame_to_csv_mixed(self):
58-
self.df.to_csv('__test__.csv')
78+
self.df.to_csv(self.fname)
5979

6080
def create_cols(self, name):
6181
return [('%s%03d' % (name, i)) for i in range(5)]
@@ -94,28 +114,30 @@ def time_read_csv_infer_datetime_format_ymd(self):
94114
read_csv(StringIO(self.data), header=None, names=['foo'], parse_dates=['foo'], infer_datetime_format=True)
95115

96116

97-
class read_csv_skiprows(object):
117+
class read_csv_skiprows(_BenchTeardown):
98118
goal_time = 0.2
119+
fname = '__test__.csv'
99120

100121
def setup(self):
101122
self.index = tm.makeStringIndex(20000)
102123
self.df = DataFrame({'float1': randn(20000), 'float2': randn(20000), 'string1': (['foo'] * 20000), 'bool1': ([True] * 20000), 'int1': np.random.randint(0, 200000, size=20000), }, index=self.index)
103-
self.df.to_csv('__test__.csv')
124+
self.df.to_csv(self.fname)
104125

105126
def time_read_csv_skiprows(self):
106-
read_csv('__test__.csv', skiprows=10000)
127+
read_csv(self.fname, skiprows=10000)
107128

108129

109-
class read_csv_standard(object):
130+
class read_csv_standard(_BenchTeardown):
110131
goal_time = 0.2
132+
fname = '__test__.csv'
111133

112134
def setup(self):
113135
self.index = tm.makeStringIndex(10000)
114136
self.df = DataFrame({'float1': randn(10000), 'float2': randn(10000), 'string1': (['foo'] * 10000), 'bool1': ([True] * 10000), 'int1': np.random.randint(0, 100000, size=10000), }, index=self.index)
115-
self.df.to_csv('__test__.csv')
137+
self.df.to_csv(self.fname)
116138

117139
def time_read_csv_standard(self):
118-
read_csv('__test__.csv')
140+
read_csv(self.fname)
119141

120142

121143
class read_parse_dates_iso8601(object):
@@ -152,15 +174,16 @@ def time_read_uint64_na_values(self):
152174
read_csv(StringIO(self.data1), header=None, na_values=self.na_values)
153175

154176

155-
class write_csv_standard(object):
177+
class write_csv_standard(_BenchTeardown):
156178
goal_time = 0.2
179+
fname = '__test__.csv'
157180

158181
def setup(self):
159182
self.index = tm.makeStringIndex(10000)
160183
self.df = DataFrame({'float1': randn(10000), 'float2': randn(10000), 'string1': (['foo'] * 10000), 'bool1': ([True] * 10000), 'int1': np.random.randint(0, 100000, size=10000), }, index=self.index)
161184

162185
def time_write_csv_standard(self):
163-
self.df.to_csv('__test__.csv')
186+
self.df.to_csv(self.fname)
164187

165188

166189
class read_csv_from_s3(object):
@@ -195,7 +218,7 @@ def time_read_nrows(self, compression, engine):
195218
compression=compression, engine=engine)
196219

197220

198-
class read_json_lines(object):
221+
class read_json_lines(_BenchTeardown):
199222
goal_time = 0.2
200223
fname = "__test__.json"
201224

@@ -205,12 +228,6 @@ def setup(self):
205228
self.df = DataFrame({('float{0}'.format(i), randn(self.N)) for i in range(self.C)})
206229
self.df.to_json(self.fname,orient="records",lines=True)
207230

208-
def teardown(self):
209-
try:
210-
os.remove(self.fname)
211-
except:
212-
pass
213-
214231
def time_read_json_lines(self):
215232
pd.read_json(self.fname, lines=True)
216233

asv_bench/benchmarks/packers.py

+8-21
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import numpy as np
1010
from random import randrange
1111

12+
1213
class _Packers(object):
1314
goal_time = 0.2
1415

@@ -24,12 +25,15 @@ def _setup(self):
2425

2526
def remove(self, f):
2627
try:
27-
os.remove(self.f)
28+
os.remove(f)
2829
except:
2930
pass
3031

32+
def teardown(self):
33+
self.remove(self.f)
34+
35+
3136
class Packers(_Packers):
32-
goal_time = 0.2
3337

3438
def setup(self):
3539
self._setup()
@@ -38,8 +42,8 @@ def setup(self):
3842
def time_packers_read_csv(self):
3943
pd.read_csv(self.f)
4044

45+
4146
class packers_read_excel(_Packers):
42-
goal_time = 0.2
4347

4448
def setup(self):
4549
self._setup()
@@ -54,7 +58,6 @@ def time_packers_read_excel(self):
5458

5559

5660
class packers_read_hdf_store(_Packers):
57-
goal_time = 0.2
5861

5962
def setup(self):
6063
self._setup()
@@ -115,6 +118,7 @@ def setup(self):
115118
def time_packers_read_pickle(self):
116119
pd.read_pickle(self.f)
117120

121+
118122
class packers_read_sql(_Packers):
119123

120124
def setup(self):
@@ -177,9 +181,6 @@ def setup(self):
177181
def time_write_csv(self):
178182
self.df.to_csv(self.f)
179183

180-
def teardown(self):
181-
self.remove(self.f)
182-
183184

184185
class Excel(_Packers):
185186

@@ -217,8 +218,6 @@ def time_write_hdf_store(self):
217218
def time_write_hdf_table(self):
218219
self.df2.to_hdf(self.f, 'df', table=True)
219220

220-
def teardown(self):
221-
self.remove(self.f)
222221

223222
class JSON(_Packers):
224223

@@ -259,9 +258,6 @@ def time_write_json_mixed_float_int_str(self):
259258
def time_write_json_lines(self):
260259
self.df.to_json(self.f, orient="records", lines=True)
261260

262-
def teardown(self):
263-
self.remove(self.f)
264-
265261

266262
class MsgPack(_Packers):
267263

@@ -271,9 +267,6 @@ def setup(self):
271267
def time_write_msgpack(self):
272268
self.df2.to_msgpack(self.f)
273269

274-
def teardown(self):
275-
self.remove(self.f)
276-
277270

278271
class Pickle(_Packers):
279272

@@ -283,9 +276,6 @@ def setup(self):
283276
def time_write_pickle(self):
284277
self.df2.to_pickle(self.f)
285278

286-
def teardown(self):
287-
self.remove(self.f)
288-
289279

290280
class SQL(_Packers):
291281

@@ -313,6 +303,3 @@ def time_write_stata(self):
313303

314304
def time_write_stata_with_validation(self):
315305
self.df3.to_stata(self.f, {'index': 'tc', })
316-
317-
def teardown(self):
318-
self.remove(self.f)

0 commit comments

Comments
 (0)