Skip to content

Commit 8da4cba

Browse files
committed
Moved xlrd skip to SharedItems
1 parent 1dec99b commit 8da4cba

File tree

1 file changed

+1
-85
lines changed

1 file changed

+1
-85
lines changed

pandas/tests/io/test_excel.py

+1-85
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,6 @@
2828
from pandas.util.testing import ensure_clean, makeCustomDataframe as mkdf
2929

3030

31-
def _skip_if_no_xlrd():
32-
try:
33-
import xlrd
34-
ver = tuple(map(int, xlrd.__VERSION__.split(".")[:2]))
35-
if ver < (0, 9):
36-
pytest.skip('xlrd < 0.9, skipping')
37-
except ImportError:
38-
pytest.skip('xlrd not installed, skipping')
39-
40-
4131
def _skip_if_no_xlwt():
4232
try:
4333
import xlwt # NOQA
@@ -59,12 +49,6 @@ def _skip_if_no_xlsxwriter():
5949
pytest.skip('xlsxwriter not installed, skipping')
6050

6151

62-
def _skip_if_no_excelsuite():
63-
_skip_if_no_xlrd()
64-
_skip_if_no_xlwt()
65-
_skip_if_no_openpyxl()
66-
67-
6852
_seriesd = tm.getSeriesData()
6953
_tsd = tm.getTimeSeriesData()
7054
_frame = DataFrame(_seriesd)[:10]
@@ -74,6 +58,7 @@ def _skip_if_no_excelsuite():
7458
_mixed_frame['foo'] = 'bar'
7559

7660

61+
@td.skip_if_no('xlrd', '0.9')
7762
class SharedItems(object):
7863

7964
def setup_method(self, method):
@@ -554,7 +539,6 @@ def test_sheet_name_both_raises(self, ext):
554539
self.get_exceldf('test1', ext, sheetname='Sheet1', sheet_name='Sheet1')
555540

556541

