craft_parts.sources.snap_source module¶
The snap source handler.
- class craft_parts.sources.snap_source.SnapSource(source, part_src_dir, *, cache_dir, project_dirs, source_checksum=None, command=None, ignore_patterns=None, **kwargs)[source]¶
Bases:
FileSourceHandler
Handles downloading and extractions for a snap source.
On provision, the meta directory is renamed to meta.<snap-name> and, if present, the same applies for the snap directory which shall be renamed to snap.<snap-name>.
- Parameters:
source (
str
)part_src_dir (
Path
)cache_dir (
Path
)project_dirs (
ProjectDirs
)source_checksum (
Optional
[str
])command (
Optional
[str
])ignore_patterns (
Optional
[list
[str
]])kwargs (
Any
)
- provision(dst, keep=False, src=None)[source]¶
Provision the snap source.
- Parameters:
dst (
Path
) – The destination directory to provision to.keep (
bool
) – Whether to keep the snap after provisioning is complete.src (
Optional
[Path
]) – Force a new source to use for extraction.
- Return type:
None
raises errors.InvalidSnap: If trying to provision an invalid snap.
- source_model¶
alias of
SnapSourceModel
- class craft_parts.sources.snap_source.SnapSourceModel(**data)[source]¶
Bases:
BaseFileSourceModel
Pydantic model for a snap file source.
- Parameters:
data (
Any
)
- 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 get_model_config.<locals>.<lambda>>, 'extra': 'forbid', 'frozen': True, 'json_schema_extra': {'if': {'not': {'required': ['source-type']}}, 'then': {'properties': {'source': {'pattern': '\\.snap$'}}}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'source': FieldInfo(annotation=str, required=True, alias='source', alias_priority=1), 'source_checksum': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, alias='source-checksum', alias_priority=1), 'source_type': FieldInfo(annotation=Literal['snap'], required=False, default='snap', alias='source-type', 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.
- source: str¶
- source_checksum: str | None¶
-
source_type:
Literal
['snap'
]¶