Add utils module (date utilities and config loader)
This commit is contained in:
@@ -1,21 +1,35 @@
|
|||||||
from pathlib import Path
|
import os
|
||||||
from typing import Any, Dict, Optional
|
from typing import Any, Dict, Optional
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
def load_config(config_path: Optional[str] = None) -> Dict[str, Any]:
|
def load_config(config_path: Optional[str] = None) -> Dict[str, Any]:
|
||||||
"""Load configuration from a YAML file."""
|
"""Load configuration from file or use defaults."""
|
||||||
if config_path is None:
|
if config_path and os.path.exists(config_path):
|
||||||
config_path = Path(".git-insights/config.yaml")
|
with open(config_path, "r") as f:
|
||||||
|
|
||||||
config_file = Path(config_path)
|
|
||||||
|
|
||||||
if not config_file.exists():
|
|
||||||
return {}
|
|
||||||
|
|
||||||
try:
|
|
||||||
with open(config_file, "r") as f:
|
|
||||||
return yaml.safe_load(f) or {}
|
return yaml.safe_load(f) or {}
|
||||||
except Exception:
|
|
||||||
return {}
|
default_paths = [
|
||||||
|
".git-insights/config.yaml",
|
||||||
|
os.path.expanduser("~/.git-insights/config.yaml"),
|
||||||
|
]
|
||||||
|
|
||||||
|
for path in default_paths:
|
||||||
|
if os.path.exists(path):
|
||||||
|
with open(path, "r") as f:
|
||||||
|
return yaml.safe_load(f) or {}
|
||||||
|
|
||||||
|
return get_default_config()
|
||||||
|
|
||||||
|
|
||||||
|
def get_default_config() -> Dict[str, Any]:
|
||||||
|
"""Return default configuration."""
|
||||||
|
return {
|
||||||
|
"repository_path": ".",
|
||||||
|
"analysis_days": 30,
|
||||||
|
"output_format": "json",
|
||||||
|
"churn_threshold": 500,
|
||||||
|
"risky_commit_threshold": 500,
|
||||||
|
"merge_commit_flag": True,
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user