/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: John Arbash Meinel
  • Date: 2009-03-06 20:42:40 UTC
  • mto: This revision was merged to the branch mainline in revision 4088.
  • Revision ID: john@arbash-meinel.com-20090306204240-mzjavv31z3gu1x7i
Fix a small bug in setup.py when an extension fails to build

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007, 2008 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Exceptions for bzr, and reporting of them.
18
18
"""
154
154
               )
155
155
 
156
156
    def __eq__(self, other):
157
 
        if self.__class__ is not other.__class__:
 
157
        if self.__class__ != other.__class__:
158
158
            return NotImplemented
159
159
        return self.__dict__ == other.__dict__
160
160
 
636
636
        self.url = url
637
637
 
638
638
 
639
 
class UnstackableLocationError(BzrError):
640
 
 
641
 
    _fmt = "The branch '%(branch_url)s' cannot be stacked on '%(target_url)s'."
642
 
 
643
 
    def __init__(self, branch_url, target_url):
644
 
        BzrError.__init__(self)
645
 
        self.branch_url = branch_url
646
 
        self.target_url = target_url
647
 
 
648
 
 
649
639
class UnstackableRepositoryFormat(BzrError):
650
640
 
651
641
    _fmt = ("The repository '%(url)s'(%(format)s) is not a stackable format. "
702
692
# TODO: Probably this behavior of should be a common superclass
703
693
class NotBranchError(PathError):
704
694
 
705
 
    _fmt = 'Not a branch: "%(path)s"%(detail)s.'
 
695
    _fmt = 'Not a branch: "%(path)s".'
706
696
 
707
 
    def __init__(self, path, detail=None, bzrdir=None):
 
697
    def __init__(self, path):
708
698
       import bzrlib.urlutils as urlutils
709
 
       path = urlutils.unescape_for_display(path, 'ascii')
710
 
       if detail is not None:
711
 
           detail = ': ' + detail
712
 
       self.detail = detail
713
 
       self.bzrdir = bzrdir
714
 
       PathError.__init__(self, path=path)
715
 
 
716
 
    def _format(self):
717
 
        # XXX: Ideally self.detail would be a property, but Exceptions in
718
 
        # Python 2.4 have to be old-style classes so properties don't work.
719
 
        # Instead we override _format.
720
 
        if self.detail is None:
721
 
            if self.bzrdir is not None:
722
 
                try:
723
 
                    self.bzrdir.open_repository()
724
 
                except NoRepositoryPresent:
725
 
                    self.detail = ''
726
 
                else:
727
 
                    self.detail = ': location is a repository'
728
 
            else:
729
 
                self.detail = ''
730
 
        return PathError._format(self)
 
699
       self.path = urlutils.unescape_for_display(path, 'ascii')
731
700
 
732
701
 
733
702
class NoSubmitBranch(PathError):
814
783
 
815
784
 
816
785
class IncompatibleRepositories(BzrError):
817
 
    """Report an error that two repositories are not compatible.
818
 
 
819
 
    Note that the source and target repositories are permitted to be strings:
820
 
    this exception is thrown from the smart server and may refer to a
821
 
    repository the client hasn't opened.
