errors.py
Custom exceptions used by Copier.
ConfigFileError (ValueError, CopierError)
¶
Parent class defining problems with the config file.
Source code in copier/errors.py
class ConfigFileError(ValueError, CopierError):
"""Parent class defining problems with the config file."""
CopierAnswersInterrupt (CopierError, KeyboardInterrupt)
¶
CopierAnswersInterrupt is raised during interactive question prompts.
It typically follows a KeyboardInterrupt (i.e. ctrl-c) and provides an opportunity for the caller to conduct additional cleanup, such as writing the partially completed answers to a file.
Attributes:
Name | Type | Description |
---|---|---|
answers |
AnswersMap that contains the partially completed answers object. |
|
last_question |
Question representing the last_question that was asked at the time the interrupt was raised. |
|
template |
Template that was being processed for answers. |
Source code in copier/errors.py
class CopierAnswersInterrupt(CopierError, KeyboardInterrupt):
"""CopierAnswersInterrupt is raised during interactive question prompts.
It typically follows a KeyboardInterrupt (i.e. ctrl-c) and provides an
opportunity for the caller to conduct additional cleanup, such as writing
the partially completed answers to a file.
Attributes:
answers:
AnswersMap that contains the partially completed answers object.
last_question:
Question representing the last_question that was asked at the time
the interrupt was raised.
template:
Template that was being processed for answers.
"""
def __init__(
self, answers: "AnswersMap", last_question: "Question", template: "Template"
) -> None:
self.answers = answers
self.last_question = last_question
self.template = template
CopierError (Exception)
¶
Base class for all other Copier errors.
Source code in copier/errors.py
class CopierError(Exception):
"""Base class for all other Copier errors."""
CopierWarning (Warning)
¶
Base class for all other Copier warnings.
Source code in copier/errors.py
class CopierWarning(Warning):
"""Base class for all other Copier warnings."""
DirtyLocalWarning (UserWarning, CopierWarning)
¶
Changes and untracked files present in template.
Source code in copier/errors.py
class DirtyLocalWarning(UserWarning, CopierWarning):
"""Changes and untracked files present in template."""
ExtensionNotFoundError (UserMessageError)
¶
Extensions listed in the configuration could not be loaded.
Source code in copier/errors.py
class ExtensionNotFoundError(UserMessageError):
"""Extensions listed in the configuration could not be loaded."""
InvalidConfigFileError (ConfigFileError)
¶
Indicates that the config file is wrong.
Source code in copier/errors.py
class InvalidConfigFileError(ConfigFileError):
"""Indicates that the config file is wrong."""
def __init__(self, conf_path: Path, quiet: bool):
msg = str(conf_path)
printf_exception(self, "INVALID CONFIG FILE", msg=msg, quiet=quiet)
super().__init__(msg)
InvalidTypeError (TypeError, CopierError)
¶
The question type is not among the supported ones.
Source code in copier/errors.py
class InvalidTypeError(TypeError, CopierError):
"""The question type is not among the supported ones."""
MultipleConfigFilesError (ConfigFileError)
¶
Both copier.yml and copier.yaml found, and that's an error.
Source code in copier/errors.py
class MultipleConfigFilesError(ConfigFileError):
"""Both copier.yml and copier.yaml found, and that's an error."""
def __init__(self, conf_paths: "PathSeq"):
msg = str(conf_paths)
printf_exception(self, "MULTIPLE CONFIG FILES", msg=msg)
super().__init__(msg)
OldTemplateWarning (UserWarning, CopierWarning)
¶
Template was designed for an older Copier version.
Source code in copier/errors.py
class OldTemplateWarning(UserWarning, CopierWarning):
"""Template was designed for an older Copier version."""
PathNotAbsoluteError (_PathValueError, CopierError)
¶
The path is not absolute, but it should be.
Source code in copier/errors.py
class PathNotAbsoluteError(_PathValueError, CopierError):
"""The path is not absolute, but it should be."""
code = "path.not_absolute"
msg_template = '"{path}" is not an absolute path'
PathNotRelativeError (_PathValueError, CopierError)
¶
The path is not relative, but it should be.
Source code in copier/errors.py
class PathNotRelativeError(_PathValueError, CopierError):
"""The path is not relative, but it should be."""
code = "path.not_relative"
msg_template = '"{path}" is not a relative path'
UnknownCopierVersionWarning (UserWarning, CopierWarning)
¶
Cannot determine installed Copier version.
Source code in copier/errors.py
class UnknownCopierVersionWarning(UserWarning, CopierWarning):
"""Cannot determine installed Copier version."""
UnsupportedVersionError (UserMessageError)
¶
Copier version does not support template version.
Source code in copier/errors.py
class UnsupportedVersionError(UserMessageError):
"""Copier version does not support template version."""
UserMessageError (CopierError)
¶
Exit the program giving a message to the user.
Source code in copier/errors.py
class UserMessageError(CopierError):
"""Exit the program giving a message to the user."""