""" Base service class for CBCFacil services """ import logging from abc import ABC, abstractmethod from typing import Optional class BaseService(ABC): """Base class for all services""" def __init__(self, name: str): self.name = name self.logger = logging.getLogger(f"{__name__}.{name}") @abstractmethod def initialize(self) -> None: """Initialize the service""" pass @abstractmethod def cleanup(self) -> None: """Cleanup service resources""" pass def health_check(self) -> bool: """Perform health check""" return True def __enter__(self): self.initialize() return self def __exit__(self, exc_type, exc_val, exc_tb): self.cleanup()