~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
132
132
            if isinstance(s, unicode):
133
133
                return s.encode('utf8')
134
134
            return s
135
 
        except (NameError, ValueError, KeyError), e:
136
 
            return 'Unprintable exception %s: %s' \
137
 
                % (self.__class__.__name__, str(e))
 
135
        except (TypeError, NameError, ValueError, KeyError), e:
 
136
            return 'Unprintable exception %s(%r): %s' \
 
137
                % (self.__class__.__name__,
 
138
                   self.__dict__, str(e))
138
139
 
139
140
 
140
141
class AlreadyBuilding(BzrNewError):
998
999
        self.format = format
999
1000
 
1000
1001
 
 
1002
class BadConversionTarget(BzrNewError):
 
1003
    """Cannot convert to format %(format)s.  %(problem)s"""
 
1004
 
 
1005
    def __init__(self, problem, format):
 
1006
        BzrNewError.__init__(self)
 
1007
        self.problem = problem
 
1008
        self.format = format
 
1009
 
 
1010
 
1001
1011
class NoDiff(BzrNewError):
1002
1012
    """Diff is not installed on this machine: %(msg)s"""
1003
1013
 
1156
1166
        BzrNewError.__init__(self)
1157
1167
 
1158
1168
 
 
1169
class BadInventoryFormat(BzrNewError):
 
1170
    """Root class for inventory serialization errors"""
 
1171
 
 
1172
 
 
1173
class UnexpectedInventoryFormat(BadInventoryFormat):
 
1174
    """The inventory was not in the expected format:\n %(msg)s"""
 
1175
 
 
1176
    def __init__(self, msg):
 
1177
        BadInventoryFormat.__init__(self, msg=msg)
 
1178
 
 
1179
 
1159
1180
class UnknownSSH(BzrNewError):
1160
1181
    """Unrecognised value for BZR_SSH environment variable: %(vendor)s"""
1161
1182
 
1170
1191
    def __init__(self, revision_id):
1171
1192
        BzrNewError.__init__(self)
1172
1193
        self.revision_id = revision_id
 
1194
 
 
1195
 
 
1196
class IllegalUseOfScopeReplacer(BzrNewError):
 
1197
    """ScopeReplacer object %(name)r was used incorrectly: %(msg)s%(extra)s"""
 
1198
 
 
1199
    is_user_error = False
 
1200
 
 
1201
    def __init__(self, name, msg, extra=None):
 
1202
        BzrNewError.__init__(self)
 
1203
        self.name = name
 
1204
        self.msg = msg
 
1205
        if extra:
 
1206
            self.extra = ': ' + str(extra)
 
1207
        else:
 
1208
            self.extra = ''
 
1209
 
 
1210
 
 
1211
class InvalidImportLine(BzrNewError):
 
1212
    """Not a valid import statement: %(msg)\n%(text)s"""
 
1213
 
 
1214
    is_user_error = False
 
1215
 
 
1216
    def __init__(self, text, msg):
 
1217
        BzrNewError.__init__(self)
 
1218
        self.text = text
 
1219
        self.msg = msg
 
1220
 
 
1221
 
 
1222
class ImportNameCollision(BzrNewError):
 
1223
    """Tried to import an object to the same name as an existing object. %(name)s"""
 
1224
 
 
1225
    is_user_error = False
 
1226
 
 
1227
    def __init__(self, name):
 
1228
        BzrNewError.__init__(self)
 
1229
        self.name = name