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:
_BaseModelCompat
Dict-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 (
itemName
above) must not contain, which serves as a separator in full metadata keys and turns the value into sub-dictionary. Arbitrary hierarchies are supported.
Attributes Summary
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,
include
andexclude
arguments as perdict()
.keys
()Return the top-level keys.
model_construct
([_fields_set])model_copy
(*[, update, deep])model_dump
(*[, mode, include, exclude, ...])model_dump_json
(*[, indent, include, ...])model_rebuild
(*[, force, raise_errors, ...])model_validate
(obj, *[, strict, ...])model_validate_json
(json_data, *[, strict, ...])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)Attributes Documentation
- model_fields = {'arrays': ModelField(name='arrays', type=Mapping[str, Union[list[pydantic.types.StrictFloat], list[pydantic.types.StrictInt], list[pydantic.types.StrictBool], list[pydantic.types.StrictStr]]], required=False, default_factory='<function dict>'), 'metadata': ModelField(name='metadata', type=Mapping[str, TaskMetadata], required=False, default_factory='<function dict>'), 'scalars': ModelField(name='scalars', type=Mapping[str, Union[StrictFloat, StrictInt, StrictBool, StrictStr]], required=False, default_factory='<function dict>')}¶
Methods Documentation
- 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
True
to 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
PropertySetLike
orTaskMetadata
A
PropertySet
-like object to be transformed to aTaskMetadata
. ATaskMetadata
can 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) Any ¶
Retrieve the item associated with the key or a default.
- Parameters:
- 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,
include
andexclude
arguments as perdict()
.encoder
is an optional function to supply asdefault
to json.dumps(), other arguments as perjson.dumps()
.
- model_dump(*, mode: Literal['json', 'python'] | str = 'python', include: set[int] | set[str] | dict[int, Any] | dict[str, Any] | None = None, exclude: set[int] | set[str] | dict[int, Any] | dict[str, Any] | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: bool = True) dict[str, Any] ¶
- model_dump_json(*, indent: int | None = None, include: set[int] | set[str] | dict[int, Any] | dict[str, Any] | None = None, exclude: set[int] | set[str] | dict[int, Any] | dict[str, Any] | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: bool = True) str ¶
- classmethod model_rebuild(*, force: bool = False, raise_errors: bool = True, _parent_namespace_depth: int = 2, _types_namespace: dict[str, Any] | None = None) bool | None ¶
- classmethod model_validate(obj: Any, *, strict: bool | None = None, from_attributes: bool | None = None, context: dict[str, Any] | None = None) Self ¶
- classmethod model_validate_json(json_data: str | bytes | bytearray, *, strict: bool | None = None, context: dict[str, Any] | None = None) Self ¶
- names(topLevelOnly: bool | None = None) set[str] ¶
Return the hierarchical keys from the metadata.
- Parameters:
- Returns:
- names
collections.abc.Set
A set of all keys, including those from the hierarchy and the top-level hierarchy.
- names
- 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.