From a2cfab55bceef3d1769fec4a146d23b428788d0c Mon Sep 17 00:00:00 2001 From: simon987 Date: Wed, 20 Jan 2021 20:30:57 -0500 Subject: [PATCH] msgpack for queue --- hexlib/db.py | 6 ++++-- setup.py | 2 +- test/test_VolatileState.py | 18 +++++++++++++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/hexlib/db.py b/hexlib/db.py index 6d47e41..9da6359 100644 --- a/hexlib/db.py +++ b/hexlib/db.py @@ -37,10 +37,12 @@ class VolatileQueue: self.key = key def put(self, item): - self.rdb.sadd(self.key, item) + self.rdb.sadd(self.key, umsgpack.dumps(item)) def get(self): - return self.rdb.spop(self.key) + v = self.rdb.spop(self.key) + if v: + return umsgpack.loads(v) class VolatileBooleanState: diff --git a/setup.py b/setup.py index 86b504b..cbabcf9 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup( name="hexlib", - version="1.25", + version="1.26", description="Misc utility methods", author="simon987", author_email="me@simon987.net", diff --git a/test/test_VolatileState.py b/test/test_VolatileState.py index 4f8f8eb..deabce9 100644 --- a/test/test_VolatileState.py +++ b/test/test_VolatileState.py @@ -78,4 +78,20 @@ class TestVolatileQueue(TestCase): s.put("test") item = s.get() - self.assertTrue(item == b"test") + self.assertTrue(item == "test") + + def test_dict(self): + s = VolatileQueue(key="test5") + + s.put({"a": 1}) + item = s.get() + + self.assertTrue(item["a"] == 1) + + def test_int(self): + s = VolatileQueue(key="test5") + + s.put(123) + item = s.get() + + self.assertTrue(item == 123)