ECVI fully functional

This commit is contained in:
2024-12-27 14:47:04 +09:00
parent 9bff204fb4
commit 6af0886a64
10 changed files with 162 additions and 246 deletions

View File

@@ -8,26 +8,25 @@ class BasePMSPlugin(ABC):
- Предоставлять дефолтные parser_settings
- Проходить базовую валидацию (validate_plugin)
"""
def __init__(self, pms_config):
"""
pms_config: объект PMSConfiguration
"""
self.pms_config = pms_config
@abstractmethod
def _fetch_data(self):
async def _fetch_data(self):
"""
Абстрактный метод для получения данных.
"""
pass
def fetch_data(self):
async def fetch_data(self):
"""
Обертка для выполнения _fetch_data с возможной дополнительной обработкой.
"""
return self._fetch_data()
return await self._fetch_data()
@abstractmethod
def get_default_parser_settings(self):
@@ -45,7 +44,6 @@ class BasePMSPlugin(ABC):
}
}
"""
print("get_default_parser_settings. pms_config:", self.pms_config)
return {}
def validate_plugin(self):
@@ -53,10 +51,8 @@ class BasePMSPlugin(ABC):
Проверка на соответствие требованиям.
Можно проверить наличие методов или полей.
"""
# Например, проверить наличие fetch_data и get_default_parser_settings
required_methods = ["fetch_data", "get_default_parser_settings"]
for m in required_methods:
if not hasattr(self, m):
raise ValueError(f"Плагин {type(self).__name__} не реализует метод {m}.")
# Можно добавить дополнительные проверки
required_methods = ["fetch_data", "get_default_parser_settings", "_fetch_data"]
for method in required_methods:
if not hasattr(self, method):
raise ValueError(f"Плагин {type(self).__name__} не реализует метод {method}.")
return True