120
120
# base classes should override the docstring with their human-
121
121
# readable explanation
123
def __init__(self, **kwds):
123
def __init__(self, *args, **kwds):
124
# XXX: Use the underlying BzrError to always generate the args attribute
125
# if it doesn't exist. We can't use super here, because exceptions are
126
# old-style classes in python2.4 (but new in 2.5). --bmc, 20060426
127
BzrError.__init__(self, *args)
124
128
for key, value in kwds.items():
125
129
setattr(self, key, value)
127
131
def __str__(self):
129
return self.__doc__ % self.__dict__
130
except (NameError, ValueError, KeyError), e:
131
return 'Unprintable exception %s: %s' \
132
% (self.__class__.__name__, str(e))
133
# __str__() should always return a 'str' object
134
# never a 'unicode' object.
135
s = self.__doc__ % self.__dict__
136
if isinstance(s, unicode):
137
return s.encode('utf8')
139
except (TypeError, NameError, ValueError, KeyError), e:
140
return 'Unprintable exception %s(%r): %s' \
141
% (self.__class__.__name__,
142
self.__dict__, str(e))
145
class AlreadyBuilding(BzrNewError):
146
"""The tree builder is already building a tree."""
135
149
class BzrCheckError(BzrNewError):
265
297
PathError.__init__(self, url, extra=extra)
300
class ShortReadvError(PathError):
301
"""readv() read %(actual)s bytes rather than %(length)s bytes at %(offset)s for %(path)s%(extra)s"""
303
is_user_error = False
305
def __init__(self, path, offset, length, actual, extra=None):
306
PathError.__init__(self, path, extra=extra)
268
312
class PathNotChild(BzrNewError):
269
313
"""Path %(path)r is not a child of path %(base)r%(extra)s"""
304
348
(use bzr checkout if you wish to build a working tree): %(path)s"""
351
class AtomicFileAlreadyClosed(PathError):
352
"""'%(function)s' called on an AtomicFile after it was closed: %(path)s"""
354
def __init__(self, path, function):
355
PathError.__init__(self, path=path, extra=None)
356
self.function = function
359
class InaccessibleParent(PathError):
360
"""Parent not accessible given base %(base)s and relative path %(path)s"""
362
def __init__(self, path, base):
363
PathError.__init__(self, path)
307
367
class NoRepositoryPresent(BzrNewError):
308
368
"""No repository present: %(path)r"""
309
369
def __init__(self, bzrdir):
489
556
is_user_error = False
491
558
def __init__(self, branch, revision):
493
self.revision = revision
559
BzrNewError.__init__(self, branch=branch, revision=revision)
562
class NoSuchRevisionSpec(BzrNewError):
563
"""No namespace registered for string: %(spec)r"""
565
def __init__(self, spec):
566
BzrNewError.__init__(self, spec=spec)
569
class InvalidRevisionSpec(BzrNewError):
570
"""Requested revision: '%(spec)s' does not exist in branch:
571
%(branch)s%(extra)s"""
573
def __init__(self, spec, branch, extra=None):
574
BzrNewError.__init__(self, branch=branch, spec=spec)
576
self.extra = '\n' + str(extra)
496
581
class HistoryMissing(BzrError):
930
1037
self.format = format
1040
class BadConversionTarget(BzrNewError):
1041
"""Cannot convert to format %(format)s. %(problem)s"""
1043
def __init__(self, problem, format):
1044
BzrNewError.__init__(self)
1045
self.problem = problem
1046
self.format = format
933
1049
class NoDiff(BzrNewError):
934
1050
"""Diff is not installed on this machine: %(msg)s"""
936
1052
def __init__(self, msg):
937
super(NoDiff, self).__init__(msg=msg)
1053
BzrNewError.__init__(self, msg=msg)
940
1056
class NoDiff3(BzrNewError):
1045
1161
"""Not a bzr revision-bundle: %(text)r"""
1047
1163
def __init__(self, text):
1051
class BadBundle(Exception): pass
1054
class MalformedHeader(BadBundle): pass
1057
class MalformedPatches(BadBundle): pass
1060
class MalformedFooter(BadBundle): pass
1164
BzrNewError.__init__(self)
1168
class BadBundle(BzrNewError):
1169
"""Bad bzr revision-bundle: %(text)r"""
1171
def __init__(self, text):
1172
BzrNewError.__init__(self)
1176
class MalformedHeader(BadBundle):
1177
"""Malformed bzr revision-bundle header: %(text)r"""
1179
def __init__(self, text):
1180
BzrNewError.__init__(self)
1184
class MalformedPatches(BadBundle):
1185
"""Malformed patches in bzr revision-bundle: %(text)r"""
1187
def __init__(self, text):
1188
BzrNewError.__init__(self)
1192
class MalformedFooter(BadBundle):
1193
"""Malformed footer in bzr revision-bundle: %(text)r"""
1195
def __init__(self, text):
1196
BzrNewError.__init__(self)
1200
class UnsupportedEOLMarker(BadBundle):
1201
"""End of line marker was not \\n in bzr revision-bundle"""
1204
BzrNewError.__init__(self)
1207
class IncompatibleFormat(BzrNewError):
1208
"""Bundle format %(bundle_format)s is incompatible with %(other)s"""
1210
def __init__(self, bundle_format, other):
1211
BzrNewError.__init__(self)
1212
self.bundle_format = bundle_format
1216
class BadInventoryFormat(BzrNewError):
1217
"""Root class for inventory serialization errors"""
1220
class UnexpectedInventoryFormat(BadInventoryFormat):
1221
"""The inventory was not in the expected format:\n %(msg)s"""
1223
def __init__(self, msg):
1224
BadInventoryFormat.__init__(self, msg=msg)
1227
class NoSmartServer(NotBranchError):
1228
"""No smart server available at %(url)s"""
1230
def __init__(self, url):
1234
class UnknownSSH(BzrNewError):
1235
"""Unrecognised value for BZR_SSH environment variable: %(vendor)s"""
1237
def __init__(self, vendor):
1238
BzrNewError.__init__(self)
1239
self.vendor = vendor
1242
class GhostRevisionUnusableHere(BzrNewError):
1243
"""Ghost revision {%(revision_id)s} cannot be used here."""
1245
def __init__(self, revision_id):
1246
BzrNewError.__init__(self)
1247
self.revision_id = revision_id
1250
class IllegalUseOfScopeReplacer(BzrNewError):
1251
"""ScopeReplacer object %(name)r was used incorrectly: %(msg)s%(extra)s"""
1253
is_user_error = False
1255
def __init__(self, name, msg, extra=None):
1256
BzrNewError.__init__(self)
1260
self.extra = ': ' + str(extra)
1265
class InvalidImportLine(BzrNewError):
1266
"""Not a valid import statement: %(msg)\n%(text)s"""
1268
is_user_error = False
1270
def __init__(self, text, msg):
1271
BzrNewError.__init__(self)
1276
class ImportNameCollision(BzrNewError):
1277
"""Tried to import an object to the same name as an existing object. %(name)s"""
1279
is_user_error = False
1281
def __init__(self, name):
1282
BzrNewError.__init__(self)