~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/store/__init__.py

  • Committer: Robert Collins
  • Date: 2005-10-16 14:51:21 UTC
  • mto: This revision was merged to the branch mainline in revision 1459.
  • Revision ID: robertc@lifelesslap.robertcollins.net-20051016145121-01852573f8c63daa
replace __contains__ calls in stores with has_id

Show diffs side-by-side

added added

removed removed

Lines of Context:
59
59
        """DEPRECATED. Please use .get(file_id) instead."""
60
60
        raise NotImplementedError
61
61
 
62
 
    def __contains__(self, fileid):
63
 
        """"""
64
 
        raise NotImplementedError
 
62
    #def __contains__(self, fileid):
 
63
    #    """Deprecated, please use has_id"""
 
64
    #    raise NotImplementedError
65
65
 
66
66
    def __iter__(self):
67
67
        raise NotImplementedError
80
80
        for f, fileid in entries:
81
81
            self.add(f, fileid)
82
82
 
83
 
    def has(self, fileids):
84
 
        """Return True/False for each entry in fileids.
85
 
 
86
 
        :param fileids: A List or generator yielding file ids.
87
 
        :return: A generator or list returning True/False for each entry.
88
 
        """
89
 
        for fileid in fileids:
90
 
            if fileid in self:
91
 
                yield True
92
 
            else:
93
 
                yield False
 
83
    def has_id(self, file_id):
 
84
        """Return True or false for the presence of file_id in the store."""
 
85
        raise NotImplementedError
94
86
 
95
87
    def listable(self):
96
88
        """Return True if this store is able to be listed."""
118
110
        ids = list(ids) # Make sure we don't have a generator, since we iterate 2 times
119
111
        pb.update('preparing to copy')
120
112
        to_copy = []
121
 
        for file_id, has in zip(ids, self.has(ids)):
122
 
            if not has:
 
113
        for file_id in ids:
 
114
            if not self.has_id(file_id):
123
115
                to_copy.append(file_id)
124
116
        return self._do_copy(other, to_copy, pb, permit_failure=permit_failure)
125
117
 
209
201
        if '\\' in fileid or '/' in fileid:
210
202
            raise ValueError("invalid store id %r" % fileid)
211
203
 
212
 
    def __contains__(self, fileid):
 
204
    def has_id(self, fileid):
213
205
        fn = self._relpath(fileid)
214
206
        return self._transport.has(fn)
215
207
 
229
221
        except errors.NoSuchFile:
230
222
            raise KeyError(fileid)
231
223
 
232
 
    def has(self, fileids, pb=None):
233
 
        """Return True/False for each entry in fileids.
234
 
 
235
 
        :param fileids: A List or generator yielding file ids.
236
 
        :return: A generator or list returning True/False for each entry.
237
 
        """
238
 
        relpaths = (self._relpath(fid) for fid in fileids)
239
 
        return self._transport.has_multi(relpaths, pb=pb)
240
 
 
241
224
    def __init__(self, a_transport, prefixed=False):
242
225
        assert isinstance(a_transport, transport.Transport)
243
226
        super(TransportStore, self).__init__()
317
300
            self.cache_store.add(self.source_store.get(id), id)
318
301
        return self.cache_store.get(id)
319
302
 
320
 
    def __contains__(self, fileid):
 
303
    def has_id(self, fileid):
321
304
        if fileid in self.cache_store:
322
305
            return True
323
306
        if fileid in self.source_store: