~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: abentley
  • Date: 2006-04-20 23:47:53 UTC
  • mfrom: (1681 +trunk)
  • mto: This revision was merged to the branch mainline in revision 1683.
  • Revision ID: abentley@lappy-20060420234753-6a6874b76f09f86d
Merge bzr.dev

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
 
56
58
# based on Scott James Remnant's hct error classes
57
59
 
58
60
# TODO: is there any value in providing the .args field used by standard
66
68
# TODO: Convert all the other error classes here to BzrNewError, and eliminate
67
69
# the old one.
68
70
 
 
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
 
69
75
 
70
76
class BzrError(StandardError):
71
77
    def __str__(self):
134
140
 
135
141
 
136
142
class NoWorkingTree(BzrNewError):
137
 
    """No WorkingTree exists for %s(base)."""
 
143
    """No WorkingTree exists for %(base)s."""
138
144
    
139
145
    def __init__(self, base):
140
146
        BzrNewError.__init__(self)
142
148
 
143
149
 
144
150
class NotLocalUrl(BzrNewError):
145
 
    """%s(url) is not a local path."""
 
151
    """%(url)s is not a local path."""
146
152
    
147
153
    def __init__(self, url):
148
154
        BzrNewError.__init__(self)
170
176
    """Commit refused because there are unknowns in the tree."""
171
177
 
172
178
 
 
179
# XXX: Should be unified with TransportError; they seem to represent the
 
180
# same thing
173
181
class PathError(BzrNewError):
174
182
    """Generic path error: %(path)r%(extra)s)"""
 
183
 
175
184
    def __init__(self, path, extra=None):
176
185
        BzrNewError.__init__(self)
177
186
        self.path = path
193
202
    """Directory not empty: %(path)r%(extra)s"""
194
203
 
195
204
 
 
205
class ResourceBusy(PathError):
 
206
    """Device or resource busy: %(path)r%(extra)s"""
 
207
 
 
208
 
196
209
class PermissionDenied(PathError):
197
210
    """Permission denied: %(path)r%(extra)s"""
198
211
 
209
222
            self.extra = ''
210
223
 
211
224
 
212
 
class NotBranchError(BzrNewError):
 
225
class NotBranchError(PathError):
213
226
    """Not a branch: %(path)s"""
214
 
    def __init__(self, path):
215
 
        BzrNewError.__init__(self)
216
 
        self.path = path
 
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"""
217
236
 
218
237
 
219
238
class NoRepositoryPresent(BzrNewError):
261
280
        self.path = path
262
281
 
263
282
 
 
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
 
264
308
class BadFileKindError(BzrError):
265
309
    """Specified file is of a kind that cannot be added.
266
310
 
390
434
 
391
435
 
392
436
class DivergedBranches(BzrError):
 
437
 
393
438
    def __init__(self, branch1, branch2):
394
439
        BzrError.__init__(self, "These branches have diverged.  Try merge.")
395
440
        self.branch1 = branch1
436
481
 
437
482
class AmbiguousBase(BzrError):
438
483
    def __init__(self, bases):
 
484
        warn("BzrError AmbiguousBase has been deprecated as of bzrlib 0.8.",
 
485
                DeprecationWarning)
439
486
        msg = "The correct base is unclear, becase %s are all equally close" %\
440
487
            ", ".join(bases)
441
488
        BzrError.__init__(self, msg)
742
789
    """Parameter $(param)s is required but not present."""
743
790
 
744
791
 
 
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
 
745
800
class DependencyNotPresent(BzrNewError):
746
 
    """Unable to import library: %(library)s, %(error)s"""
 
801
    """Unable to import library "%(library)s": %(error)s"""
747
802
 
748
803
    def __init__(self, library, error):
749
804
        BzrNewError.__init__(self, library=library, error=error)
800
855
    """Error in merge modified format"""
801
856
 
802
857
 
 
858
class ConflictFormatError(BzrNewError):
 
859
    """Format error in conflict listings"""
 
860
 
 
861
 
803
862
class CorruptRepository(BzrNewError):
804
863
    """An error has been detected in the repository %(repo_path)s.
805
864
Please run bzr reconcile on this repository."""
823
882
 
824
883
class MissingProgressBarFinish(BzrNewError):
825
884
    """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."""