/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: 2020-02-18 01:57:45 UTC
  • mto: This revision was merged to the branch mainline in revision 7493.
  • Revision ID: jelmer@jelmer.uk-20200218015745-q2ss9tsk74h4nh61
drop use of future.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
from .errors import BzrError
20
20
from .lock import LogicalLockResult
21
 
from .pyutils import get_named_object
22
21
 
23
22
 
24
23
class NoCompatibleInter(BzrError):
91
90
        If an optimised worker exists it will be used otherwise
92
91
        a default Inter worker instance will be created.
93
92
        """
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
 
93
        for provider in reversed(klass._optimisers):
98
94
            if provider.is_compatible(source, target):
99
95
                return provider(source, target)
100
96
        raise NoCompatibleInter(source, target)
101
97
 
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
98
    def lock_read(self):
111
99
        """Take out a logical read lock.
112
100
 
130
118
        """Register an InterObject optimiser."""
131
119
        klass._optimisers.append(optimiser)
132
120
 
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
121
    def unlock(self):
139
122
        """Release the locks on source and target."""
140
123
        try: