Blob¶
- class lsst.verify.Blob(name, **datums)¶
Bases:
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.Datum
s.- datums
dict
oflsst.verify.Datum
-types, optional Keys are names of datums. Values are
Datum
-types. EachDatum
can be later retrived from the Blob instance by key.
- name
Attributes Summary
Unique UUID4-based identifier for this blob (
str
).Job data as a JSON-serializable
dict
.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
Methods Documentation
- classmethod deserialize(identifier=None, name=None, data=None)¶
Deserialize fields from a blob JSON object into a
Blob
instance.- Parameters:
- Returns:
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:
- keyvaltuple
Tuple of:
key (
str
)datum (
lsst.verify.Datum
)
- 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.
- d
- Returns:
- json_dict
dict
Dictionary that can be serialized to JSON.
- json_dict
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, })