Blob

class lsst.verify.Blob(name, **datums)

Bases: lsst.verify.jsonmixin.JsonSerializationMixin

Blob is a flexible container of data, as lsst.verify.Datum s, that are serializable to JSON.

Parameters:
name : str

Name of this type of blob. Blobs from one pipeline Job execution to another that share the same name generally share the same schema of lsst.verify.Datums.

datums : dict of lsst.verify.Datum-types, optional

Keys are names of datums. Values are Datum-types. Each Datum can be later retrived from the Blob instance by key.

Attributes Summary

identifier Unique UUID4-based identifier for this blob (str).
json Job data as a JSON-serializable dict.
name Name of this blob (str).

Methods Summary

deserialize([identifier, name, data]) Deserialize fields from a blob JSON object into a Blob instance.
items() Get pairs of keys and values in the Blob.
jsonify_dict(d) Recursively build JSON-renderable objects on all values in a dict.
keys() Get keys of blob items.
write_json(filepath) Write JSON to a file.

Attributes Documentation

identifier

Unique UUID4-based identifier for this blob (str).

json

Job data as a JSON-serializable dict.

name

Name of this blob (str).

Methods Documentation

classmethod deserialize(identifier=None, name=None, data=None)

Deserialize fields from a blob JSON object into a Blob instance.

Parameters:
identifier : str

Blob identifier.

name : str

Name of the blob type.

data : dict

Dictionary of named name: datum object key-value pairs.

Returns:
blob : Blob

The Blob instance deserialied from a blob JSON object.

Examples

This class method is designed to roundtrip JSON objects created a Blob instance. For example:

>>> import astropy.units as u
>>> blob = Blob('demo')
>>> blob['a_mag'] = Datum(28 * u.mag, label='i')
>>> json_data = blob.json
>>> new_blob = Blob.deserialize(**json_data)
items()

Get pairs of keys and values in the Blob.

Yields:
keyval : tuple

Tuple of:

static jsonify_dict(d)

Recursively build JSON-renderable objects on all values in a dict.

Parameters:
d : dict

Dictionary to convert into a JSON-serializable object. Values are recursively JSON-ified.

Returns:
json_dict : dict

Dictionary that can be serialized to JSON.

Examples

Subclasses can use this method to prepare output in their json-method implementation. For example:

def json(self):
    return JsonSerializationMixin.jsonify_dict({
        'value': self.value,
    })
keys()

Get keys of blob items.

Returns:
keys : sequence of str

Sequence of keys to items in the Blob.

write_json(filepath)

Write JSON to a file.

Parameters:
filepath : str

Destination file name for JSON output.