openforcefield.utils.serialization.Serializable

class openforcefield.utils.serialization.Serializable[source]

Mix-in to add serialization and deserialization support via JSON, YAML, BSON, TOML, MessagePack, and XML.

For more information on these formats, see: JSON, BSON, YAML, TOML, MessagePack, and XML.

To use this mix-in, the class inheriting from this class must have implemented to_dict() and from_dict() methods that utilize dictionaries containing only serialiable Python objects.

Warning

The serialization/deserialiation schemes used here place some strict constraints on what kinds of dict objects can be serialized. No effort is made to add further protection to ensure serialization is possible. Use with caution.

Examples

Example class using Serializable mix-in:

>>> from openforcefield.utils.serialization import Serializable
>>> class Thing(Serializable):
...     def __init__(self, description):
...         self.description = description
...
...     def to_dict(self):
...         return { 'description' : self.description }
...
...     @classmethod
...     def from_dict(cls, d):
...         return cls(d['description'])
...
>>> # Create an example object
>>> thing = Thing('blorb')

Get JSON representation:

>>> json_thing = thing.to_json()

Reconstruct an object from its JSON representation:

>>> thing_from_json = Thing.from_json(json_thing)

Get BSON representation:

>>> bson_thing = thing.to_bson()

Reconstruct an object from its BSON representation:

>>> thing_from_bson = Thing.from_bson(bson_thing)

Get YAML representation:

>>> yaml_thing = thing.to_yaml()

Reconstruct an object from its YAML representation:

>>> thing_from_yaml = Thing.from_yaml(yaml_thing)

Get MessagePack representation:

>>> messagepack_thing = thing.to_messagepack()

Reconstruct an object from its MessagePack representation:

>>> thing_from_messagepack = Thing.from_messagepack(messagepack_thing)

Get XML representation:

>>> xml_thing = thing.to_xml()

Methods

from_bson(serialized)

Instantiate an object from a BSON serialized representation.

from_json(serialized)

Instantiate an object from a JSON serialized representation.

from_messagepack(serialized)

Instantiate an object from a MessagePack serialized representation.

from_pickle(serialized)

Instantiate an object from a pickle serialized representation.

from_toml(serialized)

Instantiate an object from a TOML serialized representation.

from_xml(serialized)

Instantiate an object from an XML serialized representation.

from_yaml(serialized)

Instantiate from a YAML serialized representation.

to_bson(self)

Return a BSON serialized representation.

to_json(self[, indent])

Return a JSON serialized representation.

to_messagepack(self)

Return a MessagePack representation.

to_pickle(self)

Return a pickle serialized representation.

to_toml(self)

Return a TOML serialized representation.

to_xml(self[, indent])

Return an XML representation.

to_yaml(self)

Return a YAML serialized representation.

from_dict

to_dict

__init__(self, /, *args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(self, /, \*args, \*\*kwargs)

Initialize self.

from_bson(serialized)

Instantiate an object from a BSON serialized representation.

from_dict(d)

from_json(serialized)

Instantiate an object from a JSON serialized representation.

from_messagepack(serialized)

Instantiate an object from a MessagePack serialized representation.

from_pickle(serialized)

Instantiate an object from a pickle serialized representation.

from_toml(serialized)

Instantiate an object from a TOML serialized representation.

from_xml(serialized)

Instantiate an object from an XML serialized representation.

from_yaml(serialized)

Instantiate from a YAML serialized representation.

to_bson(self)

Return a BSON serialized representation.

to_dict(self)

to_json(self[, indent])

Return a JSON serialized representation.

to_messagepack(self)

Return a MessagePack representation.

to_pickle(self)

Return a pickle serialized representation.

to_toml(self)

Return a TOML serialized representation.

to_xml(self[, indent])

Return an XML representation.

to_yaml(self)

Return a YAML serialized representation.

to_json(self, indent=None)[source]

Return a JSON serialized representation.

Specification: https://www.json.org/

Parameters
indentint, optional, default=None

If not None, will pretty-print with specified number of spaces for indentation

Returns
serializedstr

A JSON serialized representation of the object

classmethod from_json(serialized)[source]

Instantiate an object from a JSON serialized representation.

Specification: https://www.json.org/

Parameters
serializedstr

A JSON serialized representation of the object

Returns
instancecls

An instantiated object

to_bson(self)[source]

Return a BSON serialized representation.

Specification: http://bsonspec.org/

Returns
serializedbytes

A BSON serialized representation of the objecft

classmethod from_bson(serialized)[source]

Instantiate an object from a BSON serialized representation.

Specification: http://bsonspec.org/

Parameters
serializedbytes

A BSON serialized representation of the object

Returns
instancecls

An instantiated object

to_toml(self)[source]

Return a TOML serialized representation.

Specification: https://github.com/toml-lang/toml

Returns
serializedstr

A TOML serialized representation of the object

classmethod from_toml(serialized)[source]

Instantiate an object from a TOML serialized representation.

Specification: https://github.com/toml-lang/toml

Parameters
serlializedstr

A TOML serialized representation of the object

Returns
instancecls

An instantiated object

to_yaml(self)[source]

Return a YAML serialized representation.

Specification: http://yaml.org/

Returns
serializedstr

A YAML serialized representation of the object

classmethod from_yaml(serialized)[source]

Instantiate from a YAML serialized representation.

Specification: http://yaml.org/

Parameters
serializedstr

A YAML serialized representation of the object

Returns
instancecls

Instantiated object

to_messagepack(self)[source]

Return a MessagePack representation.

Specification: https://msgpack.org/index.html

Returns
serializedbytes

A MessagePack-encoded bytes serialized representation of the object

classmethod from_messagepack(serialized)[source]

Instantiate an object from a MessagePack serialized representation.

Specification: https://msgpack.org/index.html

Parameters
serializedbytes

A MessagePack-encoded bytes serialized representation

Returns
instancecls

Instantiated object.

to_xml(self, indent=2)[source]

Return an XML representation.

Specification: https://www.w3.org/XML/

Parameters
indentint, optional, default=2

If not None, will pretty-print with specified number of spaces for indentation

Returns
serializedbytes

A MessagePack-encoded bytes serialized representation.

classmethod from_xml(serialized)[source]

Instantiate an object from an XML serialized representation.

Specification: https://www.w3.org/XML/

Parameters
serializedbytes

An XML serialized representation

Returns
instancecls

Instantiated object.

to_pickle(self)[source]

Return a pickle serialized representation.

Warning

This is not recommended for safe, stable storage since the pickle specification may change between Python versions.

Returns
serializedstr

A pickled representation of the object

classmethod from_pickle(serialized)[source]

Instantiate an object from a pickle serialized representation.

Warning

This is not recommended for safe, stable storage since the pickle specification may change between Python versions.

Parameters
serializedstr

A pickled representation of the object

Returns
instancecls

An instantiated object