impl_get_information and impl_set_information are, now, persistent in storage
[tiramisu.git] / tiramisu / error.py
index d00d2d7..6c92be3 100644 (file)
@@ -1,25 +1,63 @@
-class AmbigousOptionError(Exception):
-    pass
-class NoMatchingOptionFound(AttributeError):
-    pass
-class ConfigError(Exception):
-    pass
-class ConflictConfigError(ConfigError):
-    pass
+# -*- coding: utf-8 -*-
+# Copyright (C) 2012-2013 Team tiramisu (see AUTHORS for all contributors)
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+# The original `Config` design model is unproudly borrowed from
+# the rough pypy's guys: http://codespeak.net/svn/pypy/dist/pypy/config/
+# the whole pypy projet is under MIT licence
+# ____________________________________________________________
+"user defined exceptions"
+
+
+# Exceptions for an Option
 class PropertiesOptionError(AttributeError):
-    def __init__(self, msg, proptype=None):
+    "attempt to access to an option with a property that is not allowed"
+    def __init__(self, msg, proptype):
         self.proptype = proptype
         super(PropertiesOptionError, self).__init__(msg)
 
-class NotFoundError(Exception):
-    pass
-class MethodCallError(Exception):
+
+#____________________________________________________________
+# Exceptions for a Config
+class ConfigError(Exception):
+    """attempt to change an option's owner without a value
+    or in case of `_cfgimpl_descr` is None
+    or if a calculation cannot be carried out"""
     pass
-class RequiresError(Exception):
+
+
+class ConflictError(Exception):
+    "duplicate options are present in a single config"
     pass
-class RequirementRecursionError(RequiresError):
+
+
+#____________________________________________________________
+#┬ámiscellaneous exceptions
+class RequirementError(Exception):
+    """a recursive loop occurs in the requirements tree
+    requires
+    """
     pass
-class MandatoryError(Exception):
+
+
+class SlaveError(Exception):
+    "problem with a slave's value length"
     pass
-class NoValueReturned(Exception):
+
+
+class ConstError(TypeError):
+    "no uniq value in _NameSpace"
     pass