Skip to content

Commit 5a2daa4

Browse files
committed
Merge pull request #4482 from cpcloud/set-construct
BUG: raise on frozenset construction by Series
2 parents 515074a + e78cae7 commit 5a2daa4

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

doc/source/release.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ pandas 0.13
133133
(:issue:`4016`)
134134
- Fixed Panel assignment with a transposed frame (:issue:`3830`)
135135
- Raise on set indexing with a Panel and a Panel as a value which needs alignment (:issue:`3777`)
136+
- frozenset objects now raise in the ``Series`` constructor (:issue:`4482`,
137+
:issue:`4480`)
136138

137139
pandas 0.12
138140
===========

pandas/core/series.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,8 +467,9 @@ def __new__(cls, data=None, index=None, dtype=None, name=None,
467467
data = [data.get(i, nan) for i in index]
468468
elif isinstance(data, types.GeneratorType):
469469
data = list(data)
470-
elif isinstance(data, set):
471-
raise TypeError('Set value is unordered')
470+
elif isinstance(data, (set, frozenset)):
471+
raise TypeError("{0!r} type is unordered"
472+
"".format(data.__class__.__name__))
472473

473474
if dtype is not None:
474475
dtype = np.dtype(dtype)

pandas/io/tests/test_pytables.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2418,9 +2418,14 @@ def test_string_select(self):
24182418
expected = df[df.x == 'none']
24192419
assert_frame_equal(result,expected)
24202420

2421-
result = store.select('df',Term('x!=none'))
2422-
expected = df[df.x != 'none']
2423-
assert_frame_equal(result,expected)
2421+
try:
2422+
result = store.select('df',Term('x!=none'))
2423+
expected = df[df.x != 'none']
2424+
assert_frame_equal(result,expected)
2425+
except Exception as detail:
2426+
print("[{0}]".format(detail))
2427+
print(store)
2428+
print(expected)
24242429

24252430
df2 = df.copy()
24262431
df2.loc[df2.x=='','x'] = np.nan

pandas/tests/test_series.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,8 @@ def test_constructor_tuple_of_tuples(self):
544544

545545
def test_constructor_set(self):
546546
values = set([1, 2, 3, 4, 5])
547-
547+
self.assertRaises(TypeError, Series, values)
548+
values = frozenset(values)
548549
self.assertRaises(TypeError, Series, values)
549550

550551
def test_fromDict(self):

0 commit comments

Comments
 (0)