comparison mercurial/manifest.py @ 24295:2b7ab29627fd

lazymanifest: add iterkeys() method So we don't have to iteratate over (path, node, flags) tuples only to throw away the node and flags.
author Martin von Zweigbergk <martinvonz@google.com>
date Wed, 11 Mar 2015 13:46:15 -0700
parents b7add2ebef9e
children 0178f500d61e
comparison
equal deleted inserted replaced
24294:3d485727e45e 24295:2b7ab29627fd
113 return key in self._lm 113 return key in self._lm
114 114
115 def __delitem__(self, key): 115 def __delitem__(self, key):
116 del self._lm[key] 116 del self._lm[key]
117 117
118 def __iter__(self):
119 return self._lm.iterkeys()
120
121 def iterkeys(self):
122 return self._lm.iterkeys()
123
118 def keys(self): 124 def keys(self):
119 return [x[0] for x in self._lm] 125 return list(self.iterkeys())
120
121 def iterkeys(self):
122 return iter(self.keys())
123 126
124 def intersectfiles(self, files): 127 def intersectfiles(self, files):
125 '''make a new lazymanifest with the intersection of self with files 128 '''make a new lazymanifest with the intersection of self with files
126 129
127 The algorithm assumes that files is much smaller than self.''' 130 The algorithm assumes that files is much smaller than self.'''
181 def flags(self, key, default=''): 184 def flags(self, key, default=''):
182 try: 185 try:
183 return self._lm[key][1] 186 return self._lm[key][1]
184 except KeyError: 187 except KeyError:
185 return default 188 return default
186
187 def __iter__(self):
188 return (x[0] for x in self._lm)
189 189
190 def copy(self): 190 def copy(self):
191 c = manifestdict('') 191 c = manifestdict('')
192 c._lm = self._lm.copy() 192 c._lm = self._lm.copy()
193 return c 193 return c