~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: Aaron Bentley
  • Date: 2005-10-03 19:50:36 UTC
  • mfrom: (1399)
  • mto: (1185.25.1)
  • mto: This revision was merged to the branch mainline in revision 1419.
  • Revision ID: abentley@panoramicfeedback.com-20051003195036-28dbd56f0e852b08
Merged latest from Robert Collins

Show diffs side-by-side

added added

removed removed

Lines of Context:
138
138
        self.not_ancestor_id = not_ancestor_id
139
139
 
140
140
 
 
141
class NotAncestor(BzrError):
 
142
    def __init__(self, rev_id, not_ancestor_id):
 
143
        self.rev_id = rev_id
 
144
        self.not_ancestor_id = not_ancestor_id
 
145
        msg = "Revision %s is not an ancestor of %s" % (not_ancestor_id, 
 
146
                                                        rev_id)
 
147
        BzrError.__init__(self, msg)
 
148
 
 
149
 
141
150
class InstallFailed(BzrError):
142
151
    def __init__(self, revisions):
143
152
        msg = "Could not install revisions:\n%s" % " ,".join(revisions)
167
176
 
168
177
 
169
178
from bzrlib.weave import WeaveError
 
179
 
 
180
class TransportError(BzrError):
 
181
    """All errors thrown by Transport implementations should derive
 
182
    from this class.
 
183
    """
 
184
    def __init__(self, msg=None, orig_error=None):
 
185
        if msg is None and orig_error is not None:
 
186
            msg = str(orig_error)
 
187
        BzrError.__init__(self, msg)
 
188
        self.msg = msg
 
189
        self.orig_error = orig_error
 
190
 
 
191
# A set of semi-meaningful errors which can be thrown
 
192
class TransportNotPossible(TransportError):
 
193
    """This is for transports where a specific function is explicitly not
 
194
    possible. Such as pushing files to an HTTP server.
 
195
    """
 
196
    pass
 
197
 
 
198
class NonRelativePath(TransportError):
 
199
    """An absolute path was supplied, that could not be decoded into
 
200
    a relative path.
 
201
    """
 
202
    pass
 
203
 
 
204
class NoSuchFile(TransportError, IOError):
 
205
    """A get() was issued for a file that doesn't exist."""
 
206
    def __init__(self, msg=None, orig_error=None):
 
207
        import errno
 
208
        TransportError.__init__(self, msg=msg, orig_error=orig_error)
 
209
        IOError.__init__(self, errno.ENOENT, self.msg)
 
210
 
 
211
class FileExists(TransportError, OSError):
 
212
    """An operation was attempted, which would overwrite an entry,
 
213
    but overwritting is not supported.
 
214
 
 
215
    mkdir() can throw this, but put() just overwites existing files.
 
216
    """
 
217
    def __init__(self, msg=None, orig_error=None):
 
218
        import errno
 
219
        TransportError.__init__(self, msg=msg, orig_error=orig_error)
 
220
        OSError.__init__(self, errno.EEXIST, self.msg)
 
221
 
 
222
class PermissionDenied(TransportError):
 
223
    """An operation cannot succeed because of a lack of permissions."""
 
224
    pass
 
225
 
 
226
class ConnectionReset(TransportError):
 
227
    """The connection has been closed."""
 
228
    pass
 
229