Source code for invenio_jsonschemas.errors

# -*- coding: utf-8 -*-
# This file is part of Invenio.
# Copyright (C) 2015-2018 CERN.
# Invenio is free software; you can redistribute it and/or modify it
# under the terms of the MIT License; see LICENSE file for more details.

"""Invenio-JSONSchemas errors."""

from __future__ import absolute_import, print_function

[docs]class JSONSchemaError(Exception): """Base class for errors in Invenio-JSONSchemas module."""
[docs]class JSONSchemaNotFound(JSONSchemaError): """Exception raised when a requested JSONSchema is not found.""" def __init__(self, schema, *args, **kwargs): """Constructor. :param schema: path of the requested schema which was not found. """ self.schema = schema super(JSONSchemaNotFound, self).__init__( 'Schema "{}" not found'.format(schema), *args, **kwargs )
[docs]class JSONSchemaDuplicate(JSONSchemaError): """Exception raised when multiple schemas match the same path.""" def __init__(self, schema, first_dir, second_dir, *args, **kwargs): """Constructor. :param schema: duplicate schema path. :param first_dir: first directory where the schema was found. :param second_dir: second directory where the schema was found. """ self.schema = schema super(JSONSchemaDuplicate, self).__init__( 'Schema "{schema}" defined in multiple ' + 'directories: "{first}" and "{second}"'.format( schema=schema, first=first_dir, second=second_dir), *args, **kwargs)