557-
@td.skip_if_no('xlrd', '0.9')
558542
@pytest.mark.parametrize("ext", ['.xls', '.xlsx', '.xlsm'])
559543
class TestXlrdReader(ReadingTestsBase):
560544
"""
@@ -1069,7 +1053,6 @@ def teardown_method(self, method):
10691053
set_option(self.option_name, self.prev_engine)
10701054

10711055
def test_excel_sheet_by_name_raise(self):
1072-
_skip_if_no_xlrd()
10731056
import xlrd
10741057

10751058
with ensure_clean(self.ext) as pth:
@@ -1083,8 +1066,6 @@ def test_excel_sheet_by_name_raise(self):
10831066
read_excel(xl, '0')
10841067

10851068
def test_excelwriter_contextmanager(self):
1086-
_skip_if_no_xlrd()
1087-
10881069
with ensure_clean(self.ext) as pth:
10891070
with ExcelWriter(pth) as writer:
10901071
self.frame.to_excel(writer, 'Data1')
@@ -1097,8 +1078,6 @@ def test_excelwriter_contextmanager(self):
10971078
tm.assert_frame_equal(found_df2, self.frame2)
10981079

10991080
def test_roundtrip(self):
1100-
_skip_if_no_xlrd()
1101-
11021081
with ensure_clean(self.ext) as path:
11031082
self.frame['A'][:5] = nan
11041083

@@ -1147,17 +1126,13 @@ def test_roundtrip(self):
11471126
tm.assert_frame_equal(s.to_frame(), recons)
11481127

11491128
def test_mixed(self):
1150-
_skip_if_no_xlrd()
1151-
11521129
with ensure_clean(self.ext) as path:
11531130
self.mixed_frame.to_excel(path, 'test1')
11541131
reader = ExcelFile(path)
11551132
recons = read_excel(reader, 'test1', index_col=0)
11561133
tm.assert_frame_equal(self.mixed_frame, recons)
11571134

11581135
def test_tsframe(self):
1159-
_skip_if_no_xlrd()
1160-
11611136
df = tm.makeTimeDataFrame()[:5]
11621137

11631138
with ensure_clean(self.ext) as path:
@@ -1167,7 +1142,6 @@ def test_tsframe(self):
11671142
tm.assert_frame_equal(df, recons)
11681143

11691144
def test_basics_with_nan(self):
1170-
_skip_if_no_xlrd()
11711145
with ensure_clean(self.ext) as path:
11721146
self.frame['A'][:5] = nan
11731147
self.frame.to_excel(path, 'test1')
@@ -1176,8 +1150,6 @@ def test_basics_with_nan(self):
11761150
self.frame.to_excel(path, 'test1', index=False)
11771151

11781152
def test_int_types(self):
1179-
_skip_if_no_xlrd()
1180-
11811153
for np_type in (np.int8, np.int16, np.int32, np.int64):
11821154

11831155
with ensure_clean(self.ext) as path:
@@ -1201,8 +1173,6 @@ def test_int_types(self):
12011173
check_column_type=False)
12021174

12031175
def test_float_types(self):
1204-
_skip_if_no_xlrd()
1205-
12061176
for np_type in (np.float16, np.float32, np.float64):
12071177
with ensure_clean(self.ext) as path:
12081178
# Test np.float values read come back as float.
@@ -1213,8 +1183,6 @@ def test_float_types(self):
12131183
tm.assert_frame_equal(frame, recons, check_dtype=False)
12141184

12151185
def test_bool_types(self):
1216-
_skip_if_no_xlrd()
1217-
12181186
for np_type in (np.bool8, np.bool_):
12191187
with ensure_clean(self.ext) as path:
12201188
# Test np.bool values read come back as float.
@@ -1225,8 +1193,6 @@ def test_bool_types(self):
12251193
tm.assert_frame_equal(frame, recons)
12261194

12271195
def test_inf_roundtrip(self):
1228-
_skip_if_no_xlrd()
1229-
12301196
frame = DataFrame([(1, np.inf), (2, 3), (5, -np.inf)])
12311197
with ensure_clean(self.ext) as path:
12321198
frame.to_excel(path, 'test1')
@@ -1235,8 +1201,6 @@ def test_inf_roundtrip(self):
12351201
tm.assert_frame_equal(frame, recons)
12361202

12371203
def test_sheets(self):
1238-
_skip_if_no_xlrd()
1239-
12401204
with ensure_clean(self.ext) as path:
12411205
self.frame['A'][:5] = nan
12421206

@@ -1260,8 +1224,6 @@ def test_sheets(self):
12601224
assert 'test2' == reader.sheet_names[1]
12611225

12621226
def test_colaliases(self):
1263-
_skip_if_no_xlrd()
1264-
12651227
with ensure_clean(self.ext) as path:
12661228
self.frame['A'][:5] = nan
12671229

@@ -1280,8 +1242,6 @@ def test_colaliases(self):
12801242
tm.assert_frame_equal(xp, rs)
12811243

12821244
def test_roundtrip_indexlabels(self):
1283-
_skip_if_no_xlrd()
1284-
12851245
with ensure_clean(self.ext) as path:
12861246

12871247
self.frame['A'][:5] = nan
@@ -1342,8 +1302,6 @@ def test_roundtrip_indexlabels(self):
13421302
tm.assert_frame_equal(df, recons, check_less_precise=True)
13431303

13441304
def test_excel_roundtrip_indexname(self):
1345-
_skip_if_no_xlrd()
1346-
13471305
df = DataFrame(np.random.randn(10, 4))
13481306
df.index.name = 'foo'
13491307

@@ -1358,8 +1316,6 @@ def test_excel_roundtrip_indexname(self):
13581316
assert result.index.name == 'foo'
13591317

13601318
def test_excel_roundtrip_datetime(self):
1361-
_skip_if_no_xlrd()
1362-
13631319
# datetime.date, not sure what to test here exactly
13641320
tsf = self.tsframe.copy()
13651321
with ensure_clean(self.ext) as path:
@@ -1372,7 +1328,6 @@ def test_excel_roundtrip_datetime(self):
13721328

13731329
# GH4133 - excel output format strings
13741330
def test_excel_date_datetime_format(self):
1375-
_skip_if_no_xlrd()
13761331
df = DataFrame([[date(2014, 1, 31),
13771332
date(1999, 9, 24)],
13781333
[datetime(1998, 5, 26, 23, 33, 4),
@@ -1411,8 +1366,6 @@ def test_excel_date_datetime_format(self):
14111366

14121367
def test_to_excel_interval_no_labels(self):
14131368
# GH19242 - test writing Interval without labels
1414-
_skip_if_no_xlrd()
1415-
14161369
with ensure_clean(self.ext) as path:
14171370
frame = DataFrame(np.random.randint(-10, 10, size=(20, 1)),
14181371
dtype=np.int64)
@@ -1426,8 +1379,6 @@ def test_to_excel_interval_no_labels(self):
14261379

14271380
def test_to_excel_interval_labels(self):
14281381
# GH19242 - test writing Interval with labels
1429-
_skip_if_no_xlrd()
1430-
14311382
with ensure_clean(self.ext) as path:
14321383
frame = DataFrame(np.random.randint(-10, 10, size=(20, 1)),
14331384
dtype=np.int64)
@@ -1443,8 +1394,6 @@ def test_to_excel_interval_labels(self):
14431394

14441395
def test_to_excel_timedelta(self):
14451396
# GH 19242, GH9155 - test writing timedelta to xls
1446-
_skip_if_no_xlrd()
1447-
14481397
with ensure_clean('.xls') as path:
14491398
frame = DataFrame(np.random.randint(-10, 10, size=(20, 1)),
14501399
columns=['A'],
@@ -1460,8 +1409,6 @@ def test_to_excel_timedelta(self):
14601409
tm.assert_frame_equal(expected, recons)
14611410

14621411
def test_to_excel_periodindex(self):
1463-
_skip_if_no_xlrd()
1464-
14651412
frame = self.tsframe
14661413
xp = frame.resample('M', kind='period').mean()
14671414

@@ -1473,8 +1420,6 @@ def test_to_excel_periodindex(self):
14731420
tm.assert_frame_equal(xp, rs.to_period('M'))
14741421

14751422
def test_to_excel_multiindex(self):
1476-
_skip_if_no_xlrd()
1477-
14781423
frame = self.frame
14791424
arrays = np.arange(len(frame.index) * 2).reshape(2, -1)
14801425
new_index = MultiIndex.from_arrays(arrays,
@@ -1493,8 +1438,6 @@ def test_to_excel_multiindex(self):
14931438

14941439
# GH13511
14951440
def test_to_excel_multiindex_nan_label(self):
1496-
_skip_if_no_xlrd()
1497-
14981441
frame = pd.DataFrame({'A': [None, 2, 3],
14991442
'B': [10, 20, 30],
15001443
'C': np.random.sample(3)})
@@ -1509,8 +1452,6 @@ def test_to_excel_multiindex_nan_label(self):
15091452
# sure they are handled correctly for either setting of
15101453
# merge_cells
15111454
def test_to_excel_multiindex_cols(self):
1512-
_skip_if_no_xlrd()
1513-
15141455
frame = self.frame
15151456
arrays = np.arange(len(frame.index) * 2).reshape(2, -1)
15161457
new_index = MultiIndex.from_arrays(arrays,
@@ -1537,8 +1478,6 @@ def test_to_excel_multiindex_cols(self):
15371478
tm.assert_frame_equal(frame, df)
15381479

15391480
def test_to_excel_multiindex_dates(self):
1540-
_skip_if_no_xlrd()
1541-
15421481
# try multiindex with dates
15431482
tsframe = self.tsframe.copy()
15441483
new_index = [tsframe.index, np.arange(len(tsframe.index))]
@@ -1555,8 +1494,6 @@ def test_to_excel_multiindex_dates(self):
15551494
assert recons.index.names == ('time', 'foo')
15561495

15571496
def test_to_excel_multiindex_no_write_index(self):
1558-
_skip_if_no_xlrd()
1559-
15601497
# Test writing and re-reading a MI witout the index. GH 5616.
15611498

15621499
# Initial non-MI frame.
@@ -1580,8 +1517,6 @@ def test_to_excel_multiindex_no_write_index(self):
15801517
tm.assert_frame_equal(frame1, frame3)
15811518

15821519
def test_to_excel_float_format(self):
1583-
_skip_if_no_xlrd()
1584-
15851520
df = DataFrame([[0.123456, 0.234567, 0.567567],
15861521
[12.32112, 123123.2, 321321.2]],
15871522
index=['A', 'B'], columns=['X', 'Y', 'Z'])
@@ -1597,8 +1532,6 @@ def test_to_excel_float_format(self):
15971532
tm.assert_frame_equal(rs, xp)
15981533

15991534
def test_to_excel_output_encoding(self):
1600-
_skip_if_no_xlrd()
1601-
16021535
# avoid mixed inferred_type
16031536
df = DataFrame([[u'\u0192', u'\u0193', u'\u0194'],
16041537
[u'\u0195', u'\u0196', u'\u0197']],
@@ -1612,7 +1545,6 @@ def test_to_excel_output_encoding(self):
16121545
tm.assert_frame_equal(result, df)
16131546

16141547
def test_to_excel_unicode_filename(self):
1615-
_skip_if_no_xlrd()
16161548
with ensure_clean(u('\u0192u.') + self.ext) as filename:
16171549
try:
16181550
f = open(filename, 'wb')
@@ -1735,8 +1667,6 @@ def test_to_excel_unicode_filename(self):
17351667
# os.remove(filename)
17361668

17371669
def test_excel_010_hemstring(self):
1738-
_skip_if_no_xlrd()
1739-
17401670
if self.merge_cells:
17411671
pytest.skip('Skip tests for merged MI format.')
17421672

@@ -1790,8 +1720,6 @@ def roundtrip(df, header=True, parser_hdr=0, index=True):
17901720
def test_excel_010_hemstring_raises_NotImplementedError(self):
17911721
# This test was failing only for j>1 and header=False,
17921722
# So I reproduced a simple test.
1793-
_skip_if_no_xlrd()
1794-
17951723
if self.merge_cells:
17961724
pytest.skip('Skip tests for merged MI format.')
17971725

@@ -1818,8 +1746,6 @@ def roundtrip2(df, header=True, parser_hdr=0, index=True):
18181746

18191747
def test_duplicated_columns(self):
18201748
# Test for issue #5235
1821-
_skip_if_no_xlrd()
1822-
18231749
with ensure_clean(self.ext) as path:
18241750
write_frame = DataFrame([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
18251751
colnames = ['A', 'B', 'B']
@@ -1847,8 +1773,6 @@ def test_duplicated_columns(self):
18471773

18481774
def test_swapped_columns(self):
18491775
# Test for issue #5427.
1850-
_skip_if_no_xlrd()
1851-
18521776
with ensure_clean(self.ext) as path:
18531777
write_frame = DataFrame({'A': [1, 1, 1],
18541778
'B': [2, 2, 2]})
@@ -1861,8 +1785,6 @@ def test_swapped_columns(self):
18611785

18621786
def test_invalid_columns(self):
18631787
# 10982
1864-
_skip_if_no_xlrd()
1865-
18661788
with ensure_clean(self.ext) as path:
18671789
write_frame = DataFrame({'A': [1, 1, 1],
18681790
'B': [2, 2, 2]})
@@ -1942,8 +1864,6 @@ def test_comment_emptyline(self):
19421864
def test_datetimes(self):
19431865

19441866
# Test writing and reading datetimes. For issue #9139. (xref #9185)
1945-
_skip_if_no_xlrd()
1946-
19471867
datetimes = [datetime(2013, 1, 13, 1, 2, 3),
19481868
datetime(2013, 1, 13, 2, 45, 56),
19491869
datetime(2013, 1, 13, 4, 29, 49),
@@ -1965,8 +1885,6 @@ def test_datetimes(self):
19651885

19661886
# GH7074
19671887
def test_bytes_io(self):
1968-
_skip_if_no_xlrd()
1969-
19701888
bio = BytesIO()
19711889
df = DataFrame(np.random.randn(10, 2))
19721890
# pass engine explicitly as there is no file path to infer from
@@ -1979,8 +1897,6 @@ def test_bytes_io(self):
19791897

19801898
# GH8188
19811899
def test_write_lists_dict(self):
1982-
_skip_if_no_xlrd()
1983-
19841900
df = DataFrame({'mixed': ['a', ['b', 'c'], {'d': 'e', 'f': 2}],
19851901
'numeric': [1, 2, 3.0],
19861902
'str': ['apple', 'banana', 'cherry']})

0 commit comments

Comments
 (0)