craft_parts.state_manager.step_state module¶
The step state preserves step execution context information.
- class craft_parts.state_manager.step_state.MigrationState(**data)[source]¶
Bases:
BaseModel
State information collected when migrating steps.
The migration state contains the paths to the files and directories that have been migrated. This information is used to remove migrated files from shared areas on step cleanup.
- Parameters:
data (
Any
)
-
directories:
set
[str
]¶
-
files:
set
[str
]¶
- marshal()[source]¶
Create a dictionary containing the part state data.
- Return type:
dict
[str
,Any
]- Returns:
The newly created dictionary.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'directories': FieldInfo(annotation=set[str], required=False, default=set()), 'files': FieldInfo(annotation=set[str], required=False, default=set())}¶
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.
- class craft_parts.state_manager.step_state.StepState(**data)[source]¶
Bases:
MigrationState
,ABC
Contextual information collected when a step is executed.
The step state contains environmental and project-specific configuration data collected at step run time. Those properties are used to decide whether the step should run again on a new lifecycle execution.
- Parameters:
data (
Any
)
- diff_project_options_of_interest(other_project_options)[source]¶
Return project options that differ.
Take a dictionary of project_options and compare to our own, returning the set of project option names that are different. Both dictionaries are filtered prior to comparison, only relevant options are compared.
- Parameters:
other_project_options (
dict
[str
,Any
]) – The project options to compare to the project options stored in this state.- Return type:
set
[str
]
- diff_properties_of_interest(other_properties, also_compare=None)[source]¶
Return properties of interest that differ.
Take a dictionary of properties and compare to our own, returning the set of property names that are different. Both dictionaries are filtered prior to comparison, only relevant properties are compared.
- Parameters:
other_properties (
dict
[str
,Any
]) – The properties to compare to the project options stored in this state.also_compare (
Optional
[list
[str
]])
- Return type:
set
[str
]
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'alias_generator': <function StepState.<lambda>>, 'extra': 'ignore', 'frozen': True, 'populate_by_name': True, 'validate_assignment': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'directories': FieldInfo(annotation=set[str], required=False, default=set(), alias='directories', alias_priority=1), 'files': FieldInfo(annotation=set[str], required=False, default=set(), alias='files', alias_priority=1), 'part_properties': FieldInfo(annotation=dict[str, Any], required=False, default={}, alias='part-properties', alias_priority=1), 'project_options': FieldInfo(annotation=dict[str, Any], required=False, default={}, alias='project-options', alias_priority=1)}¶
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.
-
part_properties:
dict
[str
,Any
]¶
-
project_options:
dict
[str
,Any
]¶
- abstract project_options_of_interest(project_options)[source]¶
Return relevant project options concerning this step.
- Parameters:
project_options (
dict
[str
,Any
])- Return type:
dict
[str
,Any
]