Formatter¶
- class lsst.daf.butler.Formatter(fileDescriptor: FileDescriptor, *, dataId: DataCoordinate | None = None, writeParameters: Mapping[str, Any] | None = None, writeRecipes: Mapping[str, Any] | None = None, **kwargs: Any)¶
Bases:
object
Interface for reading and writing Datasets.
The formatters are associated with a particular
StorageClass
.- Parameters:
- fileDescriptor
FileDescriptor
, optional Identifies the file to read or write, and the associated storage classes and parameter information.
- dataId
DataCoordinate
Data ID associated with this formatter.
- writeParameters
dict
, optional Parameters to control how the dataset is serialized.
- writeRecipes
dict
, optional Detailed write recipes indexed by recipe name.
- **kwargs
Additional parameters that can allow parameters from
FormatterV2
to be provided.
- fileDescriptor
Notes
All Formatter subclasses should share the base class’s constructor signature.
Attributes Summary
Return Data ID associated with this formatter (
DataCoordinate
).Default file extension to use for writing files.
File descriptor associated with this formatter (
FileDescriptor
).Set of all extensions supported by this formatter.
Parameters understood by this formatter that can be used to control how a dataset is serialized.
Set of read parameters not understood by this
Formatter
.Parameters to use when writing out datasets.
Detailed write Recipes indexed by recipe name.
Methods Summary
can_accept
(in_memory_dataset)Indicate whether this formatter can accept the specified storage class directly.
Indicate if this formatter can format from bytes.
fromBytes
(serializedDataset[, component])Read serialized data into a Dataset or its component.
makeUpdatedLocation
(location)Return a new
Location
updated with this formatter's extension.make_updated_location
(location)Return a new
Location
updated with this formatter's extension.name
()Return the fully qualified name of the formatter.
Return the path that would be returned by write.
Return the path that would be returned by write.
read
([component])Read a Dataset.
segregateParameters
([parameters])Segregate the supplied parameters.
segregate_parameters
([parameters])Segregate the supplied parameters.
toBytes
(inMemoryDataset)Serialize the Dataset to bytes based on formatter.
validateExtension
(location)Check the extension of the provided location for compatibility.
validateWriteRecipes
(recipes)Validate supplied recipes for this formatter.
validate_extension
(location)Check the extension of the provided location for compatibility.
validate_write_recipes
(recipes)write
(inMemoryDataset)Write a Dataset.
Attributes Documentation
- dataId¶
Return Data ID associated with this formatter (
DataCoordinate
).
- data_id¶
- extension: str | None = None¶
Default file extension to use for writing files. None means that no modifications will be made to the supplied file extension. (
str
)
- fileDescriptor¶
File descriptor associated with this formatter (
FileDescriptor
).
- file_descriptor¶
- supportedExtensions: ClassVar[Set[str]] = frozenset({})¶
Set of all extensions supported by this formatter.
Only expected to be populated by Formatters that write files. Any extension assigned to the
extension
property will be automatically included in the list of supported extensions.
- supportedWriteParameters: ClassVar[Set[str] | None] = None¶
Parameters understood by this formatter that can be used to control how a dataset is serialized.
None
indicates that no parameters are supported.
- unsupportedParameters: ClassVar[Set[str] | None] = frozenset({})¶
Set of read parameters not understood by this
Formatter
. An empty set means all parameters are supported.None
indicates that no parameters are supported. These parameters should match those defined in the storage class definition. (frozenset
).
- writeParameters¶
Parameters to use when writing out datasets.
- writeRecipes¶
Detailed write Recipes indexed by recipe name.
- write_parameters¶
- write_recipes¶
Methods Documentation
- can_accept(in_memory_dataset: Any) bool ¶
Indicate whether this formatter can accept the specified storage class directly.
- Parameters:
- in_memory_dataset
object
The dataset that is to be written.
- in_memory_dataset
- Returns:
Notes
The base class checks that the given python type matches the python type specified for this formatter when constructed.
- fromBytes(serializedDataset: bytes, component: str | None = None) object ¶
Read serialized data into a Dataset or its component.
- Parameters:
- serializedDataset
bytes
Bytes object to unserialize.
- component
str
, optional Component to read from the Dataset. Only used if the
StorageClass
for reading differed from theStorageClass
used to write the file.
- serializedDataset
- Returns:
- inMemoryDataset
object
The requested data as a Python object. The type of object is controlled by the specific formatter.
- inMemoryDataset
- makeUpdatedLocation(location: Location) Location ¶
Return a new
Location
updated with this formatter’s extension.- Parameters:
- location
Location
The location to update.
- location
- Returns:
- Raises:
- NotImplementedError
Raised if there is no
extension
attribute associated with this formatter.
Notes
This method is available to all Formatters but might not be implemented by all formatters. It requires that a formatter set an
extension
attribute containing the file extension used when writing files. Ifextension
isNone
the supplied file will not be updated. Not all formatters write files so this is not defined in the base class.
- make_updated_location(location: Location) Location ¶
Return a new
Location
updated with this formatter’s extension.- Parameters:
- location
Location
The location to update.
- location
- Returns:
- Raises:
- NotImplementedError
Raised if there is no
extension
attribute associated with this formatter.
Notes
This method is available to all Formatters but might not be implemented by all formatters. It requires that a formatter set an
extension
attribute containing the file extension used when writing files. Ifextension
isNone
the supplied file will not be updated. Not all formatters write files so this is not defined in the base class.
- classmethod name() str ¶
Return the fully qualified name of the formatter.
- Returns:
- name
str
Fully-qualified name of formatter class.
- name
- predictPath() str ¶
Return the path that would be returned by write.
Does not write any data file.
Uses the
FileDescriptor
associated with the instance.
- predict_path() str ¶
Return the path that would be returned by write.
Does not write any data file.
Uses the
FileDescriptor
associated with the instance.
- abstract read(component: str | None = None) Any ¶
Read a Dataset.
- Parameters:
- component
str
, optional Component to read from the file. Only used if the
StorageClass
for reading differed from theStorageClass
used to write the file.
- component
- Returns:
- inMemoryDataset
object
The requested Dataset.
- inMemoryDataset
- segregateParameters(parameters: dict[str, Any] | None = None) tuple[dict, dict] ¶
Segregate the supplied parameters.
This splits the parameters into those understood by the formatter and those not understood by the formatter.
Any unsupported parameters are assumed to be usable by associated assemblers.
- Parameters:
- parameters
dict
, optional Parameters with values that have been supplied by the caller and which might be relevant for the formatter. If
None
parameters will be read from the registeredFileDescriptor
.
- parameters
- Returns:
- segregate_parameters(parameters: dict[str, Any] | None = None) tuple[dict, dict] ¶
Segregate the supplied parameters.
This splits the parameters into those understood by the formatter and those not understood by the formatter.
Any unsupported parameters are assumed to be usable by associated assemblers.
- Parameters:
- parameters
dict
, optional Parameters with values that have been supplied by the caller and which might be relevant for the formatter. If
None
parameters will be read from the registeredFileDescriptor
.
- parameters
- Returns:
- classmethod validateExtension(location: Location) None ¶
Check the extension of the provided location for compatibility.
- Parameters:
- location
Location
Location from which to extract a file extension.
- location
- Raises:
- NotImplementedError
Raised if file extensions are a concept not understood by this formatter.
- ValueError
Raised if the formatter does not understand this extension.
Notes
This method is available to all Formatters but might not be implemented by all formatters. It requires that a formatter set an
extension
attribute containing the file extension used when writing files. Ifextension
isNone
only the set of supported extensions will be examined.
- classmethod validateWriteRecipes(recipes: Mapping[str, Any] | None) Mapping[str, Any] | None ¶
Validate supplied recipes for this formatter.
The recipes are supplemented with default values where appropriate.
- classmethod validate_extension(location: Location) None ¶
Check the extension of the provided location for compatibility.
- Parameters:
- location
Location
Location from which to extract a file extension.
- location
- Raises:
- NotImplementedError
Raised if file extensions are a concept not understood by this formatter.
- ValueError
Raised if the formatter does not understand this extension.
Notes
This method is available to all Formatters but might not be implemented by all formatters. It requires that a formatter set an
extension
attribute containing the file extension used when writing files. Ifextension
isNone
only the set of supported extensions will be examined.