822
 
    """
823
786
 
824
787
    _fmt = "%(target)s\n" \
825
788
            "is not compatible with\n" \
1040
1003
 
1041
1004
class LockContention(LockError):
1042
1005
 
1043
 
    _fmt = 'Could not acquire lock "%(lock)s": %(msg)s'
 
1006
    _fmt = 'Could not acquire lock "%(lock)s"'
1044
1007
    # TODO: show full url for lock, combining the transport and relative
1045
1008
    # bits?
1046
1009
 
1047
1010
    internal_error = False
1048
1011
 
1049
 
    def __init__(self, lock, msg=''):
 
1012
    def __init__(self, lock):
1050
1013
        self.lock = lock
1051
 
        self.msg = msg
1052
1014
 
1053
1015
 
1054
1016
class LockBroken(LockError):
1179
1141
 
1180
1142
class InvalidRevisionSpec(BzrError):
1181
1143
 
1182
 
    _fmt = ("Requested revision: '%(spec)s' does not exist in branch:"
 
1144
    _fmt = ("Requested revision: %(spec)r does not exist in branch:"
1183
1145
            " %(branch)s%(extra)s")
1184
1146
 
1185
1147
    def __init__(self, spec, branch, extra=None):
1210
1172
class DivergedBranches(BzrError):
1211
1173
 
1212
1174
    _fmt = ("These branches have diverged."
1213
 
            " Use the missing command to see how.\n"
1214
 
            "Use the merge command to reconcile them.")
 
1175
            " Use the merge command to reconcile them.")
1215
1176
 
1216
1177
    def __init__(self, branch1, branch2):
1217
1178
        self.branch1 = branch1
1265
1226
            not_ancestor_id=not_ancestor_id)
1266
1227
 
1267
1228
 
 
1229
class InstallFailed(BzrError):
 
1230
 
 
1231
    def __init__(self, revisions):
 
1232
        revision_str = ", ".join(str(r) for r in revisions)
 
1233
        msg = "Could not install revisions:\n%s" % revision_str
 
1234
        BzrError.__init__(self, msg)
 
1235
        self.revisions = revisions
 
1236
 
 
1237
 
1268
1238
class AmbiguousBase(BzrError):
1269
1239
 
1270
1240
    def __init__(self, bases):
1271
 
        symbol_versioning.warn("BzrError AmbiguousBase has been deprecated "
1272
 
            "as of bzrlib 0.8.", DeprecationWarning, stacklevel=2)
 
1241
        warn("BzrError AmbiguousBase has been deprecated as of bzrlib 0.8.",
 
1242
                DeprecationWarning)
1273
1243
        msg = ("The correct base is unclear, because %s are all equally close"
1274
1244
                % ", ".join(bases))
1275
1245
        BzrError.__init__(self, msg)
1297
1267
class BoundBranchOutOfDate(BzrError):
1298
1268
 
1299
1269
    _fmt = ("Bound branch %(branch)s is out of date with master branch"
1300
 
            " %(master)s.%(extra_help)s")
 
1270
            " %(master)s.")
1301
1271
 
1302
1272
    def __init__(self, branch, master):
1303
1273
        BzrError.__init__(self)
1304
1274
        self.branch = branch
1305
1275
        self.master = master
1306
 
        self.extra_help = ''
1307
1276
 
1308
1277
 
1309
1278
class CommitToDoubleBoundBranch(BzrError):
1923
1892
class CantMoveRoot(BzrError):
1924
1893
 
1925
1894
    _fmt = "Moving the root directory is not supported at this time"
1926
 
    
1927
 
    
1928
 
class TransformRenameFailed(BzrError):
1929
 
 
1930
 
    _fmt = "Failed to rename %(from_path)s to %(to_path)s: %(why)s"
1931
 
    
1932
 
    def __init__(self, from_path, to_path, why, errno):
1933
 
        self.from_path = from_path
1934
 
        self.to_path = to_path
1935
 
        self.why = why
1936
 
        self.errno = errno
1937
1895
 
1938
1896
 
1939
1897
class BzrMoveFailedError(BzrError):
2045
2003
 
2046
2004
class BadConversionTarget(BzrError):
2047
2005
 
2048
 
    _fmt = "Cannot convert from format %(from_format)s to format %(format)s." \
2049
 
            "    %(problem)s"
 
2006
    _fmt = "Cannot convert to format %(format)s.  %(problem)s"
2050
2007
 
2051
 
    def __init__(self, problem, format, from_format=None):
 
2008
    def __init__(self, problem, format):
2052
2009
        BzrError.__init__(self)
2053
2010
        self.problem = problem
2054
2011
        self.format = format
2055
 
        self.from_format = from_format or '(unspecified)'
2056
2012
 
2057
2013
 
2058
2014
class NoDiffFound(BzrError):
2134
2090
 
2135
2091
class OutOfDateTree(BzrError):
2136
2092
 
2137
 
    _fmt = "Working tree is out of date, please run 'bzr update'.%(more)s"
 
2093
    _fmt = "Working tree is out of date, please run 'bzr update'."
2138
2094
 
2139
 
    def __init__(self, tree, more=None):
2140
 
        if more is None:
2141
 
            more = ''
2142
 
        else:
2143
 
            more = ' ' + more
 
2095
    def __init__(self, tree):
2144
2096
        BzrError.__init__(self)
2145
2097
        self.tree = tree
2146
 
        self.more = more
2147
2098
 
2148
2099
 
2149
2100
class PublicBranchOutOfDate(BzrError):
2187
2138
 
2188
2139
    def __init__(self, repo):
2189
2140
        BzrError.__init__(self)
2190
 
        self.repo_path = repo.user_url
 
2141
        self.repo_path = repo.bzrdir.root_transport.base
2191
2142
 
2192
2143
 
2193
2144
class InconsistentDelta(BzrError):
2203
2154
        self.reason = reason
2204
2155
 
2205
2156
 
2206
 
class InconsistentDeltaDelta(InconsistentDelta):
2207
 
    """Used when we get a delta that is not valid."""
2208
 
 
2209
 
    _fmt = ("An inconsistent delta was supplied: %(delta)r"
2210
 
            "\nreason: %(reason)s")
2211
 
 
2212
 
    def __init__(self, delta, reason):
2213
 
        BzrError.__init__(self)
2214
 
        self.delta = delta
2215
 
        self.reason = reason
2216
 
 
2217
 
 
2218
2157
class UpgradeRequired(BzrError):
2219
2158
 
2220
2159
    _fmt = "To use this feature you must upgrade your branch at %(path)s."
2229
2168
    _fmt = "To use this feature you must upgrade your repository at %(path)s."
2230
2169
 
2231
2170
 
2232
 
class RichRootUpgradeRequired(UpgradeRequired):
2233
 
 
2234
 
    _fmt = ("To use this feature you must upgrade your branch at %(path)s to"
2235
 
           " a format which supports rich roots.")
2236
 
 
2237
 
 
2238
2171
class LocalRequiresBoundBranch(BzrError):
2239
2172
 
2240
2173
    _fmt = "Cannot perform local-only commits on unbound branches."
2241
2174
 
2242
2175
 
 
2176
class InvalidProgressBarType(BzrError):
 
2177
 
 
2178
    _fmt = ("Environment variable BZR_PROGRESS_BAR='%(bar_type)s"
 
2179
            " is not a supported type Select one of: %(valid_types)s")
 
2180
 
 
2181
    def __init__(self, bar_type, valid_types):
 
2182
        BzrError.__init__(self, bar_type=bar_type, valid_types=valid_types)
 
2183
 
 
2184
 
2243
2185
class UnsupportedOperation(BzrError):
2244
2186
 
2245
2187
    _fmt = ("The method %(mname)s is not supported on"
2366
2308
        self.transport = transport
2367
2309
 
2368
2310
 
 
2311
class NoSmartServer(NotBranchError):
 
2312
 
 
2313
    _fmt = "No smart server available at %(url)s"
 
2314
 
 
2315
    @symbol_versioning.deprecated_method(symbol_versioning.one_four)
 
2316
    def __init__(self, url):
 
2317
        self.url = url
 
2318
 
 
2319
 
2369
2320
class UnknownSSH(BzrError):
2370
2321
 
2371
2322
    _fmt = "Unrecognised value for BZR_SSH environment variable: %(vendor)s"
2552
2503
 
2553
2504
class MalformedBugIdentifier(BzrError):
2554
2505
 
2555
 
    _fmt = ('Did not understand bug identifier %(bug_id)s: %(reason)s. '
2556
 
            'See "bzr help bugs" for more information on this feature.')
 
2506
    _fmt = "Did not understand bug identifier %(bug_id)s: %(reason)s"
2557
2507
 
2558
2508
    def __init__(self, bug_id, reason):
2559
2509
        self.bug_id = bug_id
2580
2530
        self.branch = branch
2581
2531
 
2582
2532
 
2583
 
class InvalidLineInBugsProperty(BzrError):
2584
 
 
2585
 
    _fmt = ("Invalid line in bugs property: '%(line)s'")
2586
 
 
2587
 
    def __init__(self, line):
2588
 
        self.line = line
2589
 
 
2590
 
 
2591
 
class InvalidBugStatus(BzrError):
2592
 
 
2593
 
    _fmt = ("Invalid bug status: '%(status)s'")
2594
 
 
2595
 
    def __init__(self, status):
2596
 
        self.status = status
2597
 
 
2598
 
 
2599
2533
class UnexpectedSmartServerResponse(BzrError):
2600
2534
 
2601
2535
    _fmt = "Could not understand response from smart server: %(response_tuple)r"
2765
2699
 
2766
2700
    def __init__(self, bzrdir):
2767
2701
        import bzrlib.urlutils as urlutils
2768
 
        display_url = urlutils.unescape_for_display(bzrdir.user_url,
 
2702
        display_url = urlutils.unescape_for_display(bzrdir.root_transport.base,
2769
2703
                                                    'ascii')
2770
2704
        BzrError.__init__(self, bzrdir=bzrdir, display_url=display_url)
2771
2705
 
2836
2770
 
2837
2771
class UncommittedChanges(BzrError):
2838
2772
 
2839
 
    _fmt = ('Working tree "%(display_url)s" has uncommitted changes'
2840
 
            ' (See bzr status).%(more)s')
 
2773
    _fmt = 'Working tree "%(display_url)s" has uncommitted changes.'
2841
2774
 
2842
 
    def __init__(self, tree, more=None):
2843
 
        if more is None:
2844
 
            more = ''
2845
 
        else:
2846
 
            more = ' ' + more
 
2775
    def __init__(self, tree):
2847
2776
        import bzrlib.urlutils as urlutils
2848
2777
        display_url = urlutils.unescape_for_display(
2849
 
            tree.user_url, 'ascii')
2850
 
        BzrError.__init__(self, tree=tree, display_url=display_url, more=more)
 
2778
            tree.bzrdir.root_transport.base, 'ascii')
 
2779
        BzrError.__init__(self, tree=tree, display_url=display_url)
2851
2780
 
2852
2781
 
2853
2782
class MissingTemplateVariable(BzrError):
2912
2841
    pass
2913
2842
 
2914
2843
 
 
2844
class NotATerminal(BzrError):
 
2845
 
 
2846
    _fmt = 'Unable to ask for a password without real terminal.'
 
2847
 
 
2848
 
2915
2849
class UnableEncodePath(BzrError):
2916
2850
 
2917
2851
    _fmt = ('Unable to encode %(kind)s path %(path)r in '
2959
2893
    _fmt = 'Cannot bind address "%(host)s:%(port)i": %(orig_error)s.'
2960
2894
 
2961
2895
    def __init__(self, host, port, orig_error):
2962
 
        # nb: in python2.4 socket.error doesn't have a useful repr
2963
2896
        BzrError.__init__(self, host=host, port=port,
2964
 
            orig_error=repr(orig_error.args))
 
2897
            orig_error=orig_error[1])
2965
2898
 
2966
2899
 
2967
2900
class UnknownRules(BzrError):
2975
2908
class HookFailed(BzrError):
2976
2909
    """Raised when a pre_change_branch_tip hook function fails anything other
