_exceptions.py
changeset 11057 0b59724cb3f2
parent 11052 058bb3dc685f
child 11058 23eb30449fe5
--- a/_exceptions.py	Mon Jan 04 18:40:30 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-# copyright 2003-2013 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
-# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
-#
-# This file is part of CubicWeb.
-#
-# CubicWeb 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.1 of the License, or (at your option)
-# any later version.
-#
-# CubicWeb 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 CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
-"""Exceptions shared by different cubicweb packages."""
-
-__docformat__ = "restructuredtext en"
-
-from warnings import warn
-
-from six import PY3, text_type
-
-from logilab.common.decorators import cachedproperty
-
-from yams import ValidationError
-
-# abstract exceptions #########################################################
-
-class CubicWebException(Exception):
-    """base class for cubicweb server exception"""
-    msg = ""
-    def __unicode__(self):
-        if self.msg:
-            if self.args:
-                return self.msg % tuple(self.args)
-            else:
-                return self.msg
-        else:
-            return u' '.join(text_type(arg) for arg in self.args)
-    __str__ = __unicode__ if PY3 else lambda self: self.__unicode__().encode('utf-8')
-
-class ConfigurationError(CubicWebException):
-    """a misconfiguration error"""
-
-class InternalError(CubicWebException):
-    """base class for exceptions which should not occur"""
-
-class SecurityError(CubicWebException):
-    """base class for cubicweb server security exceptions"""
-
-class RepositoryError(CubicWebException):
-    """base class for repository exceptions"""
-
-class SourceException(CubicWebException):
-    """base class for source exceptions"""
-
-class CubicWebRuntimeError(CubicWebException):
-    """base class for runtime exceptions"""
-
-# repository exceptions #######################################################
-
-class ConnectionError(RepositoryError):
-    """raised when a bad connection id is given or when an attempt to establish
-    a connection failed
-    """
-
-class AuthenticationError(ConnectionError):
-    """raised when an attempt to establish a connection failed due to wrong
-    connection information (login / password or other authentication token)
-    """
-
-class BadConnectionId(ConnectionError):
-    """raised when a bad connection id is given"""
-
-class UnknownEid(RepositoryError):
-    """the eid is not defined in the system tables"""
-    msg = 'No entity with eid %s in the repository'
-
-class UniqueTogetherError(RepositoryError):
-    """raised when a unique_together constraint caused an IntegrityError"""
-    def __init__(self, session, **kwargs):
-        self.session = session
-        assert 'rtypes' in kwargs or 'cstrname' in kwargs
-        self.kwargs = kwargs
-        # fill cache while the session is open
-        self.rtypes
-
-    @cachedproperty
-    def rtypes(self):
-        if 'rtypes' in self.kwargs:
-            return self.kwargs['rtypes']
-        cstrname = unicode(self.kwargs['cstrname'])
-        cstr = self.session.find('CWUniqueTogetherConstraint', name=cstrname).one()
-        return sorted(rtype.name for rtype in cstr.relations)
-
-    @cachedproperty
-    def args(self):
-        warn('[3.18] UniqueTogetherError.args is deprecated, just use '
-             'the .rtypes accessor.',
-             DeprecationWarning)
-        # the first argument, etype, is never used and was never garanteed anyway
-        return None, self.rtypes
-
-
-class ViolatedConstraint(RepositoryError):
-    def __init__(self, cnx, cstrname):
-        self.cnx = cnx
-        self.cstrname = cstrname
-
-
-# security exceptions #########################################################
-
-class Unauthorized(SecurityError):
-    """raised when a user tries to perform an action without sufficient
-    credentials
-    """
-    msg = 'You are not allowed to perform this operation'
-    msg1 = 'You are not allowed to perform %s operation on %s'
-    var = None
-
-    def __str__(self):
-        try:
-            if self.args and len(self.args) == 2:
-                return self.msg1 % self.args
-            if self.args:
-                return ' '.join(self.args)
-            return self.msg
-        except Exception as ex:
-            return str(ex)
-
-class Forbidden(SecurityError):
-    """raised when a user tries to perform a forbidden action
-    """
-
-# source exceptions ###########################################################
-
-class EidNotInSource(SourceException):
-    """trying to access an object with a particular eid from a particular
-    source has failed
-    """
-    msg = 'No entity with eid %s in %s'
-
-
-# registry exceptions #########################################################
-
-# pre 3.15 bw compat
-from logilab.common.registry import RegistryException, ObjectNotFound, NoSelectableObject
-
-class UnknownProperty(RegistryException):
-    """property found in database but unknown in registry"""
-
-# query exception #############################################################
-
-class QueryError(CubicWebRuntimeError):
-    """a query try to do something it shouldn't"""
-
-class NotAnEntity(CubicWebRuntimeError):
-    """raised when get_entity is called for a column which doesn't contain
-    a non final entity
-    """
-
-class MultipleResultsError(CubicWebRuntimeError):
-    """raised when ResultSet.one() is called on a resultset with multiple rows
-    of multiple columns.
-    """
-
-class NoResultError(CubicWebRuntimeError):
-    """raised when no result is found but at least one is expected.
-    """
-
-class UndoTransactionException(QueryError):
-    """Raised when undoing a transaction could not be performed completely.
-
-    Note that :
-      1) the partial undo operation might be acceptable
-         depending upon the final application
-
-      2) the undo operation can also fail with a `ValidationError` in
-         cases where the undoing breaks integrity constraints checked
-         immediately.
-
-      3) It might be that neither of those exception is raised but a
-         subsequent `commit` might raise a `ValidationError` in cases
-         where the undoing breaks integrity constraints checked at
-         commit time.
-
-    :type txuuix: int
-    :param txuuid: Unique identifier of the partially undone transaction
-
-    :type errors: list
-    :param errors: List of errors occurred during undoing
-    """
-    msg = u"The following error(s) occurred while undoing transaction #%d : %s"
-
-    def __init__(self, txuuid, errors):
-        super(UndoTransactionException, self).__init__(txuuid, errors)
-        self.txuuid = txuuid
-        self.errors = errors
-
-# tools exceptions ############################################################
-
-class ExecutionError(Exception):
-    """server execution control error (already started, not running...)"""
-
-# pylint: disable=W0611
-from logilab.common.clcommands import BadCommandUsage