Formatter¶
-
class
lsst.daf.butler.Formatter(fileDescriptor: FileDescriptor, dataId: DataCoordinate, writeParameters: Optional[Dict[str, Any]] = None, writeRecipes: Optional[Dict[str, Any]] = None)¶ Bases:
objectInterface 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. Its value can be
Noneif the caller will never callFormatter.readorFormatter.write.- dataId :
DataCoordinate Data ID associated with this formatter.
- writeParameters :
dict, optional Any parameters to be hard-coded into this instance to control how the dataset is serialized.
- writeRecipes :
dict, optional Detailed write Recipes indexed by recipe name.
Notes
All Formatter subclasses should share the base class’s constructor signature.
Attributes Summary
dataIdReturn Data ID associated with this formatter ( DataCoordinate).fileDescriptorFile descriptor associated with this formatter ( FileDescriptor).supportedExtensionsSet of all extensions supported by this formatter. supportedWriteParametersParameters understood by this formatter that can be used to control how a dataset is serialized. unsupportedParametersSet of read parameters not understood by this Formatter.writeParametersParameters to use when writing out datasets. writeRecipesDetailed write Recipes indexed by recipe name. Methods Summary
can_read_bytes()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 Locationupdated with this formatter’s extension.name()Return the fully qualified name of the formatter. predictPath()Return the path that would be returned by write. read(component, None] = None)Read a Dataset. segregateParameters(parameters, Any], …)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, Any], None])Validate supplied recipes for this formatter. write(inMemoryDataset)Write a Dataset. Attributes Documentation
-
dataId¶ Return Data ID associated with this formatter (
DataCoordinate).
-
fileDescriptor¶ File descriptor associated with this formatter (
FileDescriptor).Read-only property.
-
supportedExtensions= frozenset()¶ Set of all extensions supported by this formatter.
Only expected to be populated by Formatters that write files. Any extension assigned to the
extensionproperty will be automatically included in the list of supported extensions.
-
supportedWriteParameters= None¶ Parameters understood by this formatter that can be used to control how a dataset is serialized.
Noneindicates that no parameters are supported.
-
unsupportedParameters= frozenset()¶ Set of read parameters not understood by this
Formatter. An empty set means all parameters are supported.Noneindicates that no parameters are supported. These param (frozenset).
-
writeParameters¶ Parameters to use when writing out datasets.
-
writeRecipes¶ Detailed write Recipes indexed by recipe name.
Methods Documentation
-
classmethod
can_read_bytes() → bool¶ Indicate if this formatter can format from bytes.
Returns:
-
fromBytes(serializedDataset: bytes, component: Optional[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
StorageClassfor reading differed from theStorageClassused to write the file.
Returns: - inMemoryDataset :
object The requested data as a Python object. The type of object is controlled by the specific formatter.
- serializedDataset :
-
makeUpdatedLocation(location: lsst.daf.butler.core.location.Location) → lsst.daf.butler.core.location.Location¶ Return a new
Locationupdated with this formatter’s extension.Parameters: - location :
Location The location to update.
Returns: Raises: - NotImplementedError
Raised if there is no
extensionattribute 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
extensionattribute containing the file extension used when writing files. IfextensionisNonethe supplied file will not be updated. Not all formatters write files so this is not defined in the base class.- location :
-
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
FileDescriptorassociated with the instance.Returns:
-
read(component: Optional[str, None] = None) → Any¶ Read a Dataset.
Parameters: - component :
str, optional Component to read from the file. Only used if the
StorageClassfor reading differed from theStorageClassused to write the file.
Returns: - inMemoryDataset :
object The requested Dataset.
- component :
-
segregateParameters(parameters: Optional[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
Noneparameters will be read from the registeredFileDescriptor.
Returns: - parameters :
-
toBytes(inMemoryDataset: Any) → bytes¶ Serialize the Dataset to bytes based on formatter.
Parameters: - inMemoryDataset :
object The Python object to serialize.
Returns: - serializedDataset :
bytes Bytes representing the serialized dataset.
- inMemoryDataset :
-
classmethod
validateExtension(location: lsst.daf.butler.core.location.Location) → None¶ Check the extension of the provided location for compatibility.
Parameters: - location :
Location Location from which to extract a file extension.
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
extensionattribute containing the file extension used when writing files. IfextensionisNoneonly the set of supported extensions will be examined.- location :
-
classmethod
validateWriteRecipes(recipes: Optional[collections.abc.Mapping[str, Any], None]) → Optional[collections.abc.Mapping[str, Any], None]¶ Validate supplied recipes for this formatter.
The recipes are supplemented with default values where appropriate.
Parameters: - recipes :
dict Recipes to validate.
Returns: - validated :
dict Validated recipes.
Raises: - RuntimeError
Raised if validation fails. The default implementation raises if any recipes are given.
- recipes :
- fileDescriptor :