FormatterFactory¶
- class lsst.daf.butler.FormatterFactory¶
- Bases: - object- Factory for - Formatterinstances.- Attributes Summary - Configuration key associated with default write parameter settings. - Configuration key associated with write recipes. - Methods Summary - getFormatter(entity, *args, **kwargs)- Get a new formatter instance. - getFormatterClass(entity)- Get the matching formatter class. - getFormatterClassWithMatch(entity)- getFormatterWithMatch(entity, *args, **kwargs)- Retrieve the look up keys for all the registry entries. - registerFormatter(type_, formatter, *[, ...])- Register a - Formatter.- registerFormatters(config, *, universe)- Bulk register formatters from a config. - Attributes Documentation - defaultKey = LookupKey(name='default',)¶
- Configuration key associated with default write parameter settings. 
 - writeRecipesKey = LookupKey(name='write_recipes',)¶
- Configuration key associated with write recipes. 
 - Methods Documentation - getFormatter(entity: Entity, *args: Any, **kwargs: Any) Formatter | FormatterV2¶
- Get a new formatter instance. - Parameters:
- entityDatasetRef,DatasetType,StorageClass, orstr
- Entity to use to determine the formatter to return. - StorageClasswill be used as a last resort if- DatasetRefor- DatasetTypeinstance is provided. Supports instrument override if a- DatasetRefis provided configured with an- instrumentvalue for the data ID.
- *argstuple
- Positional arguments to use pass to the object constructor. 
- **kwargs
- Keyword arguments to pass to object constructor. 
 
- entity
- Returns:
- formatterFormatter
- An instance of the registered formatter. 
 
- formatter
 
 - getFormatterClass(entity: Entity) type¶
- Get the matching formatter class. - Parameters:
- entityDatasetRef,DatasetType,StorageClass, orstr
- Entity to use to determine the formatter to return. - StorageClasswill be used as a last resort if- DatasetRefor- DatasetTypeinstance is provided. Supports instrument override if a- DatasetRefis provided configured with an- instrumentvalue for the data ID.
 
- entity
- Returns:
- formattertype
- The class of the registered formatter. 
 
- formatter
 
 - getFormatterClassWithMatch(entity: Any) tuple[lsst.daf.butler._config_support.LookupKey, type[lsst.daf.butler._formatter.Formatter | lsst.daf.butler._formatter.FormatterV2], dict[str, Any]]¶
 - getFormatterWithMatch(entity: Any, *args: Any, **kwargs: Any) tuple[lsst.daf.butler._config_support.LookupKey, lsst.daf.butler._formatter.Formatter | lsst.daf.butler._formatter.FormatterV2]¶
 - getLookupKeys() set[lsst.daf.butler._config_support.LookupKey]¶
- Retrieve the look up keys for all the registry entries. 
 - registerFormatter(type_: LookupKey | str | StorageClass | DatasetType, formatter: str, *, overwrite: bool = False, **kwargs: Any) None¶
- Register a - Formatter.- Parameters:
- type_LookupKey,str,StorageClassorDatasetType
- Type for which this formatter is to be used. If a - LookupKeyis not provided, one will be constructed from the supplied string or by using the- nameproperty of the supplied entity.
- formatterstror class of typeFormatter
- Identifies a - Formattersubclass to use for reading and writing Datasets of this type. Can be a- Formatterclass.
- overwritebool, optional
- If - Truean existing entry will be replaced by the new value. Default is- False.
- **kwargs
- Keyword arguments to always pass to object constructor when retrieved. 
 
- type_
- Raises:
- ValueError
- Raised if the formatter does not name a valid formatter type and - overwriteis- False.
 
 
 - registerFormatters(config: Config, *, universe: DimensionUniverse) None¶
- Bulk register formatters from a config. - Parameters:
- configConfig
- formatterssection of a configuration.
- universeDimensionUniverse, optional
- Set of all known dimensions, used to expand and validate any used in lookup keys. 
 
- config
 - Notes - The configuration can include one level of hierarchy where an instrument-specific section can be defined to override more general template specifications. This is represented in YAML using a key of form - instrument<name>which can then define templates that will be returned if a- DatasetRefcontains a matching instrument name in the data ID.- The config is parsed using the function - processLookupConfigs.- The values for formatter entries can be either a simple string referring to a python type or a dict representing the formatter and parameters to be hard-coded into the formatter constructor. For the dict case the following keys are supported: - formatter: The python type to be used as the formatter class. 
- parameters: A further dict to be passed directly to the
- write_parametersFormatter constructor to seed it. These parameters are validated at instance creation and not at configuration.
 
 - Additionally, a special - defaultsection can be defined that uses the formatter type (class) name as the keys and specifies default write parameters that should be used whenever an instance of that class is constructed.- formatters: default: lsst.daf.butler.formatters.example.ExampleFormatter: max: 10 min: 2 comment: Default comment calexp: lsst.daf.butler.formatters.example.ExampleFormatter coadd: formatter: lsst.daf.butler.formatters.example.ExampleFormatter parameters: max: 5 - Any time an - ExampleFormatteris constructed it will use those parameters. If an explicit entry later in the configuration specifies a different set of parameters, the two will be merged with the later entry taking priority. In the example above- calexpwill use the default parameters but- coaddwill override the value for- max.- Formatter configuration can also include a special section describing collections of write parameters that can be accessed through a simple label. This allows common collections of options to be specified in one place in the configuration and reused later. The - write_recipessection is indexed by Formatter class name and each key is the label to associate with the parameters.- formatters: write_recipes: lsst.obs.base.formatters.fitsExposure.FixExposureFormatter: lossless: ... noCompression: ... - By convention a formatter that uses write recipes will support a - recipewrite parameter that will refer to a recipe name in the- write_recipescomponent. The- Formatterwill be constructed in the- FormatterFactorywith all the relevant recipes and will not attempt to filter by looking at- write_parametersin advance. See the specific formatter documentation for details on acceptable recipe options.