36 lines
764 B
Python
36 lines
764 B
Python
"""
|
|
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()
|