base64

Utilities to encode and decode Base64.

New in version 1.10.

oslo_serialization.base64.decode_as_bytes(encoded)

Decode a Base64 encoded string.

Parameters:encoded – bytes or text Base64 encoded string to be decoded
Returns:decoded bytes string (bytes)

Use decode_as_text() to get the decoded string as text.

oslo_serialization.base64.decode_as_text(encoded, encoding='utf-8')

Decode a Base64 encoded string.

Decode the Base64 string and then decode the result from encoding (UTF-8 by default).

Parameters:encoded – bytes or text Base64 encoded string to be decoded
Returns:decoded text string (bytes)

Use decode_as_bytes() to get the decoded string as bytes.

oslo_serialization.base64.encode_as_bytes(s, encoding='utf-8')

Encode a string using Base64.

If s is a text string, first encode it to encoding (UTF-8 by default).

Parameters:
  • s – bytes or text string to be encoded
  • encoding – encoding used to encode s if it’s a text string
Returns:

Base64 encoded byte string (bytes)

Use encode_as_text() to get the Base64 encoded string as text.

oslo_serialization.base64.encode_as_text(s, encoding='utf-8')

Encode a string using Base64.

If s is a text string, first encode it to encoding (UTF-8 by default).

Parameters:
  • s – bytes or text string to be encoded
  • encoding – encoding used to encode s if it’s a text string
Returns:

Base64 encoded text string (Unicode)

Use encode_as_bytes() to get the Base64 encoded string as bytes.

jsonutils

JSON related utilities.

This module provides a few things:

  1. A handy function for getting an object down to something that can be JSON serialized. See to_primitive().
  2. Wrappers around loads() and dumps(). The dumps() wrapper will automatically use to_primitive() for you if needed.
  3. This sets up anyjson to use the loads() and dumps() wrappers if anyjson is available.
oslo_serialization.jsonutils.dump(obj, fp, *args, **kwargs)

Serialize obj as a JSON formatted stream to fp

Parameters:
  • obj – object to be serialized
  • fp – a .write()-supporting file-like object
  • default – function that returns a serializable version of an object, to_primitive() is used by default.
  • args – extra arguments, please see documentation of json.dump
  • kwargs

    extra named parameters, please see documentation of json.dump

Changed in version 1.3: The default parameter now uses to_primitive() by default.

oslo_serialization.jsonutils.dump_as_bytes(obj, default=<function to_primitive at 0x2a46398>, encoding='utf-8', **kwargs)

Serialize obj to a JSON formatted bytes.

Parameters:
  • obj – object to be serialized
  • default – function that returns a serializable version of an object, to_primitive() is used by default.
  • encoding – encoding used to encode the serialized JSON output
  • kwargs – extra named parameters, please see documentation of json.dumps
Returns:

json formatted string

New in version 1.10.

oslo_serialization.jsonutils.dumps(obj, default=<function to_primitive at 0x2a46398>, **kwargs)

Serialize obj to a JSON formatted str.

Parameters:
  • obj – object to be serialized
  • default – function that returns a serializable version of an object, to_primitive() is used by default.
  • kwargs

    extra named parameters, please see documentation of json.dumps

Returns:

json formatted string

Use dump_as_bytes() to ensure that the result type is bytes on Python 2 and Python 3.

oslo_serialization.jsonutils.load(fp, encoding='utf-8', **kwargs)

Deserialize fp to a Python object.

Parameters:
  • fp – a .read() -supporting file-like object
  • encoding – encoding used to interpret the string
  • kwargs – extra named parameters, please see documentation of json.loads
Returns:

python object

oslo_serialization.jsonutils.loads(s, encoding='utf-8', **kwargs)

Deserialize s (a str or unicode instance containing a JSON

Parameters:
  • s – string to deserialize
  • encoding – encoding used to interpret the string
  • kwargs

    extra named parameters, please see documentation of json.loads

Returns:

python object

oslo_serialization.jsonutils.to_primitive(value, convert_instances=False, convert_datetime=True, level=0, max_depth=3)

Convert a complex object into primitives.

Handy for JSON serialization. We can optionally handle instances, but since this is a recursive function, we could have cyclical data structures.

To handle cyclical data structures we could track the actual objects visited in a set, but not all objects are hashable. Instead we just track the depth of the object inspections and don’t go too deep.

Therefore, convert_instances=True is lossy ... be aware.

Changed in version 1.3: Support UUID encoding.

Changed in version 1.6: Dictionary keys are now also encoded.

msgpackutils

Msgpack related utilities.

This module provides a few things:

  1. A handy registry for getting an object down to something that can be msgpack serialized. See HandlerRegistry.
  2. Wrappers around loads() and dumps(). The dumps() wrapper will automatically use the default_registry for you if needed.

New in version 1.3.

class oslo_serialization.msgpackutils.HandlerRegistry

Registry of type specific msgpack handlers extensions.

See: https://github.com/msgpack/msgpack/blob/master/spec.md#formats-ext

Do note that due to the current limitations in the msgpack python library we can not currently dump/load a tuple without converting it to a list.

This may be fixed in: https://github.com/msgpack/msgpack-python/pull/100

New in version 1.5.

get(identity)

Get the handle for the given numeric identity (or none).

match(obj)

Match the registries handlers to the given object (or none).

register(handler)

Register a extension handler to handle its associated type.

oslo_serialization.msgpackutils.default_registry = <oslo_serialization.msgpackutils.HandlerRegistry object at 0x2e6a8d0>

Default, read-only/frozen registry that will be used when none is provided.

This registry has msgpack extensions for the following:

  • DateTime objects.
  • Date objects.
  • UUID objects.
  • itertools.count objects/iterators.
  • set and frozenset container(s).
  • netaddr.IPAddress objects (only if netaddr is importable).
  • xmlrpclib.DateTime datetime objects.

New in version 1.5.

oslo_serialization.msgpackutils.dump(obj, fp, registry=None)

Serialize obj as a messagepack formatted stream to fp.

Changed in version 1.5: Added registry parameter.

oslo_serialization.msgpackutils.dumps(obj, registry=None)

Serialize obj to a messagepack formatted str.

Changed in version 1.5: Added registry parameter.

oslo_serialization.msgpackutils.load(fp, registry=None)

Deserialize fp into a Python object.

Changed in version 1.5: Added registry parameter.

oslo_serialization.msgpackutils.loads(s, registry=None)

Deserialize s messagepack str into a Python object.

Changed in version 1.5: Added registry parameter.

Table Of Contents

Previous topic

Contributing

Next topic

CHANGES

This Page