Source code for outgoing.errors

import os
from typing import List, Optional, Sequence
from .util import AnyPath


[docs]class Error(Exception): """ The superclass for all exceptions raised by ``outgoing`` """ pass
[docs]class InvalidConfigError(Error): """ Raised on encountering an invalid configuration structure """ def __init__(self, details: str, configpath: Optional[AnyPath] = None): #: A message about the error self.details: str = details #: The path to the config file containing the invalid configuration self.configpath: Optional[AnyPath] = configpath def __str__(self) -> str: s = "" if self.configpath is not None: s += f"{os.fsdecode(self.configpath)}: " s += f"Invalid configuration: {self.details}" return s
[docs]class InvalidPasswordError(InvalidConfigError): """ Raised on encountering an invalid password specifier or when no password can be determined from a specifier """ def __str__(self) -> str: s = "" if self.configpath is not None: s += f"{os.fsdecode(self.configpath)}: " s += f"Invalid password configuration: {self.details}" return s
[docs]class MissingConfigError(Error): """ Raised when no configuration section can be found in any config files """ def __init__(self, configpaths: Sequence[AnyPath]): #: Paths to the configfiles searched for configuration self.configpaths: List[AnyPath] = list(configpaths) def __str__(self) -> str: return "outgoing configuration not found in files: " + ", ".join( map(os.fsdecode, self.configpaths) )
[docs]class NetrcLookupError(Error): """ Raised by `~outgoing.lookup_netrc()` on failure to find a match in a netrc file """ pass
[docs]class UnsupportedEmailError(Error): """ Raised by sender objects when asked to send an e-mail that uses features or constructs that the sending method does not support """ pass