TaskMetadata¶
- class lsst.pipe.base.TaskMetadata(*, scalars: dict[str, pydantic.types.StrictFloat | pydantic.types.StrictInt | pydantic.types.StrictBool | pydantic.types.StrictStr] = None, arrays: dict[str, list[pydantic.types.StrictFloat] | list[pydantic.types.StrictInt] | list[pydantic.types.StrictBool] | list[pydantic.types.StrictStr]] = None, metadata: dict[str, 'TaskMetadata'] = None)¶
Bases:
BaseModelDict-like object for storing task metadata.
Metadata can be stored at two levels: single task or task plus subtasks. The later is called full metadata of a task and has a form
topLevelTaskName:subtaskName:subsubtaskName.itemName
Metadata item key of a task (
itemNameabove) must not contain, which serves as a separator in full metadata keys and turns the value into sub-dictionary. Arbitrary hierarchies are supported.Methods Summary
add(name, value)Store a new value, adding to a list if one already exists.
construct([_fields_set])Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.
copy(*[, include, exclude, update, deep])Duplicate a model, optionally choose which fields to include, exclude and change.
dict(*[, include, exclude, by_alias, ...])Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
from_dict(d)Create a TaskMetadata from a dictionary.
from_metadata(ps)Create a TaskMetadata from a PropertySet-like object.
from_orm(obj)get(key[, default])Retrieve the item associated with the key or a default.
getArray(key)Retrieve an item as a list even if it is a scalar.
getScalar(key)Retrieve a scalar item even if the item is a list.
items()Yield the top-level keys and values.
json(*[, include, exclude, by_alias, ...])Generate a JSON representation of the model,
includeandexcludearguments as perdict().keys()Return the top-level keys.
names([topLevelOnly])Return the hierarchical keys from the metadata.
paramNames(topLevelOnly)Return hierarchical names.
parse_file(path, *[, content_type, ...])parse_obj(obj)parse_raw(b, *[, content_type, encoding, ...])schema([by_alias, ref_template])schema_json(*[, by_alias, ref_template])to_dict()Convert the class to a simple dictionary.
update_forward_refs(**localns)Try to update ForwardRefs on fields based on this Model, globalns and localns.
validate(value)Methods Documentation
- add(name: str, value: Any) None¶
Store a new value, adding to a list if one already exists.
- Parameters:
- name
str Name of the metadata property.
- value
Metadata property value.
- name
- classmethod construct(_fields_set: SetStr | None = None, **values: Any) Model¶
Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if
Config.extra = 'allow'was set since it adds all passed values
- copy(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, update: DictStrAny | None = None, deep: bool = False) Model¶
Duplicate a model, optionally choose which fields to include, exclude and change.
- Parameters:
include – fields to include in new model
exclude – fields to exclude from new model, as with values this takes precedence over include
update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data
deep – set to
Trueto make a deep copy of the model
- Returns:
new model instance
- dict(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, by_alias: bool = False, skip_defaults: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny¶
Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
- classmethod from_dict(d: Mapping[str, Any]) TaskMetadata¶
Create a TaskMetadata from a dictionary.
- Parameters:
- d
Mapping Mapping to convert. Can be hierarchical. Any dictionaries in the hierarchy are converted to
TaskMetadata.
- d
- Returns:
- meta
TaskMetadata Newly-constructed metadata.
- meta
- classmethod from_metadata(ps: PropertySetLike) TaskMetadata¶
Create a TaskMetadata from a PropertySet-like object.
- Parameters:
- ps
PropertySetLikeorTaskMetadata A
PropertySet-like object to be transformed to aTaskMetadata. ATaskMetadatacan be copied using this class method.
- ps
- Returns:
- tm
TaskMetadata Newly-constructed metadata.
- tm
Notes
Items stored in single-element arrays in the supplied object will be converted to scalars in the newly-created object.
- get(key: str, default: Any | None = None) Any¶
Retrieve the item associated with the key or a default.
- Parameters:
- key
str The key to retrieve. Can be dot-separated hierarchical.
- default
The value to return if the key doesnot exist.
- key
- Returns:
- value
TaskMetadata,float,int,bool,str A scalar value. If the key refers to an array, the final element is returned and not the array itself; this is consistent with
__getitem__andPropertySet.get, but notto_dict().get.
- value
- json(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, by_alias: bool = False, skip_defaults: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Callable[[Any], Any] | None = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode¶
Generate a JSON representation of the model,
includeandexcludearguments as perdict().encoderis an optional function to supply asdefaultto json.dumps(), other arguments as perjson.dumps().
- names(topLevelOnly: bool = True) set[str]¶
Return the hierarchical keys from the metadata.
- Parameters:
- topLevelOnly
bool If true, return top-level keys, otherwise full metadata item keys.
- topLevelOnly
- Returns:
- names
collections.abc.Set A set of top-level keys or full metadata item keys, including the top-level keys.
- names
Notes
Should never be called in new code with
topLevelOnlyset toTrue– this is equivalent to asking for the keys and is the default when iterating through the task metadata. In this case a deprecation message will be issued and the ability will raise an exception in a future release.When
topLevelOnlyisFalseall keys, including those from the hierarchy and the top-level hierarchy, are returned.
- paramNames(topLevelOnly: bool) set[str]¶
Return hierarchical names.
- Parameters:
- topLevelOnly
bool Control whether only top-level items are returned or items from the hierarchy.
- topLevelOnly
- Returns:
- classmethod parse_file(path: str | Path, *, content_type: unicode = None, encoding: unicode = 'utf8', proto: Protocol = None, allow_pickle: bool = False) Model¶
- classmethod parse_raw(b: str | bytes, *, content_type: unicode = None, encoding: unicode = 'utf8', proto: Protocol = None, allow_pickle: bool = False) Model¶
- classmethod schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') DictStrAny¶
- classmethod schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs: Any) unicode¶
- to_dict() dict[str, Any]¶
Convert the class to a simple dictionary.
- Returns:
- d
dict Simple dictionary that can contain scalar values, array values or other dictionary values.
- d
Notes
Unlike
dict(), this method hides the model layout and combines scalars, arrays, and other metadata in the same dictionary. Can be used when a simple dictionary is needed. UseTaskMetadata.from_dict()to convert it back.