2977
2910
    than TipChangeRejected.
2978
 
 
2979
 
    Note that this exception is no longer raised, and the import is only left
2980
 
    to be nice to code which might catch it in a plugin.
2981
2911
    """
2982
2912
 
2983
2913
    _fmt = ("Hook '%(hook_name)s' during %(hook_stage)s failed:\n"
2984
2914
            "%(traceback_text)s%(exc_value)s")
2985
2915
 
2986
 
    def __init__(self, hook_stage, hook_name, exc_info, warn=True):
2987
 
        if warn:
2988
 
            symbol_versioning.warn("BzrError HookFailed has been deprecated "
2989
 
                "as of bzrlib 2.1.", DeprecationWarning, stacklevel=2)
 
2916
    def __init__(self, hook_stage, hook_name, exc_info):
2990
2917
        import traceback
2991
2918
        self.hook_stage = hook_stage
2992
2919
        self.hook_name = hook_name
3029
2956
        BzrError.__init__(self, invalid_id=invalid_id)
3030
2957
 
3031
2958
 
3032
 
class JailBreak(BzrError):
3033
 
 
3034
 
    _fmt = "An attempt to access a url outside the server jail was made: '%(url)s'."
3035
 
 
3036
 
    def __init__(self, url):
3037
 
        BzrError.__init__(self, url=url)
3038
 
 
3039
 
 
3040
2959
class UserAbort(BzrError):
3041
2960
 
3042
2961
    _fmt = 'The user aborted the operation.'
3102
3021
 
3103
3022
    def __init__(self, repository):
3104
3023
        self.repository = repository
3105
 
 
3106
 
 
3107
 
class LossyPushToSameVCS(BzrError):
3108
 
 
3109
 
    _fmt = ("Lossy push not possible between %(source_branch)r and "
3110
 
            "%(target_branch)r that are in the same VCS.")
3111
 
 
3112
 
    internal_error = True
3113
 
 
3114
 
    def __init__(self, source_branch, target_branch):
3115
 
        self.source_branch = source_branch
3116
 
        self.target_branch = target_branch
3117
 
 
3118
 
 
3119
 
class NoRoundtrippingSupport(BzrError):
3120
 
 
3121
 
    _fmt = ("Roundtripping is not supported between %(source_branch)r and "
3122
 
            "%(target_branch)r.")
3123
 
 
3124
 
    internal_error = True
3125
 
 
3126
 
    def __init__(self, source_branch, target_branch):
3127
 
        self.source_branch = source_branch
3128
 
        self.target_branch = target_branch
3129
 
 
3130
 
 
3131
 
class FileTimestampUnavailable(BzrError):
3132
 
 
3133
 
    _fmt = "The filestamp for %(path)s is not available."
3134
 
 
3135
 
    internal_error = True
3136
 
 
3137
 
    def __init__(self, path):
3138
 
        self.path = path
3139
 
 
3140
 
 
3141
 
class NoColocatedBranchSupport(BzrError):
3142
 
 
3143
 
    _fmt = ("%(bzrdir)r does not support co-located branches.")
3144
 
 
3145
 
    def __init__(self, bzrdir):
3146
 
        self.bzrdir = bzrdir
3147
 
 
3148
 
class NoWhoami(BzrError):
3149
 
 
3150
 
    _fmt = ('Unable to determine your name.\n'
3151
 
        "Please, set your name with the 'whoami' command.\n"
3152
 
        'E.g. bzr whoami "Your Name <name@example.com>"')
3153
 
 
3154