Serializer

This sections contains module documentation of serializer module.

serializer

Module provides class Serializer for class serializion to various formats. Unit tests available at hydratk/extensions/datagen/serializer/01_methods_ut.jedi

All methods are static. The methods support special class attributes (optional, see example).

  • _order - list of instance attributes names, it defines serialization order, missing attributes are omitted (not serialized)
  • _naming - dictionary (key - attribute name, value - new name used in serialization)

Sample classes :

class tst():

    _order = ['_a', '_b', '_c', '_d', '_e', '_f', '_g', '_h', '_i']
    _naming = {'_a':'a', '_b':'b', '_c':'c', '_d':'d', '_e':'e', '_f':'f', '_g':'g', '_h':'h', '_i':'i'}

    def __init__(self):

        self._a = 'a'
        self._b = 'b'
        self._c = 1
        self._d = tst2()
        self._e = [1, 2, 3]
        self._f = ('a', 'b')
        self._g = {'a':'1'}
        self._h = [tst2(), tst2()]
        self._i = {'test1': tst2()}

class tst2():

    _order = ['_y', '_x']
    _naming = {'_x':'x', '_y':'y'}

    def __init__(self):

        self._x = 'x'
        self._y = 2

Methods :

  • tostr

Method serializes given object instance to indented string.

from hydratk.extensions.datagen.serializer import Serializer

res = Serializer.tostr(tst())
  • toxml

Method serializes given object instance to xml string, it uses lxml method tostring with indentation (xml object is generated by method from string).

res = Serializer.toxml(tst())
  • tojson

Method serializes given object instance to json string, it uses simplejson method dumps with indentation. It is not supported for Python 2.6 (missing OrderedDict), raises NotImplementedError.

res = Serializer.tojson(tst())
  • _get_attrs

Auxiliary method, it returns instance attributes as dictionary.

  • _has_attrs

Auxiliary method, it checks if instance has some attributes.

  • _tostr

Auxiliary method, it serializes given object to string. Method is called recursively within class traversal. Method automatically indents each level with two spaces. It uses class attributes _order, _naming during serialization.

  • _toxml

Auxiliary method, it serializes given object to xml string. Method is called recursively within class traversal. It uses class attributes _order, _naming during serialization.

  • _tojson

Auxiliary method, it serializes given object to ordered dictionary. Method is called recursively within class traversal. It uses class attributes _order, _naming during serialization.