Skip to content

Commit 339d62f

Browse files
committed
Make MapMutation unpickleable
1 parent 1d813dd commit 339d62f

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

immutables/map.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,9 @@ def __repr__(self):
722722
def __len__(self):
723723
return self.__count
724724

725+
def __reduce__(self):
726+
raise TypeError("can't pickle {} objects".format(type(self).__name__))
727+
725728
def __hash__(self):
726729
raise TypeError('unhashable type: {}'.format(type(self).__name__))
727730

tests/test_map.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,6 +1254,9 @@ def test_map_pickle(self):
12541254
self.assertTrue(isinstance(uh, self.Map))
12551255
self.assertEqual(h, uh)
12561256

1257+
with self.assertRaisesRegex(TypeError, "can't pickle"):
1258+
pickle.dumps(h.mutate())
1259+
12571260

12581261
class PyMapTest(BaseMapTest, unittest.TestCase):
12591262

0 commit comments

Comments
 (0)