2. Object serialisation¶
The Assembly
class
provides a means of saving your objects to JSON format. They are
saved with type information so that you can load them back again as
Python objects.
-
class
turberfield.utils.assembly.
Assembly
¶ -
static
register
(*args, namespace=None)¶ Call this function to register your classes for Assembly.
Returns a list of the types so far registered.
In order to create objects from JSON, your types must support construction semantics with keyword arguments (ie:
MyClass(**kwargs)
).If this is not possible (as in the case of Enums), then define a classmethod called factory which will be used instead, eg:
class Colour(enum.Enum): red = (255, 0 , 0) green = (0, 255 , 0) blue = (0, 0 , 255) @classmethod def factory(cls, name=None, **kwargs): return cls[name] Assembly.register(Colour)
-
static
dump
(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kwargs)¶ Serialize obj as a JSON formatted stream to fp.
This function is compatible with json.dump from Python’s standard library, and accepts the same arguments.
-
static
dumps
(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kwargs)¶ Serialize obj to a JSON formatted string.
This function is compatible with json.dumps from Python’s standard library, and accepts the same arguments.
-
static
loads
(s)¶ Deserialize a JSON string to Python object(s). Those types you have registered will be recognised and used to create the deserialised objects.
-
static