~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: Aaron Bentley
  • Date: 2007-01-26 04:00:12 UTC
  • mfrom: (2245 +trunk)
  • mto: (2255.6.1 dirstate)
  • mto: This revision was merged to the branch mainline in revision 2322.
  • Revision ID: aaron.bentley@utoronto.ca-20070126040012-j80k7qhvj80dyp9j
merge from bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
"""
19
19
 
20
20
 
21
 
from bzrlib import symbol_versioning
22
 
from bzrlib.patches import (PatchSyntax, 
23
 
                            PatchConflict, 
24
 
                            MalformedPatchHeader,
25
 
                            MalformedHunkHeader,
26
 
                            MalformedLine,)
 
21
from bzrlib import (
 
22
    osutils,
 
23
    symbol_versioning,
 
24
    )
 
25
from bzrlib.patches import (
 
26
    MalformedHunkHeader,
 
27
    MalformedLine,
 
28
    MalformedPatchHeader,
 
29
    PatchConflict,
 
30
    PatchSyntax,
 
31
    )
27
32
 
28
33
 
29
34
# TODO: is there any value in providing the .args field used by standard
199
204
        self.revision_id = revision_id
200
205
        self.branch = branch
201
206
 
 
207
class ReservedId(BzrError):
 
208
 
 
209
    _fmt = "Reserved revision-id {%(revision_id)s}"
 
210
 
 
211
    def __init__(self, revision_id):
 
212
        self.revision_id = revision_id
202
213
 
203
214
class NoSuchId(BzrError):
204
215
 
288
299
 
289
300
    _fmt = "Error in command line options"
290
301
 
 
302
 
 
303
class BadOptionValue(BzrError):
 
304
 
 
305
    _fmt = """Bad value "%(value)s" for option "%(name)s"."""
 
306
 
 
307
    def __init__(self, name, value):
 
308
        BzrError.__init__(self, name=name, value=value)
 
309
 
291
310
    
292
311
class StrictCommitFailed(BzrError):
293
312
 
319
338
    _fmt = "File exists: %(path)r%(extra)s"
320
339
 
321
340
 
 
341
class RenameFailedFilesExist(BzrError):
 
342
    """Used when renaming and both source and dest exist."""
 
343
 
 
344
    _fmt = ("Could not rename %(source)s => %(dest)s because both files exist."
 
345
         "%(extra)s")
 
346
 
 
347
    def __init__(self, source, dest, extra=None):
 
348
        BzrError.__init__(self)
 
349
        self.source = str(source)
 
350
        self.dest = str(dest)
 
351
        if extra:
 
352
            self.extra = ' ' + str(extra)
 
353
        else:
 
354
            self.extra = ''
 
355
 
 
356
 
 
357
class NotADirectory(PathError):
 
358
 
 
359
    _fmt = "%(path)r is not a directory %(extra)s"
 
360
 
 
361
 
 
362
class NotInWorkingDirectory(PathError):
 
363
 
 
364
    _fmt = "%(path)r is not in the working directory %(extra)s"
 
365
 
 
366
 
322
367
class DirectoryNotEmpty(PathError):
323
368
 
324
369
    _fmt = "Directory not empty: %(path)r%(extra)s"
491
536
        self.repo_format = repo_format
492
537
 
493
538
 
 
539
class AlreadyVersionedError(BzrError):
 
540
    """Used when a path is expected not to be versioned, but it is."""
 
541
 
 
542
    _fmt = "%(context_info)s%(path)s is already versioned"
 
543
 
 
544
    def __init__(self, path, context_info=None):
 
545
        """Construct a new NotVersionedError.
 
546
 
 
547
        :param path: This is the path which is versioned,
 
548
        which should be in a user friendly form.
 
549
        :param context_info: If given, this is information about the context,
 
550
        which could explain why this is expected to not be versioned.
 
