craft_parts.plugins.nil_plugin module¶
The nil plugin.
Using this, parts can be defined purely by utilizing properties that are automatically included, e.g. stage-packages.
- class craft_parts.plugins.nil_plugin.NilPlugin(*, properties, part_info)[source]¶
Bases:
Plugin
A plugin that defines no build commands.
The nil plugin is useful in two contexts:
First, it can be used for parts that identify no source, and can be defined purely by using built-in part properties such as
stage-packages
.The second use is for parts that do define a source (which will be fetched), but for which the build step then needs to be explicitly defined using
override-build
; otherwise, even though the source is fetched, nothing will end up in that part’s install directory. In short, for the case of a part that uses the nil plugin and defines a source, it is up to the developer to then define theoverride-build
step that, in some way, populates the$CRAFT_PART_INSTALL
directory.- Parameters:
properties (
PluginProperties
)part_info (
PartInfo
)
- get_build_commands()[source]¶
Return a list of commands to run during the build step.
- Return type:
list
[str
]
- get_build_environment()[source]¶
Return a dictionary with the environment to use in the build step.
- Return type:
dict
[str
,str
]
- get_build_packages()[source]¶
Return a set of required packages to install in the build environment.
- Return type:
set
[str
]
- get_build_snaps()[source]¶
Return a set of required snaps to install in the build environment.
- Return type:
set
[str
]
- get_pull_commands()[source]¶
Return a list commands to retrieve dependencies during the pull step.
- Return type:
list
[str
]
- properties_class¶
alias of
NilPluginProperties
- supports_strict_mode = True¶
Plugins that can run in ‘strict’ mode must set this classvar to True.
- class craft_parts.plugins.nil_plugin.NilPluginProperties(**data)[source]¶
Bases:
PluginProperties
The part properties used by the nil plugin.
- 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 PluginProperties.<lambda>>, 'extra': 'forbid', 'frozen': True, 'validate_assignment': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'plugin': FieldInfo(annotation=Literal['nil'], required=False, default='nil', alias='plugin', alias_priority=1), 'source': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, alias='source', 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.
-
plugin:
Literal
['nil'
]¶