Source code for pkgcore.fetch.errors
"""
errors fetch subsystem may throw
"""
from ..exceptions import PkgcoreUserException
[docs]
class FetchError(PkgcoreUserException):
"""Generic fetch exception."""
[docs]
class UnmodifiableFile(FetchError):
def __init__(self, filename, extra=""):
super().__init__(f"unable to update file {filename}, unmodifiable {extra}")
self.filename = filename
[docs]
class FetchFailed(FetchError):
def __init__(self, filename, message, resumable=False):
super().__init__(message)
self.filename = filename
self.message = message
self.resumable = resumable
def __str__(self):
return f"failed fetching: {self.filename!r}: {self.message}"
[docs]
class MissingDistfile(FetchFailed):
def __init__(self, filename):
super().__init__(filename, "doesn't exist", resumable=True)
[docs]
class ChksumError(FetchError):
"""Generic checksum failure."""
[docs]
class ChksumFailure(FetchFailed, ChksumError):
"""Checksum verification failed."""
def __init__(self, filename, *, chksum, expected, value):
self.filename = filename
self.chksum = chksum
self.expected = expected
self.value = value
super().__init__(filename, "checksum verification failed")
[docs]
class RequiredChksumDataMissing(ChksumError):
"""A required checksum for the target is missing."""
def __init__(self, fetchable, *chksum):
super().__init__(
f"chksum(s) {', '.join(chksum)} were configured as required, "
f"but the data is missing: {fetchable.filename!r}"
)
self.fetchable, self.missing_chksum = fetchable, chksum
[docs]
class MissingChksumHandler(ChksumError):
"""An unknown checksum type tried to be hashed."""