def traverse_commits(self) -> Generator[Commit, None, None]:
        """
        Analyze all the specified commits (all of them by default), returning
        a generator of commits.
        """

        if isinstance(self._path_to_repo, str):
            self._path_to_repo = [self._path_to_repo]

        for path_repo in self._path_to_repo:
            # if it is a remote repo, clone it first in a temporary folder!
            if self._isremote(path_repo):
                tmp_folder = tempfile.TemporaryDirectory()
                path_repo = self._clone_remote_repos(tmp_folder.name,
                                                     path_repo)

            git_repo = GitRepository(path_repo)

            self._sanity_check_filters(git_repo)
            self._check_timezones()

            logger.info('Analyzing git repository in %s', git_repo.path)

            if self._filepath is not None:
                self._filepath_commits = git_repo.get_commits_modified_file(
                    self._filepath)

            for commit in git_repo.get_list_commits(self._only_in_branch,
                                                    not self._reversed_order):
                logger.info('Commit #%s in %s from %s', commit.hash,
                            commit.committer_date,
                            commit.author.name)

                if self._is_commit_filtered(commit):
                    logger.info('Commit #%s filtered', commit.hash)
                    continue

                yield commit
def traverse_commits ( self ) -> Generator [ Commit , None , None ] : if isinstance ( self . _path_to_repo , str ) : self . _path_to_repo = [ self . _path_to_repo ] for path_repo in self . _path_to_repo : if self . _isremote ( path_repo ) : tmp_folder = tempfile . TemporaryDirectory ( ) path_repo = self . _clone_remote_repos ( tmp_folder . name , path_repo ) git_repo = GitRepository ( path_repo ) self . _sanity_check_filters ( git_repo ) self . _check_timezones ( ) logger . info ( 'Analyzing git repository in %s' , git_repo . path ) if self . _filepath is not None : self . _filepath_commits = git_repo . get_commits_modified_file ( self . _filepath ) for commit in git_repo . get_list_commits ( self . _only_in_branch , not self . _reversed_order ) : logger . info ( 'Commit #%s in %s from %s' , commit . hash , commit . committer_date , commit . author . name ) if self . _is_commit_filtered ( commit ) : logger . info ( 'Commit #%s filtered' , commit . hash ) continue yield commit
Analyze all the specified commits (all of them by default), returning
        a generator of commits.