Spaces:
Runtime error
Runtime error
| 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 | |