/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 breezy/inter.py

  • Committer: Jelmer Vernooij
  • Date: 2018-02-18 21:42:57 UTC
  • mto: This revision was merged to the branch mainline in revision 6859.
  • Revision ID: jelmer@jelmer.uk-20180218214257-jpevutp1wa30tz3v
Update TODO to reference Breezy, not Bazaar.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Inter-object utility class."""
18
18
 
 
19
from __future__ import absolute_import
 
20
 
19
21
from .errors import BzrError
20
22
from .lock import LogicalLockResult
21
 
from .pyutils import get_named_object
22
23
 
23
24
 
24
25
class NoCompatibleInter(BzrError):
91
92
        If an optimised worker exists it will be used otherwise
92
93
        a default Inter worker instance will be created.
93
94
        """
94
 
        for i, provider in enumerate(reversed(klass._optimisers)):
95
 
            if isinstance(provider, tuple):
96
 
                provider = get_named_object(provider[0], provider[1])
97
 
                klass._optimisers[-i] = provider
 
95
        for provider in reversed(klass._optimisers):
98
96
            if provider.is_compatible(source, target):
99
97
                return provider(source, target)
100
98
        raise NoCompatibleInter(source, target)
101
99
 
102
 
    @classmethod
103
 
    def iter_optimisers(klass):
104
 
        for provider in klass._optimisers:
105
 
            if isinstance(provider, tuple):
106
 
                yield get_named_object(provider[0], provider[1])
107
 
            else:
108
 
                yield provider
109
 
 
110
100
    def lock_read(self):
111
101
        """Take out a logical read lock.
112
102
 
130
120
        """Register an InterObject optimiser."""
131
121
        klass._optimisers.append(optimiser)
132
122
 
133
 
    @classmethod
134
 
    def register_lazy_optimiser(klass, module_name, member_name):
135
 
        # TODO(jelmer): Allow passing in a custom .is_compatible
136
 
        klass._optimisers.append((module_name, member_name))
137
 
 
138
123
    def unlock(self):
139
124
        """Release the locks on source and target."""
140
125
        try: