Skip to content

Commit caad3b5

Browse files
mroeschkejreback
authored andcommitted
CLN: PY2/3 builtin, httplib (#25981)
1 parent 1172d61 commit caad3b5

File tree

13 files changed

+46
-56
lines changed

13 files changed

+46
-56
lines changed

pandas/compat/__init__.py

+17-29
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,7 @@
1919
# flake8: noqa
2020

2121
import re
22-
import functools
23-
import itertools
2422
from distutils.version import LooseVersion
25-
from itertools import product
2623
import sys
2724
import platform
2825
import types
@@ -37,16 +34,26 @@
3734
PY37 = sys.version_info >= (3, 7)
3835
PYPY = platform.python_implementation() == 'PyPy'
3936

40-
try:
41-
import __builtin__ as builtins
42-
import httplib
43-
except ImportError:
44-
import builtins
45-
import http.client as httplib
46-
4737
from pandas.compat.chainmap import DeepChainMap
4838

4939

40+
# list-producing versions of the major Python iterating functions
41+
def lrange(*args, **kwargs):
42+
return list(range(*args, **kwargs))
43+
44+
45+
def lzip(*args, **kwargs):
46+
return list(zip(*args, **kwargs))
47+
48+
49+
def lmap(*args, **kwargs):
50+
return list(map(*args, **kwargs))
51+
52+
53+
def lfilter(*args, **kwargs):
54+
return list(filter(*args, **kwargs))
55+
56+
5057
if PY3:
5158
def isidentifier(s):
5259
return s.isidentifier()
@@ -83,19 +90,6 @@ def signature(f):
8390
argspec = namedtuple('Signature', ['args', 'defaults',
8491
'varargs', 'keywords'])
8592
return argspec(args, defaults, varargs, keywords)
86-
87-
# list-producing versions of the major Python iterating functions
88-
def lrange(*args, **kwargs):
89-
return list(range(*args, **kwargs))
90-
91-
def lzip(*args, **kwargs):
92-
return list(zip(*args, **kwargs))
93-
94-
def lmap(*args, **kwargs):
95-
return list(map(*args, **kwargs))
96-
97-
def lfilter(*args, **kwargs):
98-
return list(filter(*args, **kwargs))
9993
else:
10094
# Python 2
10195
_name_re = re.compile(r"[a-zA-Z_][a-zA-Z0-9_]*$")
@@ -112,12 +106,6 @@ def bytes_to_str(b, encoding='ascii'):
112106
def signature(f):
113107
return inspect.getargspec(f)
114108

115-
# Python 2-builtin ranges produce lists
116-
lrange = builtins.range
117-
lzip = builtins.zip
118-
lmap = builtins.map
119-
lfilter = builtins.filter
120-
121109
if PY2:
122110
def iteritems(obj, **kw):
123111
return obj.iteritems(**kw)

pandas/core/base.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""
22
Base and utility classes for pandas objects.
33
"""
4+
import builtins
45
from collections import OrderedDict
56
import textwrap
67
import warnings
@@ -9,7 +10,7 @@
910

1011
import pandas._libs.lib as lib
1112
import pandas.compat as compat
12-
from pandas.compat import PYPY, builtins
13+
from pandas.compat import PYPY
1314
from pandas.compat.numpy import function as nv
1415
from pandas.errors import AbstractMethodError
1516
from pandas.util._decorators import Appender, Substitution, cache_readonly

pandas/core/reshape/util.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
def cartesian_product(X):
99
"""
10-
Numpy version of itertools.product or pandas.compat.product.
10+
Numpy version of itertools.product.
1111
Sometimes faster (for large inputs)...
1212
1313
Parameters
@@ -28,7 +28,6 @@ def cartesian_product(X):
2828
--------
2929
itertools.product : Cartesian product of input iterables. Equivalent to
3030
nested for-loops.
31-
pandas.compat.product : An alias for itertools.product.
3231
"""
3332
msg = "Input must be a list-like of list-likes"
3433
if not is_list_like(X):

pandas/tests/frame/test_timeseries.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
# -*- coding: utf-8 -*-
22

33
from datetime import datetime, time
4+
from itertools import product
45

56
import numpy as np
67
import pytest
78
import pytz
89

9-
from pandas.compat import product
10-
1110
import pandas as pd
1211
from pandas import (
1312
DataFrame, DatetimeIndex, Index, MultiIndex, Series, Timestamp, date_range,

pandas/tests/groupby/test_counting.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# -*- coding: utf-8 -*-
2+
from itertools import product
3+
24
import numpy as np
35
import pytest
46

5-
from pandas.compat import product as cart_product
6-
77
from pandas import DataFrame, MultiIndex, Period, Series, Timedelta, Timestamp
88
from pandas.util.testing import assert_frame_equal, assert_series_equal
99

@@ -167,7 +167,7 @@ def test_ngroup_matches_cumcount(self):
167167

168168
def test_ngroup_cumcount_pair(self):
169169
# brute force comparison for all small series
170-
for p in cart_product(range(3), repeat=4):
170+
for p in product(range(3), repeat=4):
171171
df = DataFrame({'a': p})
172172
g = df.groupby(['a'])
173173

pandas/tests/groupby/test_function.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
import builtins
12
from io import StringIO
3+
from itertools import product
24
from string import ascii_lowercase
35

46
import numpy as np
57
import pytest
68

7-
from pandas.compat import product as cart_product
89
from pandas.errors import UnsupportedFunctionCall
910

1011
import pandas as pd
@@ -27,7 +28,7 @@ def test_groupby_bool_aggs(agg_func, skipna, vals):
2728
df = DataFrame({'key': ['a'] * 3 + ['b'] * 3, 'val': vals * 2})
2829

2930
# Figure out expectation using Python builtin
30-
exp = getattr(compat.builtins, agg_func)(vals)
31+
exp = getattr(builtins, agg_func)(vals)
3132

3233
# edge case for missing data with skipna and 'any'
3334
if skipna and all(isna(vals)) and agg_func == 'any':
@@ -62,8 +63,8 @@ def test_intercept_builtin_sum():
6263
s = Series([1., 2., np.nan, 3.])
6364
grouped = s.groupby([0, 1, 2, 2])
6465

65-
result = grouped.agg(compat.builtins.sum)
66-
result2 = grouped.apply(compat.builtins.sum)
66+
result = grouped.agg(builtins.sum)
67+
result2 = grouped.apply(builtins.sum)
6768
expected = grouped.sum()
6869
tm.assert_series_equal(result, expected)
6970
tm.assert_series_equal(result2, expected)
@@ -1078,7 +1079,7 @@ def test_size(df):
10781079
assert result[key] == len(group)
10791080

10801081
df = DataFrame(np.random.choice(20, (1000, 3)), columns=list('abc'))
1081-
for sort, key in cart_product((False, True), ('a', 'b', ['a', 'b'])):
1082+
for sort, key in product((False, True), ('a', 'b', ['a', 'b'])):
10821083
left = df.groupby(key, sort=sort).size()
10831084
right = df.groupby(key, sort=sort)['c'].apply(lambda a: a.shape[0])
10841085
tm.assert_series_equal(left, right, check_names=False)

pandas/tests/indexing/multiindex/test_xs.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
from itertools import product
2+
13
import numpy as np
24
import pytest
35

4-
from pandas.compat import lrange, product as cart_product
6+
from pandas.compat import lrange
57

68
from pandas import DataFrame, Index, MultiIndex, Series, concat, date_range
79
import pandas.core.common as com
@@ -151,7 +153,7 @@ def test_xs_integer_key():
151153
dates = lrange(20111201, 20111205)
152154
ids = 'abcde'
153155
index = MultiIndex.from_tuples(
154-
[x for x in cart_product(dates, ids)],
156+
[x for x in product(dates, ids)],
155157
names=['date', 'secid'])
156158
df = DataFrame(
157159
np.random.randn(len(index), 3), index, ['X', 'Y', 'Z'])

pandas/tests/reshape/test_pivot.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
from collections import OrderedDict
44
from datetime import date, datetime, timedelta
5+
from itertools import product
56

67
import numpy as np
78
import pytest
89

9-
from pandas.compat import product
10-
1110
import pandas as pd
1211
from pandas import (
1312
Categorical, DataFrame, Grouper, Index, MultiIndex, Series, concat,

pandas/tests/series/test_rank.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
from itertools import chain
2+
from itertools import chain, product
33

44
import numpy as np
55
from numpy import nan
@@ -8,7 +8,6 @@
88
from pandas._libs.algos import Infinity, NegInfinity
99
from pandas._libs.tslib import iNaT
1010
import pandas.compat as compat
11-
from pandas.compat import product
1211
import pandas.util._test_decorators as td
1312

1413
from pandas import NaT, Series, Timestamp, date_range

pandas/tests/series/test_timeseries.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33

44
from datetime import datetime, time, timedelta
55
from io import StringIO
6+
from itertools import product
67

78
import numpy as np
89
import pytest
910

1011
from pandas._libs.tslib import iNaT
1112
from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime
12-
from pandas.compat import lrange, product
13+
from pandas.compat import lrange
1314
from pandas.errors import NullFrequencyError
1415
import pandas.util._test_decorators as td
1516

pandas/tests/test_compat.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
"""
33
Testing that functions from compat work as expected
44
"""
5-
5+
import builtins
66
import re
77

88
from pandas.compat import (
9-
builtins, iteritems, iterkeys, itervalues, lfilter, lmap, lrange, lzip,
10-
re_type)
9+
iteritems, iterkeys, itervalues, lfilter, lmap, lrange, lzip, re_type)
1110

1211

1312
class TestBuiltinIterators(object):

pandas/tests/test_multilevel.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
import datetime
44
from io import StringIO
55
import itertools
6+
from itertools import product
67
from warnings import catch_warnings, simplefilter
78

89
import numpy as np
910
from numpy.random import randn
1011
import pytest
1112
import pytz
1213

13-
from pandas.compat import lrange, lzip, product as cart_product
14+
from pandas.compat import lrange, lzip
1415

1516
from pandas.core.dtypes.common import is_float_dtype, is_integer_dtype
1617

@@ -238,7 +239,7 @@ def test_repr_name_coincide(self):
238239

239240
def test_delevel_infer_dtype(self):
240241
tuples = [tuple
241-
for tuple in cart_product(
242+
for tuple in product(
242243
['foo', 'bar'], [10, 20], [1.0, 1.1])]
243244
index = MultiIndex.from_tuples(tuples, names=['prm0', 'prm1', 'prm2'])
244245
df = DataFrame(np.random.randn(8, 3), columns=['A', 'B', 'C'],

pandas/util/testing.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from datetime import datetime
55
from functools import wraps
66
import gzip
7+
import http.client
78
import lzma
89
import os
910
import re
@@ -22,7 +23,7 @@
2223

2324
from pandas._libs import testing as _testing
2425
import pandas.compat as compat
25-
from pandas.compat import httplib, lmap, lrange, lzip, raise_with_traceback
26+
from pandas.compat import lmap, lrange, lzip, raise_with_traceback
2627

2728
from pandas.core.dtypes.common import (
2829
is_bool, is_categorical_dtype, is_datetime64_dtype, is_datetime64tz_dtype,
@@ -2047,7 +2048,7 @@ def dec(f):
20472048
# servers.
20482049

20492050
# and conditionally raise on these exception types
2050-
_network_error_classes = (IOError, httplib.HTTPException, TimeoutError)
2051+
_network_error_classes = (IOError, http.client.HTTPException, TimeoutError)
20512052

20522053

20532054
def can_connect(url, error_classes=_network_error_classes):

0 commit comments

Comments
 (0)