JsonInputArchive#

class lsst.images.json.JsonInputArchive(indirect: list[Any] | None = None)#

Bases: InputArchive[JsonRef]

An implementation of the serialization.InputArchive interface that reads from JSON files.

Parameters#

indirect

The serialization.ArchiveTree.indirect attribute of the root serialization model.

Methods Summary

deserialize_pointer(pointer, model_type, ...)

Deserialize an object that was saved by serialize_pointer.

get_array(model, *[, slices, strip_header])

Load an array from the archive.

get_frame_set(ref)

Return an already-deserialized frame set from the archive.

get_opaque_metadata()

Return opaque metadata loaded from the file that should be saved if another version of the object is saved to the same file format.

get_structured_array(model[, strip_header])

Load a table from the archive as a structured array.

get_table(model[, strip_header])

Load a table from the archive.

Methods Documentation

deserialize_pointer(pointer: JsonRef, model_type: type[U], deserializer: Callable[[U, InputArchive[JsonRef]], V]) V#

Deserialize an object that was saved by serialize_pointer.

Parameters#

pointer

JSON Pointer model to dereference.

model_type

Pydantic model type that the pointer should dereference to.

deserializer

Callable that takes an instance of model_type and an input archive, and returns the deserialized object.

Returns#

V

The deserialized object.

Notes#

Implementations are required to remember previously-deserialized objects and return them when the same pointer is passed in multiple times.

There is no deserialize_direct (to pair with serialize_direct) because the caller can just call a deserializer function directly on a sub-model of its Pydantic tree.

get_array(model: ~lsst.images.serialization._asdf_utils.ArrayReferenceModel | ~lsst.images.serialization._asdf_utils.InlineArrayModel, *, slices: tuple[slice, ...] | ellipsis = Ellipsis, strip_header: ~collections.abc.Callable[[~astropy.io.fits.header.Header], None] = <function no_header_updates>) ndarray#

Load an array from the archive.

Parameters#

model

A Pydantic model that references or holds the array.

slices

Slices that specify a subset of the original array to read.

strip_header

A callable that strips out any FITS header cards added by the update_header argument in the corresponding call to add_array.

get_frame_set(ref: JsonRef) FrameSet#

Return an already-deserialized frame set from the archive.

Parameters#

ref

Implementation-specific reference to the frame set.

Returns#

FrameSet

Loaded frame set.

get_opaque_metadata() OpaqueArchiveMetadata | None#

Return opaque metadata loaded from the file that should be saved if another version of the object is saved to the same file format.

Returns#

OpaqueArchiveMetadata

Opaque metadata specific to this archive type that should be round-tripped if it is saved in the same format.

get_structured_array(model: ~lsst.images.serialization._tables.TableModel, strip_header: ~collections.abc.Callable[[~astropy.io.fits.header.Header], None] = <function no_header_updates>) ndarray#

Load a table from the archive as a structured array.

Parameters#

model

A Pydantic model that references or holds the table.

strip_header

A callable that strips out any FITS header cards added by the update_header argument in the corresponding call to add_structured_array.

Returns#

numpy.ndarray

The loaded table as a structured array.

get_table(model: ~lsst.images.serialization._tables.TableModel, strip_header: ~collections.abc.Callable[[~astropy.io.fits.header.Header], None] = <function no_header_updates>) Table#

Load a table from the archive.

Parameters#

model

A Pydantic model that references or holds the table.

strip_header

A callable that strips out any FITS header cards added by the update_header argument in the corresponding call to add_table.

Returns#

astropy.table.Table

The loaded table.