blob: 4806218e9fcc40936ed83ccb3877cfa76ff98921 [file] [log] [blame]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Authors:
# Tristan Van Berkom <tristan.vanberkom@codethink.co.uk>
# Tiago Gomes <tiago.gomes@codethink.co.uk>
"""
Exceptions - API for Error Handling
===================================
This module contains some Enums used in Error Handling which are useful in
testing external plugins.
"""
from enum import Enum, unique
@unique
class ErrorDomain(Enum):
"""ErrorDomain
Describes what the error is related to.
"""
PLUGIN = 1
LOAD = 2
IMPL = 3
PLATFORM = 4
SANDBOX = 5
ARTIFACT = 6
PIPELINE = 7
UTIL = 8
SOURCE = 9
ELEMENT = 10
APP = 11
STREAM = 12
VIRTUAL_FS = 13
CAS = 14
PROG_NOT_FOUND = 15
REMOTE = 16
PROFILE = 17
class LoadErrorReason(Enum):
"""LoadErrorReason
Describes the reason why a :class:`.LoadError` was raised.
"""
MISSING_FILE = 1
"""A file was not found."""
INVALID_YAML = 2
"""The parsed data was not valid YAML."""
INVALID_DATA = 3
"""Data was malformed, a value was not of the expected type, etc"""
ILLEGAL_COMPOSITE = 4
"""An error occurred during YAML dictionary composition.
This can happen by overriding a value with a new differently typed
value, or by overwriting some named value when that was not allowed.
"""
CIRCULAR_DEPENDENCY = 5
"""A circular dependency chain was detected"""
UNRESOLVED_VARIABLE = 6
"""A variable could not be resolved. This can happen if your project
has cyclic dependencies in variable declarations, or, when substituting
a string which refers to an undefined variable.
"""
UNSUPPORTED_PROJECT = 7
"""The project requires an incompatible BuildStream version"""
UNSUPPORTED_PLUGIN = 8
"""Project requires a newer version of a plugin than the one which was
loaded
"""
EXPRESSION_FAILED = 9
"""A conditional expression failed to resolve"""
USER_ASSERTION = 10
"""An assertion was intentionally encoded into project YAML"""
TRAILING_LIST_DIRECTIVE = 11
"""A list composition directive did not apply to any underlying list"""
CONFLICTING_JUNCTION = 12
"""Conflicting junctions in subprojects"""
INVALID_JUNCTION = 13
"""Failure to load a project from a specified junction"""
SUBPROJECT_INCONSISTENT = 15
"""Subproject has no ref"""
INVALID_SYMBOL_NAME = 16
"""An invalid symbol name was encountered"""
MISSING_PROJECT_CONF = 17
"""A project.conf file was missing"""
LOADING_DIRECTORY = 18
"""Try to load a directory not a yaml file"""
PROJ_PATH_INVALID = 19
"""A project path leads outside of the project directory"""
PROJ_PATH_INVALID_KIND = 20
"""A project path points to a file of the not right kind (e.g. a
socket)
"""
RECURSIVE_INCLUDE = 21
"""A recursive include has been encountered"""
CIRCULAR_REFERENCE_VARIABLE = 22
"""A circular variable reference was detected"""
PROTECTED_VARIABLE_REDEFINED = 23
"""An attempt was made to set the value of a protected variable"""
INVALID_DEPENDENCY_CONFIG = 24
"""An attempt was made to specify dependency configuration on an element
which does not support custom dependency configuration"""
LINK_FORBIDDEN_DEPENDENCIES = 25
"""A link element declared dependencies"""
CIRCULAR_REFERENCE = 26
"""A circular element reference was detected"""
BAD_ELEMENT_SUFFIX = 27
"""
This warning will be produced when an element whose name does not end in .bst
is referenced either on the command line or by another element
"""
BAD_CHARACTERS_IN_NAME = 28
"""
This warning will be produced when a filename for a target contains invalid
characters in its name.
"""