~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: Jelmer Vernooij
  • Date: 2006-06-13 13:24:40 UTC
  • mfrom: (1767 +trunk)
  • mto: (1769.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 1770.
  • Revision ID: jelmer@samba.org-20060613132440-24e222a86f948f60
[merge] bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
 
56
56
from warnings import warn
57
57
 
 
58
from bzrlib.patches import (PatchSyntax, 
 
59
                            PatchConflict, 
 
60
                            MalformedPatchHeader,
 
61
                            MalformedHunkHeader,
 
62
                            MalformedLine,)
 
63
 
 
64
 
58
65
# based on Scott James Remnant's hct error classes
59
66
 
60
67
# TODO: is there any value in providing the .args field used by standard
159
166
class BzrCommandError(BzrError):
160
167
    # Error from malformed user command
161
168
    # This is being misused as a generic exception
162
 
    # pleae subclass. RBC 20051030
 
169
    # please subclass. RBC 20051030
163
170
    #
164
171
    # I think it's a waste of effort to differentiate between errors that
165
172
    # are not intended to be caught anyway.  UI code need not subclass
211
218
    """Permission denied: %(path)r%(extra)s"""
212
219
 
213
220
 
 
221
class InvalidURL(PathError):
 
222
    """Invalid url supplied to transport: %(path)r%(extra)s"""
 
223
 
 
224
 
 
225
class InvalidURLJoin(PathError):
 
226
    """Invalid URL join request: %(args)s%(extra)s"""
 
227
 
 
228
    def __init__(self, msg, base, args):
 
229
        PathError.__init__(self, base, msg)
 
230
        self.args = [base]
 
231
        self.args.extend(args)
 
232
 
 
233
 
214
234
class PathNotChild(BzrNewError):
215
235
    """Path %(path)r is not a child of path %(base)r%(extra)s"""
216
236
    def __init__(self, path, base, extra=None):
223
243
            self.extra = ''
224
244
 
225
245
 
 
246
# TODO: This is given a URL; we try to unescape it but doing that from inside
 
247
# the exception object is a bit undesirable.
 
248
# TODO: Probably this behavior of should be a common superclass 
226
249
class NotBranchError(PathError):
227
250
    """Not a branch: %(path)s"""
228
251
 
 
252
    def __init__(self, path):
 
253
       import bzrlib.urlutils as urlutils
 
254
       self.path = urlutils.unescape_for_display(path, 'ascii')
 
255
 
229
256
 
230
257
class AlreadyBranchError(PathError):
231
258
    """Already a branch: %(path)s."""
484
511
    def __init__(self, bases):
485
512
        warn("BzrError AmbiguousBase has been deprecated as of bzrlib 0.8.",
486
513
                DeprecationWarning)
487
 
        msg = "The correct base is unclear, becase %s are all equally close" %\
 
514
        msg = "The correct base is unclear, because %s are all equally close" %\
488
515
            ", ".join(bases)
489
516
        BzrError.__init__(self, msg)
490
517
        self.bases = bases
740
767
    """
741
768
 
742
769
 
 
770
class NoBundleFound(BzrNewError):
 
771
    """No bundle was found in %(filename)s"""
 
772
    def __init__(self, filename):
 
773
        BzrNewError.__init__(self)
 
774
        self.filename = filename
 
775
 
 
776
 
 
777
class BundleNotSupported(BzrNewError):
 
778
    """Unable to handle bundle version %(version)s: %(msg)s"""
 
779
    def __init__(self, version, msg):
 
780
        BzrNewError.__init__(self)
 
781
        self.version = version
 
782
        self.msg = msg
 
783
 
 
784
 
743
785
class MissingText(BzrNewError):
744
786
    """Branch %(base)s is missing revision %(text_revision)s of %(file_id)s"""
745
787
 
903
945
    def __init__(self, path):
904
946
        BzrNewError.__init__(self)
905
947
        self.path = path
 
948
 
 
949
 
 
950
class TestamentMismatch(BzrNewError):
 
951
    """Testament did not match expected value.  
 
952
       For revision_id {%(revision_id)s}, expected {%(expected)s}, measured 
 
953
       {%(measured)s}
 
954
    """
 
955
    def __init__(self, revision_id, expected, measured):
 
956
        self.revision_id = revision_id
 
957
        self.expected = expected
 
958
        self.measured = measured
 
959
 
 
960
 
 
961
class NotABundle(BzrNewError):
 
962
    """Not a bzr revision-bundle: %(text)r"""
 
963
 
 
964
    def __init__(self, text):
 
965
        self.text = text
 
966
 
 
967
 
 
968
class BadBundle(Exception): pass
 
969
 
 
970
 
 
971
class MalformedHeader(BadBundle): pass
 
972
 
 
973
 
 
974
class MalformedPatches(BadBundle): pass
 
975
 
 
976
 
 
977
class MalformedFooter(BadBundle): pass