Switch to unified view

a/Allura/allura/lib/exceptions.py b/Allura/allura/lib/exceptions.py
...
...
16
#       under the License.
16
#       under the License.
17
17
18
from formencode import Invalid
18
from formencode import Invalid
19
19
20
class ForgeError(Exception): pass
20
class ForgeError(Exception): pass
21
21
class ProjectConflict(ForgeError, Invalid): pass
22
class ProjectConflict(ForgeError, Invalid):
23
24
    # support the single string constructor in addition to full set of params that Invalid.__init__ requires
25
    def __init__(self, msg, value=None, state=None, error_list=None, error_dict=None):
26
        super(ProjectConflict, self).__init__(msg, value, state, error_list, error_dict)
27
28
22
class ProjectShortnameInvalid(ForgeError, Invalid): pass
29
class ProjectShortnameInvalid(ForgeError, Invalid): pass
23
class ProjectOverlimitError(ForgeError): pass
30
class ProjectOverlimitError(ForgeError): pass
24
class ProjectRatelimitError(ForgeError): pass
31
class ProjectRatelimitError(ForgeError): pass
25
class ToolError(ForgeError): pass
32
class ToolError(ForgeError): pass
26
class NoSuchProjectError(ForgeError): pass
33
class NoSuchProjectError(ForgeError): pass
...
...
43
        for tp,val,tb in self.args:
50
        for tp,val,tb in self.args:
44
            for line in traceback.format_exception(tp,val,tb):
51
            for line in traceback.format_exception(tp,val,tb):
45
                parts.append('    ' + line)
52
                parts.append('    ' + line)
46
        parts.append('</%s>\n' % self.__class__.__name__ )
53
        parts.append('</%s>\n' % self.__class__.__name__ )
47
        return ''.join(parts)
54
        return ''.join(parts)
48