X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/e91ffe49c804266a4181ae80abc12f7cf4b74b14..da961187f97344fde390140ebb2f10d10d334d51:/lib/serializer.py diff --git a/lib/serializer.py b/lib/serializer.py index c5a8b0d..fcde992 100644 --- a/lib/serializer.py +++ b/lib/serializer.py @@ -28,6 +28,7 @@ backend (currently json). import simplejson import re + # Check whether the simplejson module supports indentation _JSON_INDENT = 2 try: @@ -38,14 +39,20 @@ except TypeError: _RE_EOLSP = re.compile('[ \t]+$', re.MULTILINE) -def DumpJson(data): +def DumpJson(data, indent=True): """Serialize a given object. + @param data: the data to serialize + @param indent: whether to indent output (depends on simplejson version) + + @return: the string representation of data + """ - if _JSON_INDENT is None: + if not indent or _JSON_INDENT is None: txt = simplejson.dumps(data) else: txt = simplejson.dumps(data, indent=_JSON_INDENT) + txt = _RE_EOLSP.sub("", txt) if not txt.endswith('\n'): txt += '\n' @@ -55,6 +62,10 @@ def DumpJson(data): def LoadJson(txt): """Unserialize data from a string. + @param txt: the json-encoded form + + @return: the original data + """ return simplejson.loads(txt)