TaskMetadata¶
- class lsst.pipe.base.TaskMetadata(*, scalars: dict[str, typing.Union[typing.Annotated[float, Strict(strict=True)], typing.Annotated[int, Strict(strict=True)], typing.Annotated[bool, Strict(strict=True)], typing.Annotated[str, Strict(strict=True)]]] = None, arrays: dict[str, list[typing.Annotated[float, Strict(strict=True)]] | list[typing.Annotated[int, Strict(strict=True)]] | list[typing.Annotated[bool, Strict(strict=True)]] | list[typing.Annotated[str, Strict(strict=True)]]] = None, metadata: dict[str, lsst.pipe.base._task_metadata.TaskMetadata] = None)¶
- Bases: - BaseModel- 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 ( - itemNameabove) 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 - A dictionary of computed field names and their corresponding - ComputedFieldInfoobjects.- Configuration for the model, should be a dictionary conforming to [ - ConfigDict][pydantic.config.ConfigDict].- Get extra fields set during validation. - Metadata about the fields defined on the model, mapping of field names to [ - FieldInfo][pydantic.fields.FieldInfo] objects.- Returns the set of fields that have been explicitly set on this model instance. - Methods Summary - add(name, value)- Store a new value, adding to a list if one already exists. - construct([_fields_set])- copy(*args, **kwargs)- See - pydantic.BaseModel.copy.- dict(*[, include, exclude, by_alias, ...])- 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. - get_dict(key)- Return a possibly-hierarchical nested - dict.- items()- Yield the top-level keys and values. - json(*[, include, exclude, by_alias, ...])- keys()- Return the top-level keys. - model_construct(*args, **kwargs)- See - pydantic.BaseModel.model_construct.- model_copy(*args, **kwargs)- See - pydantic.BaseModel.model_copy.- model_dump(*args, **kwargs)- See - pydantic.BaseModel.model_dump.- model_dump_json(*args, **kwargs)- See - pydantic.BaseModel.model_dump_json.- model_json_schema(*args, **kwargs)- See - pydantic.BaseModel.model_json_schema.- model_parametrized_name(params)- Compute the class name for parametrizations of generic classes. - model_post_init(_BaseModel__context)- Override this method to perform additional initialization after - __init__and- model_construct.- model_rebuild(*[, force, raise_errors, ...])- Try to rebuild the pydantic-core schema for the model. - model_validate(obj, *[, strict, ...])- Validate a pydantic model instance. - model_validate_json(json_data, *[, strict, ...])- Usage docs: https://docs.pydantic.dev/2.9/concepts/json/#json-parsing - model_validate_strings(obj, *[, strict, context])- Validate the given object with string data against the Pydantic model. - names()- 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])- set_dict(key, value)- Assign a possibly-hierarchical nested - dict.- to_dict()- Convert the class to a simple dictionary. - update_forward_refs(**localns)- validate(value)- Attributes Documentation - model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding - ComputedFieldInfoobjects.
 - model_config: ClassVar[ConfigDict] = {'ser_json_inf_nan': 'constants'}¶
- Configuration for the model, should be a dictionary conforming to [ - ConfigDict][pydantic.config.ConfigDict].
 - model_extra¶
- Get extra fields set during validation. - Returns:
- A dictionary of extra fields, or - Noneif- config.extrais not set to- "allow".
 
 - model_fields: ClassVar[Dict[str, FieldInfo]] = {'arrays': FieldInfo(annotation=dict[str, Union[list[Annotated[float, Strict(strict=True)]], list[Annotated[int, Strict(strict=True)]], list[Annotated[bool, Strict(strict=True)]], list[Annotated[str, Strict(strict=True)]]]], required=False, default_factory=dict), 'metadata': FieldInfo(annotation=dict[str, TaskMetadata], required=False, default_factory=dict), 'scalars': FieldInfo(annotation=dict[str, Union[Annotated[float, Strict(strict=True)], Annotated[int, Strict(strict=True)], Annotated[bool, Strict(strict=True)], Annotated[str, Strict(strict=True)]]], required=False, default_factory=dict)}¶
- Metadata about the fields defined on the model, mapping of field names to [ - FieldInfo][pydantic.fields.FieldInfo] objects.- This replaces - Model.__fields__from Pydantic V1.
 - model_fields_set¶
- Returns the set of fields that have been explicitly set on this model instance. - Returns:
- A set of strings representing the fields that have been set,
- i.e. that were not filled from defaults. 
 
 
 - Methods Documentation - dict(*, include: Set[int] | Set[str] | Dict[int, Set[int] | Set[str] | Dict[int, IncEx | bool] | Dict[str, IncEx | bool] | bool] | Dict[str, Set[int] | Set[str] | Dict[int, IncEx | bool] | Dict[str, IncEx | bool] | bool] | None = None, exclude: Set[int] | Set[str] | Dict[int, Set[int] | Set[str] | Dict[int, IncEx | bool] | Dict[str, IncEx | bool] | bool] | Dict[str, Set[int] | Set[str] | Dict[int, IncEx | bool] | Dict[str, IncEx | bool] | bool] | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) Dict[str, Any]¶
 - classmethod from_dict(d: Mapping[str, Any]) TaskMetadata¶
- Create a TaskMetadata from a dictionary. - Parameters:
- dMapping
- Mapping to convert. Can be hierarchical. Any dictionaries in the hierarchy are converted to - TaskMetadata.
 
- d
- Returns:
- metaTaskMetadata
- Newly-constructed metadata. 
 
