Source code for flask_meter.git

import re
import subprocess
from typing import Union

try:
    from typing import Literal, TypedDict
except ImportError:
    from typing_extensions import Literal, TypedDict  # Python 3.7 support


[docs]class GitReturn(TypedDict): commit: Union[str, Literal["Unknown"]] author: Union[str, Literal["Unknown"]] date: Union[str, Literal["Unknown"]]
GIT_CMD = "git log | head -4" RE_COMMIT = re.compile(r"commit[\W]+(\w+)", re.MULTILINE) RE_AUTHOR = re.compile(r"Author\:[\W]+(.*)", re.MULTILINE) RE_DATE = re.compile(r"Date\:[\W]+(.*)", re.MULTILINE)
[docs]def git_stats() -> GitReturn: try: ret = subprocess.check_output([GIT_CMD], shell=True).decode("utf-8") commit = re.search(RE_COMMIT, ret) author = re.search(RE_AUTHOR, ret) date = re.search(RE_DATE, ret) return { "commit": commit.group(1) if commit else "Unknown", "author": author.group(1) if author else "Unknown", "date": date.group(1) if date else "Unknown", } except subprocess.CalledProcessError: return { "commit": "Unknown", "author": "Unknown", "date": "Unknown", }