def _get_per_rev_pre_fetch(self, file_list, commit): if len(file_list) <= self.pre_fetch_size: return file_list loc_file_list = helper_functions.get_top_elements( [(x.line_count, x) for x in file_list], self.pre_fetch_size) return [x[1] for x in loc_file_list]
def get_closest_files(self, file_, number, commit=None): """Given a file returns the closest files.""" ds = self._get_distances_for_files(file_) closest_files = helper_functions.get_top_elements( [(x.get_occurrence(commit), x.get_other_file(file_)) for x in ds], number ) return [x[1] for x in closest_files]
def add_multiple(self, files): files = self._preprocess_multiple(files) len_ = len(files) if len_ == 1: self.add(files[0]) elif len_ <= self._get_free_space(): self.file_set = self.file_set | set(files) elif len_ <= self.size: to_remove = len_ - self._get_free_space() self._remove_multiple(to_remove) self.file_set = self.file_set | set(files) else: files_to_sort = helper_functions.get_top_elements([(x.last_found, x) for x in files], self.size) files_to_insert = [x[1] for x in files_to_sort] del self.file_set self.file_set = set(files_to_insert)
def _get_files_to_remove(self, number): file_list = list(self.file_set) file_tuple_list = helper_functions.get_top_elements([(-x.last_found, x) for x in file_list], number) file_list = [x[1] for x in file_tuple_list] return file_list