view mercurial/error.py @ 9249:16f4cfc69e4f

commands: wrap docstrings at 70 characters It is no longer necessary to wrap the docstrings at 70 characters in the source -- with the reST parser, they are re-formatted to fit the terminal when shown. However, wrapping the docstrings at 78 characters makes life harder for translators because it marks a lot of strings as fuzzy for no good reason. When un-marking them, the translators would have to examine each string again and determine if it is merely re-wrapped or if the content was also changed. The long lines also introduce very ugly linebreaks in the .po files if they are processed using the standard Gettext tools without using something like '--width 85' all the time.
author Martin Geisler <mg@lazybytes.net>
date Sun, 26 Jul 2009 01:33:00 +0200
parents 0a9542703300
children 1444a42f6052
line wrap: on
line source

# error.py - Mercurial exceptions
#
# Copyright 2005-2008 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2, incorporated herein by reference.

"""Mercurial exceptions.

This allows us to catch exceptions at higher levels without forcing
imports.
"""

# Do not import anything here, please

class RevlogError(Exception):
    pass

class LookupError(RevlogError, KeyError):
    def __init__(self, name, index, message):
        self.name = name
        if isinstance(name, str) and len(name) == 20:
            from node import short
            name = short(name)
        RevlogError.__init__(self, '%s@%s: %s' % (index, name, message))

    def __str__(self):
        return RevlogError.__str__(self)

class ParseError(Exception):
    """Exception raised on errors in parsing the command line."""

class ConfigError(Exception):
    'Exception raised when parsing config files'

class RepoError(Exception):
    pass

class CapabilityError(RepoError):
    pass

class LockError(IOError):
    def __init__(self, errno, strerror, filename, desc):
        IOError.__init__(self, errno, strerror, filename)
        self.desc = desc

class LockHeld(LockError):
    def __init__(self, errno, filename, desc, locker):
        LockError.__init__(self, errno, 'Lock held', filename, desc)
        self.locker = locker

class LockUnavailable(LockError):
    pass

class ResponseError(Exception):
    """Raised to print an error with part of output and exit."""

class UnknownCommand(Exception):
    """Exception raised if command is not in the command table."""

class AmbiguousCommand(Exception):
    """Exception raised if command shortcut matches more than one command."""

# derived from KeyboardInterrupt to simplify some breakout code
class SignalInterrupt(KeyboardInterrupt):
    """Exception raised on SIGTERM and SIGHUP."""

class SignatureError(Exception):
    pass

class Abort(Exception):
    """Raised if a command needs to print an error and exit."""