32 lines
641 B
Python
32 lines
641 B
Python
from enum import Enum
|
|
from typing import Literal
|
|
|
|
|
|
class Language(str, Enum):
|
|
PYTHON = "python"
|
|
JAVASCRIPT = "javascript"
|
|
TYPESCRIPT = "typescript"
|
|
JAVA = "java"
|
|
GO = "go"
|
|
RUST = "rust"
|
|
CPP = "cpp"
|
|
C = "c"
|
|
|
|
LanguageLiteral = Literal[
|
|
Language.PYTHON,
|
|
Language.JAVASCRIPT,
|
|
Language.TYPESCRIPT,
|
|
Language.JAVA,
|
|
Language.GO,
|
|
Language.RUST,
|
|
Language.CPP,
|
|
Language.C,
|
|
]
|
|
|
|
|
|
def _normalize_language(raw: dict) -> dict:
|
|
lang = raw.get("language")
|
|
if isinstance(lang, dict) and isinstance(lang.get("name"), str):
|
|
lang["name"] = lang["name"].strip().lower()
|
|
return raw
|