~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/inventory.py

Merge from bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
325
325
 
326
326
    @staticmethod
327
327
    def versionable_kind(kind):
328
 
        return kind in ('file', 'directory', 'symlink')
 
328
        return (kind in ('file', 'directory', 'symlink'))
329
329
 
330
330
    def check(self, checker, rev_id, inv, tree):
331
331
        """Check this inventory entry is intact.
1017
1017
        >>> '456' in inv
1018
1018
        False
1019
1019
        """
1020
 
        return file_id in self._byid
 
1020
        return (file_id in self._byid)
1021
1021
 
1022
1022
    def __getitem__(self, file_id):
1023
1023
        """Return the entry for given file_id.
1215
1215
        return bool(self.path2id(names))
1216
1216
 
1217
1217
    def has_id(self, file_id):
1218
 
        return self._byid.has_key(file_id)
 
1218
        return (file_id in self._byid)
 
1219
 
 
1220
    def remove_recursive_id(self, file_id):
 
1221
        """Remove file_id, and children, from the inventory.
 
1222
        
 
1223
        :param file_id: A file_id to remove.
 
1224
        """
 
1225
        to_find_delete = [self._byid[file_id]]
 
1226
        to_delete = []
 
1227
        while to_find_delete:
 
1228
            ie = to_find_delete.pop()
 
1229
            to_delete.append(ie.file_id)
 
1230
            if ie.kind == 'directory':
 
1231
                to_find_delete.extend(ie.children.values())
 
1232
        for file_id in reversed(to_delete):
 
1233
            ie = self[file_id]
 
1234
            del self._byid[file_id]
 
1235
            if ie.parent_id is not None:
 
1236
                del self[ie.parent_id].children[ie.name]
1219
1237
 
1220
1238
    def rename(self, file_id, new_parent_id, new_name):
1221
1239
        """Move a file within the inventory.