This commit is contained in:
35
src/depcheck/utils/__init__.py
Normal file
35
src/depcheck/utils/__init__.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""Utility functions for depcheck."""
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
|
||||
def find_config_file(config_name: str = ".depcheck.yaml") -> Optional[Path]:
|
||||
"""Find configuration file in current directory or XDG config home."""
|
||||
current_dir = Path.cwd()
|
||||
config_path = current_dir / config_name
|
||||
if config_path.exists():
|
||||
return config_path
|
||||
|
||||
xdg_config = os.environ.get("XDG_CONFIG_HOME", Path.home() / ".config")
|
||||
xdg_config_path = Path(xdg_config) / "depcheck" / config_name
|
||||
if xdg_config_path.exists():
|
||||
return xdg_config_path
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def read_file_safe(path: Path) -> Optional[str]:
|
||||
"""Read file contents safely, return None on error."""
|
||||
try:
|
||||
return path.read_text()
|
||||
except (OSError, IOError):
|
||||
return None
|
||||
|
||||
|
||||
def parse_version_string(version: str) -> Optional[str]:
|
||||
"""Clean and normalize a version string."""
|
||||
version = version.strip()
|
||||
version = version.lstrip("vV")
|
||||
return version if version else None
|
||||
Reference in New Issue
Block a user