Exceptions¶
Exceptions are defined in three different modules in the craft_parts
package.
General errors¶
Exceptions for general errors are defined in the craft_parts.errors
module.
Craft parts errors.
- exception craft_parts.errors.BuildSlicesEnvironmentError
Bases:
PartsErrorThe build-slices environment is missing essential files.
- exception craft_parts.errors.CallbackRegistrationError(message)
Bases:
PartsErrorError in callback function registration.
- Parameters:
message (
str) – the error message.
- exception craft_parts.errors.CopyFileNotFound(name)
Bases:
PartsErrorAn attempt was made to copy a file that doesn’t exist.
- Parameters:
name (
str) – The file name.
- exception craft_parts.errors.CopyTreeError(message)
Bases:
PartsErrorFailed to copy or link a file tree.
- Parameters:
message (
str) – The error message.
- exception craft_parts.errors.DebError(deb_path, command, exit_code)
Bases:
PartsErrorA “deb”-related command failed.
- exception craft_parts.errors.FeatureError(message, details=None)
Bases:
PartsErrorA feature is not configured as expected.
- exception craft_parts.errors.FileOrganizeError(*, part_name, message)
Bases:
PartsErrorFailed to organize a file layout.
- Parameters:
- classmethod from_merge_conflicts(*, part_name, key, destination, conflicts)
Create from directory merge conflicts.
- exception craft_parts.errors.FilesetConflict(conflicting_files)
Bases:
PartsErrorInconsistent stage to prime filtering.
- exception craft_parts.errors.FilesetError(*, name, message)
Bases:
PartsErrorAn invalid fileset operation was performed.
- exception craft_parts.errors.FilesystemMountError(brief, *, details=None, resolution=None)
Bases:
PartsErrorErrors related to filesystem mounts.
- classmethod from_validation_error(*, error_list)
Create a FilesystemMountError from a pydantic error list.
- Parameters:
error_list (
list[ErrorDetails]) – A list of dictionaries containing pydantic error definitions.- Return type:
- exception craft_parts.errors.InvalidAction(message)
Bases:
PartsErrorAn attempt was made to execute an action with invalid parameters.
- Parameters:
message (
str) – The error message.
- exception craft_parts.errors.InvalidApplicationName(name)
Bases:
PartsErrorThe application name contains invalid characters.
- Parameters:
name (
str) – The invalid application name.
- exception craft_parts.errors.InvalidArchitecture(arch_name)
Bases:
PartsErrorThe machine architecture is not supported.
- Parameters:
arch_name (
str) – The unsupported architecture name.
- exception craft_parts.errors.InvalidControlAPICall(*, part_name, scriptlet_name, message)
Bases:
PartsErrorA control API call was made with invalid parameters.
- exception craft_parts.errors.InvalidPartName(part_name)
Bases:
PartsErrorAn operation was requested on a part that’s not in the parts specification.
- Parameters:
part_name (
str) – The invalid part name.
- exception craft_parts.errors.InvalidPlugin(plugin_name, *, part_name)
Bases:
PartsErrorA request was made to use a plugin that’s not registered.
- exception craft_parts.errors.OsReleaseCodenameError
Bases:
PartsErrorFailed to determine the host operating system version codename.
- exception craft_parts.errors.OsReleaseIdError
Bases:
PartsErrorFailed to determine the host operating system identification string.
- exception craft_parts.errors.OsReleaseNameError
Bases:
PartsErrorFailed to determine the host operating system name.
- exception craft_parts.errors.OsReleaseVersionIdError
Bases:
PartsErrorFailed to determine the host operating system version.
- exception craft_parts.errors.OverlayPackageNotFound(*, part_name, package_name)
Bases:
PartsErrorFailed to install an overlay package.
- exception craft_parts.errors.OverlayPermissionError
Bases:
PartsErrorA project using overlays was processed by a non-privileged user.
- exception craft_parts.errors.OverlayPlatformError
Bases:
PartsErrorA project using overlays was processed on a non-Linux platform.
- exception craft_parts.errors.OverlayStageConflict(*, part_name, overlay_part_name, conflicting_files, partition=None)
Bases:
PartsErrorA conflict between contents to be staged from the overlay and from the build step.
- exception craft_parts.errors.PartDependencyCycle(*, part_names=None)
Bases:
PartsErrorA dependency cycle has been detected in the parts definition.
- exception craft_parts.errors.PartFilesConflict(*, part_name, other_part_name, conflicting_files, partition=None)
Bases:
PartsErrorDifferent parts list the same files with different contents.
- exception craft_parts.errors.PartNameConflict(*, part_name, conflicting_part_name)
Bases:
PartsErrorA part name conflicts with another part name because one is nested inside the other.
- exception craft_parts.errors.PartSpecificationError(*, part_name, message)
Bases:
PartsErrorA part was not correctly specified.
- Parameters:
- classmethod from_validation_error(*, part_name, error_list)
Create a PartSpecificationError from a pydantic error list.
- Parameters:
- Return type:
- exception craft_parts.errors.PartitionError(brief, *, details=None, resolution=None)
Bases:
PartsErrorErrors related to partitions.
- exception craft_parts.errors.PartitionNotFound(partition_name, partitions)
Bases:
PartitionUsageErrorA partition has been specified that does not exist.
- exception craft_parts.errors.PartitionUsageError(error_list, partitions, brief=None)
Bases:
PartitionErrorError for a list of invalid partition usages.
- exception craft_parts.errors.PartitionUsageWarning(warning_list)
Bases:
PartitionError,WarningWarnings for possibly invalid usages of partitions.
- exception craft_parts.errors.PartsError(brief, details=None, resolution=None, doc_slug=None)
Bases:
ExceptionUnexpected error.
- Parameters:
- exception craft_parts.errors.PluginBuildError(*, part_name, plugin_name, stderr=None)
Bases:
UserExecutionErrorPlugin build script failed at runtime.
- exception craft_parts.errors.PluginCleanError(*, part_name)
Bases:
PartsErrorScript to clean strict build preparation failed at runtime.
- Parameters:
part_name (
str) – The name of the part being processed.
- exception craft_parts.errors.PluginEnvironmentValidationError(*, part_name, reason)
Bases:
PartsErrorPlugin environment validation failed at runtime.
- exception craft_parts.errors.PluginNotStrict(plugin_name, *, part_name)
Bases:
PartsErrorA request was made to use a plugin that’s not strict.
- exception craft_parts.errors.PluginPullError(*, part_name)
Bases:
PartsErrorPlugin pull script failed at runtime.
- Parameters:
part_name (
str) – The name of the part being processed.
- exception craft_parts.errors.ScriptletRunError(*, part_name, scriptlet_name, exit_code, stderr=None)
Bases:
UserExecutionErrorA scriptlet execution failed.
- exception craft_parts.errors.StageFilesConflict(*, part_name, conflicting_files)
Bases:
PartsErrorFiles from a part conflict with files already being staged.
- exception craft_parts.errors.StagePackageNotFound(*, part_name, package_name)
Bases:
PartsErrorFailed to install a stage package.
- exception craft_parts.errors.UndefinedPlugin(*, part_name)
Bases:
PartsErrorThe part didn’t define a plugin and the part name is not a valid plugin name.
- Parameters:
part_name (
str) – The name of the part with no plugin definition.
- exception craft_parts.errors.UnsupportedBuildAttributesError(unsupported, plugin_name)
Bases:
PartsErrorUse of build-attributes that a plugin does not support.
- exception craft_parts.errors.UserExecutionError(*, brief, resolution, stderr=None)
Bases:
PartsError,ABCPlugin build script failed at runtime.
- Parameters:
- exception craft_parts.errors.XAttributeError(key, path, *, is_write=False)
Bases:
PartsErrorFailed to read or write an extended attribute.
- exception craft_parts.errors.XAttributeTooLong(key, value, path)
Bases:
PartsErrorFailed to write an extended attribute because key and/or value is too long.
Source handling errors¶
Exceptions for errors related to source handling are defined in the
craft_parts.sources.errors module.
Source handler error definitions.
- exception craft_parts.sources.errors.ChecksumMismatch(*, expected, obtained, part_name=None, source=None)
Bases:
SourceErrorA checksum doesn’t match the expected value.
- exception craft_parts.sources.errors.HttpRequestError(*, status_code, reason, source)
Bases:
SourceErrorHTTP error occurred during request processing.
- exception craft_parts.sources.errors.IncompatibleSourceOptions(source_type, options)
Bases:
SourceErrorSource specified options that cannot be used at the same time.
- exception craft_parts.sources.errors.InvalidRpmPackage(rpm_file)
Bases:
SourceErrorAn rpm package is invalid.
- Parameters:
rpm_file (
str) – The filename.
- exception craft_parts.sources.errors.InvalidSnapPackage(snap_file)
Bases:
SourceErrorA snap package is invalid.
- Parameters:
snap_file (
str) – The snap file name.
- exception craft_parts.sources.errors.InvalidSourceOption(*, source_type, option)
Bases:
SourceErrorA source option is not allowed for the given source type.
- exception craft_parts.sources.errors.InvalidSourceOptions(*, source_type, options)
Bases:
SourceErrorA source option is not allowed for the given source type.
- exception craft_parts.sources.errors.InvalidSourceType(source, *, source_type=None)
Bases:
SourceErrorFailed to determine a source type.
- exception craft_parts.sources.errors.NetworkRequestError(message, *, source=None)
Bases:
SourceErrorA network request operation failed.
- exception craft_parts.sources.errors.PullError(*, command, exit_code, resolution=None)
Bases:
SourceErrorFailed pulling source.
- exception craft_parts.sources.errors.SourceError(brief, details=None, resolution=None, doc_slug=None)
Bases:
PartsErrorBase class for source handler errors.
- exception craft_parts.sources.errors.SourceNotFound(source)
Bases:
SourceErrorFailed to retrieve a source.
- Parameters:
source (
str) – The source defined for the part.
- exception craft_parts.sources.errors.SourceUpdateUnsupported(name)
Bases:
SourceErrorThe source handler doesn’t support updating.
- Parameters:
name (
str) – The source type.
- exception craft_parts.sources.errors.VCSError(message, resolution=None)
Bases:
SourceErrorA version control system command failed.
Package handling errors¶
Exceptions for errors related to package handling are defined in the
craft_parts.packages.errors module.
Exceptions raised by the packages handling subsystem.
- exception craft_parts.packages.errors.BaseManifestError(manifest_path, reason)
Bases:
PackagesErrorFailed to read the base snap package manifest.
- exception craft_parts.packages.errors.BuildPackageNotFound(package)
Bases:
PackagesErrorA package listed in ‘build-packages’ was not found.
- Parameters:
package (
str) – The name of the missing package.
- exception craft_parts.packages.errors.BuildPackagesNotInstalled(*, packages)
Bases:
PackagesErrorCould not install all requested build packages.
- exception craft_parts.packages.errors.ChiselError(*, slices, output)
Bases:
PackagesErrorA “chisel”-related command failed.
- exception craft_parts.packages.errors.DebPackageInvalidFormatError(package)
Bases:
PackagesErrorThe given package specification is not formatted correctly.
- Parameters:
package (
str) – The package specification string.
- exception craft_parts.packages.errors.FileProviderNotFound(*, file_path)
Bases:
PackagesErrorA file is not provided by any package.
- Parameters:
file_path (
str) – The file path.
- exception craft_parts.packages.errors.PackageBackendNotSupported(backend)
Bases:
PartsErrorRequested package resolved not supported on this host.
- Parameters:
backend (
str)
- exception craft_parts.packages.errors.PackageBroken(package_name, *, deps)
Bases:
PackagesErrorPackage has unmet dependencies.
- exception craft_parts.packages.errors.PackageFetchError(url, details=None)
Bases:
PackagesErrorFailed to fetch package from remote repository.
- exception craft_parts.packages.errors.PackageListRefreshError(message)
Bases:
PackagesErrorFailed to refresh the list of available packages.
- Parameters:
message (
str) – The error message.
- exception craft_parts.packages.errors.PackageNotFound(package_name)
Bases:
PackagesErrorRequested package doesn’t exist in the remote repository.
- Parameters:
package_name (
str) – The name of the missing package.
- exception craft_parts.packages.errors.PackagesDownloadError(*, packages)
Bases:
PackagesErrorFailed to download packages from remote repository.
- exception craft_parts.packages.errors.PackagesError(brief, details=None, resolution=None, doc_slug=None)
Bases:
PartsErrorBase class for package handler errors.
- exception craft_parts.packages.errors.PackagesNotFound(packages)
Bases:
PackagesErrorRequested package doesn’t exist in the remote repository.
- exception craft_parts.packages.errors.SnapDownloadError(*, snap_name, snap_channel)
Bases:
PackagesErrorFailed to download a snap.
- exception craft_parts.packages.errors.SnapGetAssertionError(*, assertion_params)
Bases:
PackagesErrorFailed to retrieve snap assertion.
- exception craft_parts.packages.errors.SnapInstallError(*, snap_name, snap_channel)
Bases:
PackagesErrorFailed to install a snap.
- exception craft_parts.packages.errors.SnapInvalidFormat(snap)
Bases:
PackagesErrorThe given snap specification is not formatted correctly.
- Parameters:
snap (
str) – The snap specification string.
- exception craft_parts.packages.errors.SnapRefreshError(*, snap_name, snap_channel)
Bases:
PackagesErrorFailed to refresh a snap.
- exception craft_parts.packages.errors.SnapUnavailable(*, snap_name, snap_channel)
Bases:
PackagesErrorFailed to install or refresh a snap.
- exception craft_parts.packages.errors.SnapdConnectionError(*, snap_name, url)
Bases:
PackagesErrorFailed to connect to snapd.
- exception craft_parts.packages.errors.UnpackError(package)
Bases:
PackagesErrorError unpacking stage package.
- Parameters:
package (
str) – The package that failed to unpack.