# openforcefield.utils.serialization.Serializable

class `openforcefield.utils.serialization.``Serializable`

  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.