def _load_repositories()

in osci/preprocess/load_repositories.py [0:0]


def _load_repositories(repos_names: Iterable[str]) -> pd.DataFrame:
    def _repositories(names: Iterable[str]):
        with GithubRest(token=Config().github_token) as rest:
            for name in names:
                try:
                    repo_resp = rest.get_repository(repo_name=name)
                    if repo_resp is not None:
                        repository = parse_get_repository_response(repo_resp, downloaded_at=datetime.now().date())
                        if repository.__getattribute__(Repositories.schema.license):
                            yield {field: repository.__getattribute__(field)
                                   for field in Repositories.schema.required}
                except Exception as ex:
                    log.error(f'Failed loading repository {name}. ex: {ex}')

    return pd.DataFrame(_repositories(names=repos_names), columns=Repositories.schema.required)