JsonInputArchive#

class lsst.images.json.JsonInputArchive(indirect=None)#

Bases: InputArchive[JsonRef]

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

Parameters:

indirect (list[Any] | None, default: None) – 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_basic_info(path)

Read the top-level tree's schema_url; JSON has no container format version.

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.

open_tree(cls, path, *[, partial])

Parse the JSON tree and yield (archive, tree, info).

Methods Documentation

deserialize_pointer(pointer, model_type, deserializer)#

Deserialize an object that was saved by serialize_pointer.

Parameters:
Returns:

The deserialized object.

Return type:

V

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, *, slices=Ellipsis, strip_header=<function no_header_updates>)#

Load an array from the archive.

Parameters:
  • model (ArrayReferenceModel | InlineArrayModel) – A Pydantic model that references or holds the array.

  • slices (tuple[slice, ...] | EllipsisType, default: Ellipsis) – Slices that specify a subset of the original array to read.

  • strip_header (Callable[[Header], None], default: <function no_header_updates at 0x7f27576196c0>) – A callable that strips out any FITS header cards added by the update_header argument in the corresponding call to add_array.

Return type:

ndarray

classmethod get_basic_info(path)#

Read the top-level tree’s schema_url; JSON has no container format version.

This parses the whole document. Unlike the FITS and NDF backends there is no cheap header to read: schema_url is a computed field serialized after the (potentially large) indirect payload, and nested trees carry their own schema_url, so a bounded prefix cannot identify the top-level tree reliably. JSON is not intended for large pixel archives, where FITS or NDF should be used instead.

Parameters:

path (str | ParseResult | ResourcePath | Path) – Path to the archive to read.

Return type:

ArchiveInfo

get_frame_set(ref)#

Return an already-deserialized frame set from the archive.

Parameters:

ref (JsonRef) – Implementation-specific reference to the frame set.

Returns:

Loaded frame set.

Return type:

FrameSet

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.

Returns:

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

Return type:

OpaqueArchiveMetadata

get_structured_array(model, strip_header=<function no_header_updates>)#

Load a table from the archive as a structured array.

Parameters:
  • model (TableModel) – A Pydantic model that references or holds the table.

  • strip_header (Callable[[Header], None], default: <function no_header_updates at 0x7f27576196c0>) – A callable that strips out any FITS header cards added by the update_header argument in the corresponding call to add_structured_array.

Returns:

The loaded table as a structured array.

Return type:

numpy.ndarray

get_table(model, strip_header=<function no_header_updates>)#

Load a table from the archive.

Parameters:
  • model (TableModel) – A Pydantic model that references or holds the table.

  • strip_header (Callable[[Header], None], default: <function no_header_updates at 0x7f27576196c0>) – A callable that strips out any FITS header cards added by the update_header argument in the corresponding call to add_table.

Returns:

The loaded table.

Return type:

astropy.table.Table

classmethod open_tree(cls, path, *, partial=True, **backend_kwargs)#

Parse the JSON tree and yield (archive, tree, info).

Parameters:
  • path (Union[str, ParseResult, ResourcePath, Path, IO[bytes]]) – File resource to open, or a seekable binary stream containing the file’s content.

  • partial (bool, default: True) – Ignored. The entire JSON file is always read into memory.

  • **backend_kwargs (Any) – No keyword parameters are supported by this backend.

Return type:

Iterator[tuple[Self, ArchiveTree, ArchiveInfo]]

This page was last modified on .