Exemplo n.º 1
0
    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]
Exemplo n.º 2
0
    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]
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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