def getFileVersions(self, fileIds):
        results = [ None ] * len(fileIds)
        needed = list(enumerate(fileIds))
        for source in self.sources:
            try:
                newResults = source.getFileVersions([ x[1] for x in needed ])
                for result, (i, info) in itertools.izip(newResults, needed):
                    if info:
                        results[i] = result
                needed = [ tup for tup in needed if results[tup[0]] is None ]
                if not needed:
                    break

            # FIXME: there should be a better error for this
            except (KeyError, __HOLE__), e:
                continue

        return results
dataset/ETHPy150Open sassoftware/conary/conary/repository/trovesource.py/SourceStack.getFileVersions