551
        """
 
552
        BzrError.__init__(self)
 
553
        self.path = path
 
554
        if context_info is None:
 
555
            self.context_info = ''
 
556
        else:
 
557
            self.context_info = context_info + ". "
 
558
 
 
559
 
494
560
class NotVersionedError(BzrError):
495
 
 
496
 
    _fmt = "%(path)s is not versioned"
497
 
 
498
 
    def __init__(self, path):
 
561
    """Used when a path is expected to be versioned, but it is not."""
 
562
 
 
563
    _fmt = "%(context_info)s%(path)s is not versioned"
 
564
 
 
565
    def __init__(self, path, context_info=None):
 
566
        """Construct a new NotVersionedError.
 
567
 
 
568
        :param path: This is the path which is not versioned,
 
569
        which should be in a user friendly form.
 
570
        :param context_info: If given, this is information about the context,
 
571
        which could explain why this is expected to be versioned.
 
572
        """
499
573
        BzrError.__init__(self)
500
574
        self.path = path
 
575
        if context_info is None:
 
576
            self.context_info = ''
 
577
        else:
 
578
            self.context_info = context_info + ". "
501
579
 
502
580
 
503
581
class PathsNotVersionedError(BzrError):
504
 
    # used when reporting several paths are not versioned
 
582
    """Used when reporting several paths which are not versioned"""
505
583
 
506
584
    _fmt = "Path(s) are not versioned: %(paths_as_string)s"
507
585
 
514
592
 
515
593
class PathsDoNotExist(BzrError):
516
594
 
517
 
    _fmt = "Path(s) do not exist: %(paths_as_string)s"
 
595
    _fmt = "Path(s) do not exist: %(paths_as_string)s%(extra)s"
518
596
 
519
597
    # used when reporting that paths are neither versioned nor in the working
520
598
    # tree
521
599
 
522
 
    def __init__(self, paths):
 
600
    def __init__(self, paths, extra=None):
523
601
        # circular import
524
602
        from bzrlib.osutils import quotefn
525
603
        BzrError.__init__(self)
526
604
        self.paths = paths
527
605
        self.paths_as_string = ' '.join([quotefn(p) for p in paths])
 
606
        if extra:
 
607
            self.extra = ': ' + str(extra)
 
608
        else:
 
609
            self.extra = ''
528
610
 
529
611
 
530
612
class BadFileKindError(BzrError):
1281
1363
    _fmt = "Moving the root directory is not supported at this time"
1282
1364
 
1283
1365
 
 
1366
class BzrMoveFailedError(BzrError):
 
1367
 
 
1368
    _fmt = "Could not move %(from_path)s%(operator)s %(to_path)s%(extra)s"
 
1369
 
 
1370
    def __init__(self, from_path='', to_path='', extra=None):
 
1371
        BzrError.__init__(self)
 
1372
        if extra:
 
1373
            self.extra = ': ' + str(extra)
 
1374
        else:
 
1375
            self.extra = ''
 
1376
 
 
1377
        has_from = len(from_path) > 0
 
1378
        has_to = len(to_path) > 0
 
1379
        if has_from:
 
1380
            self.from_path = osutils.splitpath(from_path)[-1]
 
1381
        else:
 
1382
            self.from_path = ''
 
1383
 
 
1384
        if has_to:
 
1385
            self.to_path = osutils.splitpath(to_path)[-1]
 
1386
        else:
 
1387
            self.to_path = ''
 
1388
 
 
1389
        self.operator = ""
 
1390
        if has_from and has_to:
 
1391
            self.operator = " =>"
 
1392
        elif has_from:
 
1393
            self.from_path = "from " + from_path
 
1394
        elif has_to:
 
1395
            self.operator = "to"
 
1396
        else:
 
1397
            self.operator = "file"
 
1398
 
 
1399
 
 
1400
class BzrRenameFailedError(BzrMoveFailedError):
 
1401
 
 
1402
    _fmt = "Could not rename %(from_path)s%(operator)s %(to_path)s%(extra)s"
 
1403
 
 
1404
    def __init__(self, from_path, to_path, extra=None):
 
1405
        BzrMoveFailedError.__init__(self, from_path, to_path, extra)
 
1406
 
 
1407
 
1284
1408
class BzrBadParameterNotString(BzrBadParameter):
1285
1409
 
1286
1410
    _fmt = "Parameter %(param)s is not a string or unicode string."