Add project and language analyzers
This commit is contained in:
24
src/contextgen/analyzers/base.py
Normal file
24
src/contextgen/analyzers/base.py
Normal file
@@ -0,0 +1,24 @@
|
||||
"""Base analyzer class for all project analyzers."""
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
|
||||
class BaseAnalyzer(ABC):
|
||||
"""Base class for all project analyzers."""
|
||||
|
||||
def __init__(self, project_path: Path):
|
||||
self.project_path = project_path
|
||||
|
||||
@abstractmethod
|
||||
def analyze(self) -> dict[str, Any]:
|
||||
"""Analyze the project and return results."""
|
||||
pass
|
||||
|
||||
def _safe_read_file(self, path: Path, encoding: str = "utf-8") -> str | None:
|
||||
"""Safely read a file, returning None on error."""
|
||||
try:
|
||||
return path.read_text(encoding=encoding)
|
||||
except (IOError, UnicodeDecodeError):
|
||||
return None
|
||||
Reference in New Issue
Block a user