github-repo-stats / src /constants.py
sukiboo's picture
rename app
f4f9ab0
Raw
History Blame Contribute Delete
4.18 kB
import os
from src.models import CacheEntry
EXTENSION_MAP: dict[str, str] = {
".py": "Python",
".pyx": "Python",
".pyi": "Python",
".js": "JavaScript",
".mjs": "JavaScript",
".cjs": "JavaScript",
".ts": "TypeScript",
".tsx": "TypeScript",
".jsx": "JavaScript",
".java": "Java",
".c": "C",
".h": "C",
".cpp": "C++",
".cc": "C++",
".cxx": "C++",
".hpp": "C++",
".hh": "C++",
".cs": "C#",
".go": "Go",
".rs": "Rust",
".rb": "Ruby",
".erb": "Ruby",
".php": "PHP",
".swift": "Swift",
".kt": "Kotlin",
".kts": "Kotlin",
".scala": "Scala",
".r": "R",
".R": "R",
".m": "Objective-C",
".mm": "Objective-C",
".pl": "Perl",
".pm": "Perl",
".lua": "Lua",
".sh": "Shell",
".bash": "Shell",
".zsh": "Shell",
".fish": "Shell",
".ps1": "PowerShell",
".html": "HTML",
".htm": "HTML",
".css": "CSS",
".scss": "SCSS",
".sass": "Sass",
".less": "Less",
".sql": "SQL",
".dart": "Dart",
".ex": "Elixir",
".exs": "Elixir",
".erl": "Erlang",
".hrl": "Erlang",
".hs": "Haskell",
".ml": "OCaml",
".mli": "OCaml",
".clj": "Clojure",
".cljs": "Clojure",
".cljc": "Clojure",
".vim": "Vim Script",
".el": "Emacs Lisp",
".yaml": "YAML",
".yml": "YAML",
".toml": "TOML",
".json": "JSON",
".xml": "XML",
".md": "Markdown",
".markdown": "Markdown",
".rst": "reStructuredText",
".tex": "TeX",
".sty": "TeX",
".ipynb": "Jupyter Notebook",
".vue": "Vue",
".svelte": "Svelte",
".zig": "Zig",
".nim": "Nim",
".jl": "Julia",
".tf": "HCL",
".hcl": "HCL",
".proto": "Protocol Buffers",
".graphql": "GraphQL",
".gql": "GraphQL",
".sol": "Solidity",
".v": "V",
".cr": "Crystal",
".f90": "Fortran",
".f95": "Fortran",
".f03": "Fortran",
".groovy": "Groovy",
".cmake": "CMake",
".makefile": "Makefile",
".dockerfile": "Dockerfile",
".nix": "Nix",
}
BINARY_EXTENSIONS: set[str] = {
".png",
".jpg",
".jpeg",
".gif",
".bmp",
".ico",
".svg",
".webp",
".avif",
".mp3",
".mp4",
".wav",
".avi",
".mov",
".webm",
".flac",
".ogg",
".zip",
".tar",
".gz",
".bz2",
".xz",
".7z",
".rar",
".pdf",
".doc",
".docx",
".xls",
".xlsx",
".ppt",
".pptx",
".exe",
".dll",
".so",
".dylib",
".o",
".a",
".lib",
".woff",
".woff2",
".ttf",
".otf",
".eot",
".pyc",
".pyo",
".class",
".jar",
".lock",
".min.js",
".min.css",
".map",
".DS_Store",
".gitkeep",
".db",
".sqlite",
".sqlite3",
".bin",
".dat",
".pak",
".wasm",
}
SKIP_DIRS: set[str] = {
"node_modules",
"vendor",
".git",
"__pycache__",
".venv",
"venv",
"dist",
"build",
".next",
".nuxt",
"target",
".gradle",
"Pods",
".terraform",
}
APP_TITLE: str = "# github-repo-stats"
APP_SUBTITLE: str = "## show lines of code by language in a repo"
GITHUB_URL: str = "https://github.com/sukiboo/github-repo-stats"
GITHUB_TOKEN: str = os.environ.get("GITHUB_TOKEN", "")
CACHE: dict[str, CacheEntry] = {}
CACHE_TTL: int = 300
MAX_WORKERS: int = 20
PROGRESS_RENDER_INTERVAL: float = 0.1
STATS_RETRY_ATTEMPTS: int = 3
STATS_RETRY_DELAY: float = 1.5
FONT_FAMILY: str = "monospace"
FONT_SIZE: str = "14px"
# my terminal colors
_ = {
0: "#333333",
1: "#ff4488",
2: "#44ff88",
3: "#ff8844",
4: "#44ffff",
5: "#8844ff",
6: "#00dddd",
7: "#cccccc",
8: "#555555",
9: "#ee66aa",
10: "#00aa88",
11: "#eeaa66",
12: "#66aaee",
13: "#aa66ee",
14: "#44ffff",
15: "#eeeeee",
}
BG_COLOR: str = "#300a24"
C_MUTED: str = "#555555"
C_TEXT: str = "#cccccc"
C_LABEL: str = "#eeeeee"
C_BAR: str = "#555555"
C_LINK: str = "#00aa88"
C_ACCENT: str = "#eeaa66"
C_ERROR: str = "#ff4488"
PROGRESS_WIDTH: int = 50
LANGUAGE_BAR_WIDTH: int = 50
MIN_LANGUAGE_SHARE: float = 0.005
HISTOGRAM_HEIGHT: int = 5