Skip to content

Commit f0b73f8

Browse files
committed
Explicit LooseVersion comps
1 parent a764663 commit f0b73f8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+109
-100
lines changed

pandas/_libs/sparse.pyx

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ from distutils.version import LooseVersion
1212

1313
# numpy versioning
1414
_np_version = np.version.short_version
15-
_np_version_under1p10 = LooseVersion(_np_version) < '1.10'
16-
_np_version_under1p11 = LooseVersion(_np_version) < '1.11'
15+
_np_version_under1p10 = LooseVersion(_np_version) < LooseVersion('1.10')
16+
_np_version_under1p11 = LooseVersion(_np_version) < LooseVersion('1.11')
1717

1818
np.import_array()
1919
np.import_ufunc()

pandas/compat/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ def raise_with_traceback(exc, traceback=Ellipsis):
399399
# dateutil minimum version
400400
import dateutil
401401

402-
if LooseVersion(dateutil.__version__) < '2.5':
402+
if LooseVersion(dateutil.__version__) < LooseVersion('2.5'):
403403
raise ImportError('dateutil 2.5.0 is the minimum required version')
404404
from dateutil import parser as _date_parser
405405
parse_date = _date_parser.parse

pandas/compat/numpy/__init__.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
# numpy versioning
1010
_np_version = np.__version__
1111
_nlv = LooseVersion(_np_version)
12-
_np_version_under1p10 = _nlv < '1.10'
13-
_np_version_under1p11 = _nlv < '1.11'
14-
_np_version_under1p12 = _nlv < '1.12'
15-
_np_version_under1p13 = _nlv < '1.13'
16-
_np_version_under1p14 = _nlv < '1.14'
17-
_np_version_under1p15 = _nlv < '1.15'
12+
_np_version_under1p10 = _nlv < LooseVersion('1.10')
13+
_np_version_under1p11 = _nlv < LooseVersion('1.11')
14+
_np_version_under1p12 = _nlv < LooseVersion('1.12')
15+
_np_version_under1p13 = _nlv < LooseVersion('1.13')
16+
_np_version_under1p14 = _nlv < LooseVersion('1.14')
17+
_np_version_under1p15 = _nlv < LooseVersion('1.15')
1818

