~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: John Arbash Meinel
  • Date: 2005-09-29 20:34:25 UTC
  • mfrom: (1185.11.24)
  • mto: (1393.1.12)
  • mto: This revision was merged to the branch mainline in revision 1396.
  • Revision ID: john@arbash-meinel.com-20050929203425-7fc2ea87f449dfe8
Merged in split-storage-2 branch. Need to cleanup a little bit more still.

Show diffs side-by-side

added added

removed removed

Lines of Context:
167
167
 
168
168
 
169
169
from bzrlib.weave import WeaveError
 
170
 
 
171
class TransportError(BzrError):
 
172
    """All errors thrown by Transport implementations should derive
 
173
    from this class.
 
174
    """
 
175
    def __init__(self, msg=None, orig_error=None):
 
176
        if msg is None and orig_error is not None:
 
177
            msg = str(orig_error)
 
178
        BzrError.__init__(self, msg)
 
179
        self.msg = msg
 
180
        self.orig_error = orig_error
 
181
 
 
182
# A set of semi-meaningful errors which can be thrown
 
183
class TransportNotPossible(TransportError):
 
184
    """This is for transports where a specific function is explicitly not
 
185
    possible. Such as pushing files to an HTTP server.
 
186
    """
 
187
    pass
 
188
 
 
189
class NonRelativePath(TransportError):
 
190
    """An absolute path was supplied, that could not be decoded into
 
191
    a relative path.
 
192
    """
 
193
    pass
 
194
 
 
195
class NoSuchFile(TransportError, IOError):
 
196
    """A get() was issued for a file that doesn't exist."""
 
197
    def __init__(self, msg=None, orig_error=None):
 
198
        import errno
 
199
        TransportError.__init__(self, msg=msg, orig_error=orig_error)
 
200
        IOError.__init__(self, errno.ENOENT, self.msg)
 
201
 
 
202
class FileExists(TransportError, OSError):
 
203
    """An operation was attempted, which would overwrite an entry,
 
204
    but overwritting is not supported.
 
205
 
 
206
    mkdir() can throw this, but put() just overwites existing files.
 
207
    """
 
208
    def __init__(self, msg=None, orig_error=None):
 
209
        import errno
 
210
        TransportError.__init__(self, msg=msg, orig_error=orig_error)
 
211
        OSError.__init__(self, errno.EEXIST, self.msg)
 
212
 
 
213
class PermissionDenied(TransportError):
 
214
    """An operation cannot succeed because of a lack of permissions."""
 
215
    pass
 
216
 
 
217
class ConnectionReset(TransportError):
 
218
    """The connection has been closed."""
 
219
    pass
 
220