Skip to content

Commit

Permalink
Add ability to exclude languages from images
Browse files Browse the repository at this point in the history
Address #9
  • Loading branch information
jstrieb committed Dec 17, 2020
1 parent 3d83a89 commit ad1f714
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
11 changes: 8 additions & 3 deletions generate_images.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,15 @@ async def main() -> None:
# access_token = os.getenv("GITHUB_TOKEN")
raise Exception("A personal access token is required to proceed!")
user = os.getenv("GITHUB_ACTOR")
excluded = os.getenv("EXCLUDED")
excluded = {x.strip() for x in excluded.split(",")} if excluded else None
exclude_repos = os.getenv("EXCLUDED")
exclude_repos = ({x.strip() for x in exclude_repos.split(",")}
if exclude_repos else None)
exclude_langs = os.getenv("EXCLUDED_LANGS")
exclude_langs = ({x.strip() for x in exclude_langs.split(",")}
if exclude_langs else None)
async with aiohttp.ClientSession() as session:
s = Stats(user, access_token, session, exclude_repos=excluded)
s = Stats(user, access_token, session, exclude_repos=exclude_repos,
exclude_langs=exclude_langs)
await asyncio.gather(generate_languages(s), generate_overview(s))


Expand Down
5 changes: 4 additions & 1 deletion github_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,9 +231,11 @@ class Stats(object):
"""
def __init__(self, username: str, access_token: str,
session: aiohttp.ClientSession,
exclude_repos: Optional[Set] = None):
exclude_repos: Optional[Set] = None,
exclude_langs: Optional[Set] = None):
self.username = username
self._exclude_repos = set() if exclude_repos is None else exclude_repos
self._exclude_langs = set() if exclude_langs is None else exclude_langs
self.queries = Queries(username, access_token, session)

self._name = None
Expand Down Expand Up @@ -316,6 +318,7 @@ async def get_stats(self) -> None:
for lang in repo.get("languages", {}).get("edges", []):
name = lang.get("node", {}).get("name", "Other")
languages = await self.languages
if name in self._exclude_langs: continue
if name in languages:
languages[name]["size"] += lang.get("size", 0)
languages[name]["occurrences"] += 1
Expand Down

0 comments on commit ad1f714

Please sign in to comment.