Add source code files

This commit is contained in:
2026-02-01 02:55:44 +00:00
parent d4648c748e
commit d527f8ac12

View File

@@ -0,0 +1,54 @@
"""Configuration loader for CodeGuard."""
from pathlib import Path
from typing import Optional
from codeguard.core.models import Config, Language, Severity
import yaml
class ConfigLoader:
@staticmethod
def load(config_path: str = "codeguard.yaml") -> Config:
path = Path(config_path)
if not path.exists():
return Config()
try:
with open(path, "r") as f:
data = yaml.safe_load(f) or {}
languages = []
for lang in data.get("languages", []):
detected = LanguageDetector.get_language_by_name(lang)
if detected:
languages.append(detected)
severity = Severity.INFO
if "severity_threshold" in data:
try:
severity = Severity(data["severity_threshold"])
except ValueError:
pass
return Config(
model=data.get("model", "codellama"),
languages=languages or [Language.PYTHON],
severity_threshold=severity,
fail_on_critical=data.get("fail_on_critical", False),
max_file_size=data.get("max_file_size", 100000),
chunk_size=data.get("chunk_size", 8000),
custom_rules=data.get("custom_rules", []),
)
except Exception:
return Config()
class LanguageDetector:
@staticmethod
def get_language_by_name(name: str) -> Optional[Language]:
name = name.lower()
for lang in Language:
if lang.value == name:
return lang
return None