Mercurial > hg > hg-fastimport
diff hgext3rd/fastimport/vendor/python_fastimport/errors.py @ 86:28704a2a7461 vendor/python-fastimport
Import python-fastimport-0.9.8
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Tue, 19 Jan 2021 22:56:34 +0000 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hgext3rd/fastimport/vendor/python_fastimport/errors.py Tue Jan 19 22:56:34 2021 +0000 @@ -0,0 +1,183 @@ +# Copyright (C) 2008 Canonical Ltd +# +# 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, see <http://www.gnu.org/licenses/>. + +"""Exception classes for fastimport""" + +# Prefix to messages to show location information +_LOCATION_FMT = "line %(lineno)d: " + +# ImportError is heavily based on BzrError + +class ImportError(Exception): + """The base exception class for all import processing exceptions.""" + + def __init__(self): + super(ImportError, self).__init__(self._fmt % self.__dict__) + + +class ParsingError(ImportError): + """The base exception class for all import processing exceptions.""" + + _fmt = _LOCATION_FMT + "Unknown Import Parsing Error" + + def __init__(self, lineno): + self.lineno = lineno + ImportError.__init__(self) + + +class MissingBytes(ParsingError): + """Raised when EOF encountered while expecting to find more bytes.""" + + _fmt = (_LOCATION_FMT + "Unexpected EOF - expected %(expected)d bytes," + " found %(found)d") + + def __init__(self, lineno, expected, found): + self.expected = expected + self.found = found + ParsingError.__init__(self, lineno) + + +class MissingTerminator(ParsingError): + """Raised when EOF encountered while expecting to find a terminator.""" + + _fmt = (_LOCATION_FMT + + "Unexpected EOF - expected '%(terminator)s' terminator") + + def __init__(self, lineno, terminator): + self.terminator = terminator + ParsingError.__init__(self, lineno) + + +class InvalidCommand(ParsingError): + """Raised when an unknown command found.""" + + _fmt = (_LOCATION_FMT + "Invalid command '%(cmd)s'") + + def __init__(self, lineno, cmd): + self.cmd = cmd + ParsingError.__init__(self, lineno) + + +class MissingSection(ParsingError): + """Raised when a section is required in a command but not present.""" + + _fmt = (_LOCATION_FMT + "Command %(cmd)s is missing section %(section)s") + + def __init__(self, lineno, cmd, section): + self.cmd = cmd + self.section = section + ParsingError.__init__(self, lineno) + + +class BadFormat(ParsingError): + """Raised when a section is formatted incorrectly.""" + + _fmt = (_LOCATION_FMT + "Bad format for section %(section)s in " + "command %(cmd)s: found '%(text)s'") + + def __init__(self, lineno, cmd, section, text): + self.cmd = cmd + self.section = section + self.text = text + ParsingError.__init__(self, lineno) + + +class InvalidTimezone(ParsingError): + """Raised when converting a string timezone to a seconds offset.""" + + _fmt = (_LOCATION_FMT + + "Timezone %(timezone)r could not be converted.%(reason)s") + + def __init__(self, lineno, timezone, reason=None): + self.timezone = timezone + if reason: + self.reason = ' ' + reason + else: + self.reason = '' + ParsingError.__init__(self, lineno) + + +class PrematureEndOfStream(ParsingError): + """Raised when the 'done' feature was specified but missing.""" + + _fmt = (_LOCATION_FMT + "Stream end before 'done' command") + + def __init__(self, lineno): + ParsingError.__init__(self, lineno) + + +class UnknownDateFormat(ImportError): + """Raised when an unknown date format is given.""" + + _fmt = ("Unknown date format '%(format)s'") + + def __init__(self, format): + self.format = format + ImportError.__init__(self) + + +class MissingHandler(ImportError): + """Raised when a processor can't handle a command.""" + + _fmt = ("Missing handler for command %(cmd)s") + + def __init__(self, cmd): + self.cmd = cmd + ImportError.__init__(self) + + +class UnknownParameter(ImportError): + """Raised when an unknown parameter is passed to a processor.""" + + _fmt = ("Unknown parameter - '%(param)s' not in %(knowns)s") + + def __init__(self, param, knowns): + self.param = param + self.knowns = knowns + ImportError.__init__(self) + + +class BadRepositorySize(ImportError): + """Raised when the repository has an incorrect number of revisions.""" + + _fmt = ("Bad repository size - %(found)d revisions found, " + "%(expected)d expected") + + def __init__(self, expected, found): + self.expected = expected + self.found = found + ImportError.__init__(self) + + +class BadRestart(ImportError): + """Raised when the import stream and id-map do not match up.""" + + _fmt = ("Bad restart - attempted to skip commit %(commit_id)s " + "but matching revision-id is unknown") + + def __init__(self, commit_id): + self.commit_id = commit_id + ImportError.__init__(self) + + +class UnknownFeature(ImportError): + """Raised when an unknown feature is given in the input stream.""" + + _fmt = ("Unknown feature '%(feature)s' - try a later importer or " + "an earlier data format") + + def __init__(self, feature): + self.feature = feature + ImportError.__init__(self)
