Source code for lalandre_core.repositories.base.repository
"""
Base repository abstraction
"""
from abc import ABC, abstractmethod
from types import TracebackType
[docs]
class BaseRepository(ABC):
"""
Abstract base class for all repositories
"""
[docs]
@abstractmethod
def close(self):
"""Close database connection and cleanup resources"""
pass
[docs]
@abstractmethod
def health_check(self) -> bool:
"""
Verify database connectivity and readiness
"""
pass
def __enter__(self):
"""Context manager entry"""
return self
def __exit__(
self,
_exc_type: type[BaseException] | None,
_exc_val: BaseException | None,
_exc_tb: TracebackType | None,
) -> bool:
"""Context manager exit, to ensure cleanup"""
self.close()
return False