1919
if _nlv < '1.9':
2020
raise ImportError('this version of pandas is incompatible with '

pandas/conftest.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ def ip():
7070

7171

7272
is_dateutil_le_261 = pytest.mark.skipif(
73-
LooseVersion(dateutil.__version__) > '2.6.1',
73+
LooseVersion(dateutil.__version__) > LooseVersion('2.6.1'),
7474
reason="dateutil api change version")
7575
is_dateutil_gt_261 = pytest.mark.skipif(
76-
LooseVersion(dateutil.__version__) <= '2.6.1',
76+
LooseVersion(dateutil.__version__) <= LooseVersion('2.6.1'),
7777
reason="dateutil stable version")

pandas/core/computation/check.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
try:
88
import numexpr as ne
99
ver = ne.__version__
10-
_NUMEXPR_INSTALLED = ver >= LooseVersion(_MIN_NUMEXPR_VERSION)
10+
_NUMEXPR_INSTALLED = LooseVersion(ver) >= \
11+
LooseVersion(_MIN_NUMEXPR_VERSION)
1112

1213
if not _NUMEXPR_INSTALLED:
1314
warnings.warn(

pandas/core/missing.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ def _from_derivatives(xi, yi, x, order=None, der=0, extrapolate=False):
347347
import scipy
348348
from scipy import interpolate
349349

350-
if LooseVersion(scipy.__version__) < '0.18.0':
350+
if LooseVersion(scipy.__version__) < LooseVersion('0.18.0'):
351351
try:
352352
method = interpolate.piecewise_polynomial_interpolate
353353
return method(xi, yi.reshape(-1, 1), x,

pandas/io/feather_format.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def _try_import():
2222
"pip install -U feather-format\n")
2323

2424
try:
25-
feather.__version__ >= LooseVersion('0.3.1')
25+
LooseVersion(feather.__version__) >= LooseVersion('0.3.1')
2626
except AttributeError:
2727
raise ImportError("the feather-format library must be >= "
2828
"version 0.3.1\n"
@@ -106,7 +106,7 @@ def read_feather(path, nthreads=1):
106106
feather = _try_import()
107107
path = _stringify_path(path)
108108

109-
if feather.__version__ < LooseVersion('0.4.0'):
109+
if LooseVersion(feather.__version__) < LooseVersion('0.4.0'):
110110
return feather.read_dataframe(path)
111111

112112
return feather.read_dataframe(path, nthreads=nthreads)

pandas/io/html.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,7 @@ def _parser_dispatch(flavor):
684684
raise ImportError(
685685
"BeautifulSoup4 (bs4) not found, please install it")
686686
import bs4
687-
if bs4.__version__ == LooseVersion('4.2.0'):
687+
if LooseVersion(bs4.__version__) == LooseVersion('4.2.0'):
688688
raise ValueError("You're using a version"
689689
" of BeautifulSoup4 (4.2.0) that has been"
690690
" known to cause problems on certain"

pandas/io/parquet.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,18 @@ def __init__(self):
5050
"\nor via pip\n"
5151
"pip install -U pyarrow\n")
5252

53-
if LooseVersion(pyarrow.__version__) < '0.4.1':
53+
if LooseVersion(pyarrow.__version__) < LooseVersion('0.4.1'):
5454
raise ImportError("pyarrow >= 0.4.1 is required for parquet"
5555
"support\n\n"
5656
"you can install via conda\n"
5757
"conda install pyarrow -c conda-forge\n"
5858
"\nor via pip\n"
5959
"pip install -U pyarrow\n")
6060

61-
self._pyarrow_lt_050 = LooseVersion(pyarrow.__version__) < '0.5.0'
62-
self._pyarrow_lt_060 = LooseVersion(pyarrow.__version__) < '0.6.0'
61+
self._pyarrow_lt_050 = LooseVersion(pyarrow.__version__) < \
62+
LooseVersion('0.5.0')
63+
self._pyarrow_lt_060 = LooseVersion(pyarrow.__version__) < \
64+
LooseVersion('0.6.0')
6365
self.api = pyarrow
6466

6567
def write(self, df, path, compression='snappy',
@@ -97,7 +99,7 @@ def __init__(self):
9799
"\nor via pip\n"
98100
"pip install -U fastparquet")
99101

100-
if LooseVersion(fastparquet.__version__) < '0.1.0':
102+
if LooseVersion(fastparquet.__version__) < LooseVersion('0.1.0'):
101103
raise ImportError("fastparquet >= 0.1.0 is required for parquet "
102104
"support\n\n"
103105
"you can install via conda\n"

pandas/io/pytables.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ def _tables():
248248
_table_mod = tables
249249

250250
# version requirements
251-
if LooseVersion(tables.__version__) < '3.0.0':
251+
if LooseVersion(tables.__version__) < LooseVersion('3.0.0'):
252252
raise ImportError("PyTables version >= 3.0.0 is required")
253253

254254
# set the file open policy

pandas/io/sql.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ def _is_sqlalchemy_connectable(con):
6767
_SQLALCHEMY_INSTALLED = True
6868

6969
from distutils.version import LooseVersion
70-
ver = LooseVersion(sqlalchemy.__version__)
70+
ver = sqlalchemy.__version__
7171
# For sqlalchemy versions < 0.8.2, the BIGINT type is recognized
7272
# for a sqlite engine, which results in a warning when trying to
7373
# read/write a DataFrame with int64 values. (GH7433)
74-
if ver < '0.8.2':
74+
if LooseVersion(ver) < LooseVersion('0.8.2'):
7575
from sqlalchemy import BigInteger
7676
from sqlalchemy.ext.compiler import compiles
7777

pandas/plotting/_compat.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
def _mpl_le_1_2_1():
99
try:
1010
import matplotlib as mpl
11-
return (str(mpl.__version__) <= LooseVersion('1.2.1') and
11+
return (LooseVersion(mpl.__version__) <= LooseVersion('1.2.1') and
1212
str(mpl.__version__)[0] != '0')
1313
except ImportError:
1414
return False
@@ -19,34 +19,34 @@ def _mpl_ge_1_3_1():
1919
import matplotlib
2020
# The or v[0] == '0' is because their versioneer is
2121
# messed up on dev
22-
return (matplotlib.__version__ >= LooseVersion('1.3.1') or
23-
matplotlib.__version__[0] == '0')
22+
return (LooseVersion(matplotlib.__version__) >= LooseVersion('1.3.1')
23+
or str(matplotlib.__version__)[0] == '0')
2424
except ImportError:
2525
return False
2626

2727

2828
def _mpl_ge_1_4_0():
2929
try:
3030
import matplotlib
31-
return (matplotlib.__version__ >= LooseVersion('1.4') or
32-
matplotlib.__version__[0] == '0')
31+
return (LooseVersion(matplotlib.__version__) >= LooseVersion('1.4') or
32+
str(matplotlib.__version__)[0] == '0')
3333
except ImportError:
3434
return False
3535

3636

3737
def _mpl_ge_1_5_0():
3838
try:
3939
import matplotlib
40-
return (matplotlib.__version__ >= LooseVersion('1.5') or
41-
matplotlib.__version__[0] == '0')
40+
return (LooseVersion(matplotlib.__version__) >= LooseVersion('1.5') or
41+
str(matplotlib.__version__)[0] == '0')
4242
except ImportError:
4343
return False
4444

4545

4646
def _mpl_ge_2_0_0():
4747
try:
4848
import matplotlib
49-
return matplotlib.__version__ >= LooseVersion('2.0')
49+
return LooseVersion(matplotlib.__version__) >= LooseVersion('2.0')
5050
except ImportError:
5151
return False
5252

@@ -62,14 +62,14 @@ def _mpl_le_2_0_0():
6262
def _mpl_ge_2_0_1():
6363
try:
6464
import matplotlib
65-
return matplotlib.__version__ >= LooseVersion('2.0.1')
65+
return LooseVersion(matplotlib.__version__) >= LooseVersion('2.0.1')
6666
except ImportError:
6767
return False
6868

6969

7070
def _mpl_ge_2_1_0():
7171
try:
7272
import matplotlib
73-
return matplotlib.__version__ >= LooseVersion('2.1')
73+
return LooseVersion(matplotlib.__version__) >= LooseVersion('2.1')
7474
except ImportError:
7575
return False

pandas/tests/computation/test_compat.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def test_compat():
1515
try:
1616
import numexpr as ne
1717
ver = ne.__version__
18-
if ver < LooseVersion(_MIN_NUMEXPR_VERSION):
18+
if LooseVersion(ver) < LooseVersion(_MIN_NUMEXPR_VERSION):
1919
assert not _NUMEXPR_INSTALLED
2020
else:
2121
assert _NUMEXPR_INSTALLED
@@ -37,7 +37,8 @@ def testit():
3737
except ImportError:
3838
pytest.skip("no numexpr")
3939
else:
40-
if ne.__version__ < LooseVersion(_MIN_NUMEXPR_VERSION):
40+
if LooseVersion(ne.__version__) < \
41+
LooseVersion(_MIN_NUMEXPR_VERSION):
4142
with pytest.raises(ImportError):
4243
testit()
4344
else:

pandas/tests/dtypes/test_inference.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1179,7 +1179,7 @@ def test_nan_to_nat_conversions():
11791179

11801180
# numpy < 1.7.0 is wrong
11811181
from distutils.version import LooseVersion
1182-
if LooseVersion(np.__version__) >= '1.7.0':
1182+
if LooseVersion(np.__version__) >= LooseVersion('1.7.0'):
11831183
assert (s[8].value == np.datetime64('NaT').astype(np.int64))
11841184

11851185

pandas/tests/frame/test_analytics.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1742,7 +1742,7 @@ def test_round(self):
17421742
'col1': [1.123, 2.123, 3.123],
17431743
'col2': [1.2, 2.2, 3.2]})
17441744

1745-
if sys.version < LooseVersion('2.7'):
1745+
if LooseVersion(sys.version) < LooseVersion('2.7'):
17461746
# Rounding with decimal is a ValueError in Python < 2.7
17471747
with pytest.raises(ValueError):
17481748
df.round(nan_round_Series)

pandas/tests/frame/test_api.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def test_itertuples(self):
222222

223223
tup = next(df.itertuples(name='TestName'))
224224

225-
if sys.version >= LooseVersion('2.7'):
225+
if LooseVersion(sys.version) >= LooseVersion('2.7'):
226226
assert tup._fields == ('Index', 'a', 'b')
227227
assert (tup.Index, tup.a, tup.b) == tup
228228
assert type(tup).__name__ == 'TestName'
@@ -231,7 +231,7 @@ def test_itertuples(self):
231231
tup2 = next(df.itertuples(name='TestName'))
232232
assert tup2 == (0, 1, 4)
233233

234-
if sys.version >= LooseVersion('2.7'):
234+
if LooseVersion(sys.version) >= LooseVersion('2.7'):
235235
assert tup2._fields == ('Index', '_1', '_2')
236236

237237
df3 = DataFrame({'f' + str(i): [i] for i in range(1024)})

pandas/tests/frame/test_missing.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121

2222
try:
2323
import scipy
24-
_is_scipy_ge_0190 = scipy.__version__ >= LooseVersion('0.19.0')
24+
_is_scipy_ge_0190 = LooseVersion(scipy.__version__) >= \
25+
LooseVersion('0.19.0')
2526
except:
2627
_is_scipy_ge_0190 = False
2728

@@ -717,7 +718,7 @@ def test_interp_alt_scipy(self):
717718
result = df.interpolate(method='pchip')
718719
expected.loc[2, 'A'] = 3
719720

720-
if LooseVersion(scipy.__version__) >= '0.17.0':
721+
if LooseVersion(scipy.__version__) >= LooseVersion('0.17.0'):
721722
expected.loc[5, 'A'] = 6.0
722723
else:
723724
expected.loc[5, 'A'] = 6.125

pandas/tests/frame/test_rank.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ def test_rank_methods_frame(self):
212212
sprank = sprank.astype(np.float64)
213213
expected = DataFrame(sprank, columns=cols)
214214

215-
if LooseVersion(scipy.__version__) >= '0.17.0':
215+
if LooseVersion(scipy.__version__) >= \
216+
LooseVersion('0.17.0'):
216217
expected = expected.astype('float64')
217218
tm.assert_frame_equal(result, expected)
218219

pandas/tests/generic/test_frame.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ def test_set_attribute(self):
173173
assert_series_equal(df['y'], Series([2, 4, 6], name='y'))
174174

175175
@pytest.mark.skipif(not _XARRAY_INSTALLED or _XARRAY_INSTALLED and
176-
LooseVersion(xarray.__version__) < '0.10.0',
176+
LooseVersion(xarray.__version__) <
177+
LooseVersion('0.10.0'),
177178
reason='xarray >= 0.10.0 required')
178179
@pytest.mark.parametrize(
179180
"index", ['FloatIndex', 'IntIndex',

pandas/tests/generic/test_series.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ def finalize(self, other, method=None, **kwargs):
173173
Series.__finalize__ = _finalize
174174

175175
@pytest.mark.skipif(not _XARRAY_INSTALLED or _XARRAY_INSTALLED and
176-
LooseVersion(xarray.__version__) < '0.10.0',
176+
LooseVersion(xarray.__version__) <
177+
LooseVersion('0.10.0'),
177178
reason='xarray >= 0.10.0 required')
178179
@pytest.mark.parametrize(
179180
"index",

pandas/tests/indexes/datetimes/test_tools.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1294,7 +1294,7 @@ def test_parsers_dayfirst_yearfirst(self, cache):
12941294
# 2.5.2 20/12/21 [dayfirst=1, yearfirst=0] -> 2021-12-20 00:00:00
12951295
# 2.5.3 20/12/21 [dayfirst=1, yearfirst=0] -> 2021-12-20 00:00:00
12961296

1297-
is_lt_253 = dateutil.__version__ < LooseVersion('2.5.3')
1297+
is_lt_253 = LooseVersion(dateutil.__version__) < LooseVersion('2.5.3')
12981298

12991299
# str : dayfirst, yearfirst, expected
13001300
cases = {'10-11-12': [(False, False,

pandas/tests/indexes/timedeltas/test_arithmetic.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -416,14 +416,14 @@ def test_ops_ndarray(self):
416416
other = pd.to_timedelta(['1 day']).values
417417
expected = pd.to_timedelta(['2 days']).values
418418
tm.assert_numpy_array_equal(td + other, expected)
419-
if LooseVersion(np.__version__) >= '1.8':
419+
if LooseVersion(np.__version__) >= LooseVersion('1.8'):
420420
tm.assert_numpy_array_equal(other + td, expected)
421421
pytest.raises(TypeError, lambda: td + np.array([1]))
422422
pytest.raises(TypeError, lambda: np.array([1]) + td)
423423

424424
expected = pd.to_timedelta(['0 days']).values
425425
tm.assert_numpy_array_equal(td - other, expected)
426-
if LooseVersion(np.__version__) >= '1.8':
426+
if LooseVersion(np.__version__) >= LooseVersion('1.8'):
427427
tm.assert_numpy_array_equal(-other + td, expected)
428428
pytest.raises(TypeError, lambda: td - np.array([1]))
429429
pytest.raises(TypeError, lambda: np.array([1]) - td)
@@ -436,20 +436,20 @@ def test_ops_ndarray(self):
436436

437437
tm.assert_numpy_array_equal(td / other,
438438
np.array([1], dtype=np.float64))
439-
if LooseVersion(np.__version__) >= '1.8':
439+
if LooseVersion(np.__version__) >= LooseVersion('1.8'):
440440
tm.assert_numpy_array_equal(other / td,
441441
np.array([1], dtype=np.float64))
442442

443443
# timedelta, datetime
444444
other = pd.to_datetime(['2000-01-01']).values
445445
expected = pd.to_datetime(['2000-01-02']).values
446446
tm.assert_numpy_array_equal(td + other, expected)
447-
if LooseVersion(np.__version__) >= '1.8':
447+
if LooseVersion(np.__version__) >= LooseVersion('1.8'):
448448
tm.assert_numpy_array_equal(other + td, expected)
449449

450450
expected = pd.to_datetime(['1999-12-31']).values
451451
tm.assert_numpy_array_equal(-td + other, expected)
452-
if LooseVersion(np.__version__) >= '1.8':
452+
if LooseVersion(np.__version__) >= LooseVersion('1.8'):
453453
tm.assert_numpy_array_equal(other - td, expected)
454454

455455
def test_ops_series(self):

pandas/tests/internals/test_internals.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from pandas.compat import zip, u
2626

2727
# in 3.6.1 a c-api slicing function changed, see src/compat_helper.h
28-
PY361 = sys.version >= LooseVersion('3.6.1')
28+
PY361 = LooseVersion(sys.version) >= LooseVersion('3.6.1')
2929

3030

3131
@pytest.fixture

pandas/tests/io/formats/test_to_html.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
div_style = ''
1717
try:
1818
import IPython
19-
if IPython.__version__ < LooseVersion('3.0.0'):
19+
if LooseVersion(IPython.__version__) < LooseVersion('3.0.0'):
2020
div_style = ' style="max-width:1500px;overflow:auto;"'
2121
except (ImportError, AttributeError):
2222
pass

0 commit comments

Comments
 (0)