summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2015-05-16 11:44:14 +0300
committerLars Wirzenius <liw@liw.fi>2015-05-16 11:45:06 +0300
commit37ad33ebcc21da980a1394f6f42b7b7510501bef (patch)
tree90d32f063b58d1782358623326d713d1a73c8dc0
parente6593887a74068fbdd811b035d31d461f9aac178 (diff)
downloadobnam-37ad33ebcc21da980a1394f6f42b7b7510501bef.tar.gz
Encode arbitary integers in objects
-rw-r--r--obnamlib/obj_serialiser.py10
1 files changed, 4 insertions, 6 deletions
diff --git a/obnamlib/obj_serialiser.py b/obnamlib/obj_serialiser.py
index 2fce4f94..f43dc368 100644
--- a/obnamlib/obj_serialiser.py
+++ b/obnamlib/obj_serialiser.py
@@ -74,16 +74,14 @@ def _deserialise_none(serialised):
return None
-# Integers. They are 64-bit values.
-
-_int_fmt = '!Q'
-_int_size_serialised = _serialise_length(struct.calcsize(_int_fmt))
+# Integers. They are arbitrarily large and signed.
def _serialise_integer(obj):
- return _INT + _int_size_serialised + struct.pack(_int_fmt, obj)
+ s = str(obj)
+ return _INT + _serialise_length(len(s)) + s
def _deserialise_integer(serialised):
- return struct.unpack(_int_fmt, serialised)[0]
+ return int(serialised)
# Booleans.