~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: Robert Collins
  • Date: 2006-03-28 14:29:13 UTC
  • mto: (1626.2.1 integration)
  • mto: This revision was merged to the branch mainline in revision 1628.
  • Revision ID: robertc@robertcollins.net-20060328142913-ac5afb37075719c6
Convert log to use the new tsort.merge_sort routine.

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
fullstop.
54
54
"""
55
55
 
56
 
from warnings import warn
57
 
 
58
56
# based on Scott James Remnant's hct error classes
59
57
 
60
58
# TODO: is there any value in providing the .args field used by standard
68
66
# TODO: Convert all the other error classes here to BzrNewError, and eliminate
69
67
# the old one.
70
68
 
71
 
# TODO: The pattern (from hct) of using classes docstrings as message
72
 
# templates is cute but maybe not such a great idea - perhaps should have a
73
 
# separate static message_template.
74
 
 
75
69
 
76
70
class BzrError(StandardError):
77
71
    def __str__(self):
140
134
 
141
135
 
142
136
class NoWorkingTree(BzrNewError):
143
 
    """No WorkingTree exists for %(base)s."""
 
137
    """No WorkingTree exists for %s(base)."""
144
138
    
145
139
    def __init__(self, base):
146
140
        BzrNewError.__init__(self)
148
142
 
149
143
 
150
144
class NotLocalUrl(BzrNewError):
151
 
    """%(url)s is not a local path."""
 
145
    """%s(url) is not a local path."""
152
146
    
153
147
    def __init__(self, url):
154
148
        BzrNewError.__init__(self)
176
170
    """Commit refused because there are unknowns in the tree."""
177
171
 
178
172
 
179
 
# XXX: Should be unified with TransportError; they seem to represent the
180
 
# same thing
181
173
class PathError(BzrNewError):
182
174
    """Generic path error: %(path)r%(extra)s)"""
183
 
 
184
175
    def __init__(self, path, extra=None):
185
176
        BzrNewError.__init__(self)
186
177
        self.path = path
202
193
    """Directory not empty: %(path)r%(extra)s"""
203
194
 
204
195
 
205
 
class ResourceBusy(PathError):
206
 
    """Device or resource busy: %(path)r%(extra)s"""
207
 
 
208
 
 
209
196
class PermissionDenied(PathError):
210
197
    """Permission denied: %(path)r%(extra)s"""
211
198
 
222
209
            self.extra = ''
223
210
 
224
211
 
225
 
class NotBranchError(PathError):
 
212
class NotBranchError(BzrNewError):
226
213
    """Not a branch: %(path)s"""
227
 
 
228
 
 
229
 
class AlreadyBranchError(PathError):
230
 
    """Already a branch: %(path)s."""
231
 
 
232
 
 
233
 
class BranchExistsWithoutWorkingTree(PathError):
234
 
    """Directory contains a branch, but no working tree \
235
 
(use bzr checkout if you wish to build a working tree): %(path)s"""
 
214
    def __init__(self, path):
 
215
        BzrNewError.__init__(self)
 
216
        self.path = path
236
217
 
237
218
 
238
219
class NoRepositoryPresent(BzrNewError):
280
261
        self.path = path
281
262
 
282
263
 
283
 
class PathsNotVersionedError(BzrNewError):
284
 
    # used when reporting several paths are not versioned
285
 
    """Path(s) are not versioned: %(paths_as_string)s"""
286
 
 
287
 
    def __init__(self, paths):
288
 
        from bzrlib.osutils import quotefn
289
 
        BzrNewError.__init__(self)
290
 
        self.paths = paths
291
 
        self.paths_as_string = ' '.join([quotefn(p) for p in paths])
292
 
 
293
 
 
294
 
class PathsDoNotExist(BzrNewError):
295
 
    """Path(s) do not exist: %(paths_as_string)s"""
296
 
 
297
 
    # used when reporting that paths are neither versioned nor in the working
298
 
    # tree
299
 
 
300
 
    def __init__(self, paths):
301
 
        # circular import
302
 
        from bzrlib.osutils import quotefn
303
 
        BzrNewError.__init__(self)
304
 
        self.paths = paths
305
 
        self.paths_as_string = ' '.join([quotefn(p) for p in paths])
306
 
 
307
 
 
308
264
class BadFileKindError(BzrError):
309
265
    """Specified file is of a kind that cannot be added.
310
266
 
434
390
 
435
391
 
436
392
class DivergedBranches(BzrError):
437
 
 
438
393
    def __init__(self, branch1, branch2):
439
394
        BzrError.__init__(self, "These branches have diverged.  Try merge.")
440
395
        self.branch1 = branch1
481
436
 
482
437
class AmbiguousBase(BzrError):
483
438
    def __init__(self, bases):
484
 
        warn("BzrError AmbiguousBase has been deprecated as of bzrlib 0.8.",
485
 
                DeprecationWarning)
486
439
        msg = "The correct base is unclear, becase %s are all equally close" %\
487
440
            ", ".join(bases)
488
441
        BzrError.__init__(self, msg)
789
742
    """Parameter $(param)s is required but not present."""
790
743
 
791
744
 
792
 
class BzrBadParameterUnicode(BzrBadParameter):
793
 
    """Parameter %(param)s is unicode but only byte-strings are permitted."""
794
 
 
795
 
 
796
 
class BzrBadParameterContainsNewline(BzrBadParameter):
797
 
    """Parameter %(param)s contains a newline."""
798
 
 
799
 
 
800
745
class DependencyNotPresent(BzrNewError):
801
746
    """Unable to import library "%(library)s": %(error)s"""
802
747
 
855
800
    """Error in merge modified format"""
856
801
 
857
802
 
858
 
class ConflictFormatError(BzrNewError):
859
 
    """Format error in conflict listings"""
860
 
 
861
 
 
862
803
class CorruptRepository(BzrNewError):
863
804
    """An error has been detected in the repository %(repo_path)s.
864
805
Please run bzr reconcile on this repository."""
882
823
 
883
824
class MissingProgressBarFinish(BzrNewError):
884
825
    """A nested progress bar was not 'finished' correctly."""
885
 
 
886
 
 
887
 
class UnsupportedOperation(BzrNewError):
888
 
    """The method %(mname)s is not supported on objects of type %(tname)s."""
889
 
    def __init__(self, method, method_self):
890
 
        self.method = method
891
 
        self.mname = method.__name__
892
 
        self.tname = type(method_self).__name__
893
 
 
894
 
 
895
 
class BinaryFile(BzrNewError):
896
 
    """File is binary but should be text."""
897
 
 
898
 
 
899
 
class IllegalPath(BzrNewError):
900
 
    """The path %(path)s is not permitted on this platform"""
901
 
 
902
 
    def __init__(self, path):
903
 
        BzrNewError.__init__(self)
904
 
        self.path = path