Skip to content

Commit fadc195

Browse files
committed
BUG: ChainMap m parameter only exists in Python 3.4
So backport that as well.
1 parent 17ad0ba commit fadc195

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

pandas/compat/chainmap.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
try:
22
from collections import ChainMap
33
except ImportError:
4-
from chainmap_impl import ChainMap
4+
from pandas.compat.chainmap_impl import ChainMap
55

66

77
class DeepChainMap(ChainMap):
@@ -18,3 +18,9 @@ def __delitem__(self, key):
1818
del mapping[key]
1919
return
2020
raise KeyError(key)
21+
22+
# override because the m parameter is introduced in Python 3.4
23+
def new_child(self, m=None):
24+
if m is None:
25+
m = {}
26+
return self.__class__(m, *self.maps)

pandas/compat/chainmap_impl.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
from collections import MutableMapping
2-
from thread import get_ident
2+
3+
try:
4+
from thread import get_ident
5+
except ImportError:
6+
from _thread import get_ident
37

48

59
def recursive_repr(fillvalue='...'):

pandas/io/tests/test_pytables.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ def create_tempfile(path):
5959
""" create an unopened named temporary file """
6060
return os.path.join(tempfile.gettempdir(),path)
6161

62+
6263
@contextmanager
6364
def ensure_clean_store(path, mode='a', complevel=None, complib=None,
6465
fletcher32=False):
@@ -77,6 +78,7 @@ def ensure_clean_store(path, mode='a', complevel=None, complib=None,
7778
if mode == 'w' or mode == 'a':
7879
safe_remove(path)
7980

81+
8082
@contextmanager
8183
def ensure_clean_path(path):
8284
"""
@@ -95,6 +97,7 @@ def ensure_clean_path(path):
9597
for f in filenames:
9698
safe_remove(f)
9799

100+
98101
# set these parameters so we don't have file sharing
99102
tables.parameters.MAX_NUMEXPR_THREADS = 1
100103
tables.parameters.MAX_BLOSC_THREADS = 1
@@ -256,7 +259,6 @@ def test_api(self):
256259
self.assertRaises(TypeError, df.to_hdf, path,'df',append=True,format='foo')
257260
self.assertRaises(TypeError, df.to_hdf, path,'df',append=False,format='bar')
258261

259-
260262
def test_api_default_format(self):
261263

262264
# default_format option
@@ -2257,7 +2259,6 @@ def test_remove_startstop(self):
22572259
expected = wp.reindex(major_axis=wp.major_axis-wp.major_axis[np.arange(0,20,3)])
22582260
assert_panel_equal(result, expected)
22592261

2260-
22612262
def test_remove_crit(self):
22622263

22632264
with ensure_clean_store(self.path) as store:
@@ -2517,7 +2518,7 @@ def test_backwards_compat_without_term_object(self):
25172518
result = store.select('wp', [('minor_axis','=',['A','B'])])
25182519
expected = wp.loc[:,:,['A','B']]
25192520
assert_panel_equal(result, expected)
2520-
2521+
25212522
def test_same_name_scoping(self):
25222523

25232524
with ensure_clean_store(self.path) as store:
@@ -3323,6 +3324,8 @@ def test_frame_select(self):
33233324
date = df.index[len(df) // 2]
33243325

33253326
crit1 = Term('index>=date')
3327+
self.assertEqual(crit1.env.scope['date'], date)
3328+
33263329
crit2 = ("columns=['A', 'D']")
33273330
crit3 = ('columns=A')
33283331

@@ -3776,7 +3779,6 @@ def test_select_as_multiple(self):
37763779
self.assertRaises(ValueError, store.select_as_multiple,
37773780
['df1','df3'], where=['A>0', 'B>0'], selector='df1')
37783781

3779-
37803782
def test_nan_selection_bug_4858(self):
37813783

37823784
# GH 4858; nan selection bug, only works for pytables >= 3.1
@@ -4227,6 +4229,7 @@ def test_query_with_nested_special_character(self):
42274229
result = store.select('test', 'a = "test & test"')
42284230
tm.assert_frame_equal(expected, result)
42294231

4232+
42304233
def _test_sort(obj):
42314234
if isinstance(obj, DataFrame):
42324235
return obj.reindex(sorted(obj.index))

0 commit comments

Comments
 (0)