# # Copyright (C) 2018 Codethink Limited # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library. If not, see . # # Authors: # Tristan Van Berkom # Tiago Gomes """ 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"""