- meta
 
 - classmethod from_metadata(ps: PropertySetLike) TaskMetadata¶
- Create a TaskMetadata from a PropertySet-like object. - Parameters:
- psPropertySetLikeorTaskMetadata
- A - PropertySet-like object to be transformed to a- TaskMetadata. A- TaskMetadatacan be copied using this class method.
 
- ps
- Returns:
- tmTaskMetadata
- 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:
- valueTaskMetadata,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__and- PropertySet.get, but not- to_dict().get.
 
- value
 
 - get_dict(key: str) Mapping[str, str | float | int | bool | Mapping[str, str | float | int | bool | NestedMetadataDict]]¶
- Return a possibly-hierarchical nested - dict.- This implements the - GetDictMetadataprotocol for consistency with- lsst.daf.base.PropertySetand- lsst.daf.base.PropertyList. The returned- dictis guaranteed to be a deep copy, not a view.
 - json(*, include: Set[int] | Set[str] | Dict[int, Set[int] | Set[str] | Dict[int, IncEx | bool] | Dict[str, IncEx | bool] | bool] | Dict[str, Set[int] | Set[str] | Dict[int, IncEx | bool] | Dict[str, IncEx | bool] | bool] | None = None, exclude: Set[int] | Set[str] | Dict[int, Set[int] | Set[str] | Dict[int, IncEx | bool] | Dict[str, IncEx | bool] | bool] | Dict[str, Set[int] | Set[str] | Dict[int, IncEx | bool] | Dict[str, IncEx | bool] | bool] | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Callable[[Any], Any] | None = PydanticUndefined, models_as_dict: bool = PydanticUndefined, **dumps_kwargs: Any) str¶
 - classmethod model_json_schema(*args: Any, **kwargs: Any) Any¶
- See - pydantic.BaseModel.model_json_schema.
 - classmethod model_parametrized_name(params: tuple[type[Any], ...]) str¶
- Compute the class name for parametrizations of generic classes. - This method can be overridden to achieve a custom naming scheme for generic BaseModels. - Args:
- params: Tuple of types of the class. Given a generic class
- Modelwith 2 type variables and a concrete model- Model[str, int], the value- (str, int)would be passed to- params.
 
- Returns:
- String representing the new class where - paramsare passed to- clsas type variables.
- Raises:
- TypeError: Raised when trying to generate concrete names for non-generic models. 
 
 - model_post_init(_BaseModel__context: Any) None¶
- Override this method to perform additional initialization after - __init__and- model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.
 - classmethod model_rebuild(*, force: bool = False, raise_errors: bool = True, _parent_namespace_depth: int = 2, _types_namespace: dict[str, Any] | None = None) bool | None¶
- Try to rebuild the pydantic-core schema for the model. - This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails. - Args:
- force: Whether to force the rebuilding of the model schema, defaults to - False. raise_errors: Whether to raise errors, defaults to- True. _parent_namespace_depth: The depth level of the parent namespace, defaults to 2. _types_namespace: The types namespace, defaults to- None.
- Returns:
- Returns - Noneif the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns- Trueif rebuilding was successful, otherwise- False.
 
 - classmethod model_validate(obj: Any, *, strict: bool | None = None, from_attributes: bool | None = None, context: Any | None = None) Self¶
- Validate a pydantic model instance. - Args:
- obj: The object to validate. strict: Whether to enforce types strictly. from_attributes: Whether to extract data from object attributes. context: Additional context to pass to the validator. 
- Raises:
- ValidationError: If the object could not be validated. 
- Returns:
- The validated model instance. 
 
 - classmethod model_validate_json(json_data: str | bytes | bytearray, *, strict: bool | None = None, context: Any | None = None) Self¶
- Usage docs: https://docs.pydantic.dev/2.9/concepts/json/#json-parsing - Validate the given JSON data against the Pydantic model. - Args:
- json_data: The JSON data to validate. strict: Whether to enforce types strictly. context: Extra variables to pass to the validator. 
- Returns:
- The validated Pydantic model. 
- Raises:
- ValidationError: If - json_datais not a JSON string or the object could not be validated.
 
 - classmethod model_validate_strings(obj: Any, *, strict: bool | None = None, context: Any | None = None) Self¶
- Validate the given object with string data against the Pydantic model. - Args:
- obj: The object containing string data to validate. strict: Whether to enforce types strictly. context: Extra variables to pass to the validator. 
- Returns:
- The validated Pydantic model. 
 
 - names() set[str]¶
- Return the hierarchical keys from the metadata. - Returns:
- namescollections.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:
- topLevelOnlybool
- Control whether only top-level items are returned or items from the hierarchy. 
 
- topLevelOnly
- Returns:
 
 - classmethod parse_file(path: str | Path, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self¶
 - classmethod parse_raw(b: str | bytes, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self¶
 - classmethod schema_json(*, by_alias: bool = True, ref_template: str = '#/$defs/{model}', **dumps_kwargs: Any) str¶
 - set_dict(key: str, value: Mapping[str, str | float | int | bool | Mapping[str, str | float | int | bool | NestedMetadataDict]]) None¶
- Assign a possibly-hierarchical nested - dict.- This implements the - SetDictMetadataprotocol for consistency with- lsst.daf.base.PropertySetand- lsst.daf.base.PropertyList.
 - to_dict() dict[str, Any]¶
- Convert the class to a simple dictionary. - Returns:
- ddict
- 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. Use- TaskMetadata.from_dict()to convert it back.