123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- from core.extension.extensible import ExtensionModule, ModuleExtension
- from core.external_data_tool.base import ExternalDataTool
- from core.moderation.base import Moderation
- class Extension:
- __module_extensions: dict[str, dict[str, ModuleExtension]] = {}
- module_classes = {
- ExtensionModule.MODERATION: Moderation,
- ExtensionModule.EXTERNAL_DATA_TOOL: ExternalDataTool
- }
- def init(self):
- for module, module_class in self.module_classes.items():
- self.__module_extensions[module.value] = module_class.scan_extensions()
- def module_extensions(self, module: str) -> list[ModuleExtension]:
- module_extensions = self.__module_extensions.get(module)
- if not module_extensions:
- raise ValueError(f"Extension Module {module} not found")
- return list(module_extensions.values())
- def module_extension(self, module: ExtensionModule, extension_name: str) -> ModuleExtension:
- module_extensions = self.__module_extensions.get(module.value)
- if not module_extensions:
- raise ValueError(f"Extension Module {module} not found")
- module_extension = module_extensions.get(extension_name)
- if not module_extension:
- raise ValueError(f"Extension {extension_name} not found")
- return module_extension
- def extension_class(self, module: ExtensionModule, extension_name: str) -> type:
- module_extension = self.module_extension(module, extension_name)
- return module_extension.extension_class
- def validate_form_schema(self, module: ExtensionModule, extension_name: str, config: dict) -> None:
- module_extension = self.module_extension(module, extension_name)
- form_schema = module_extension.form_schema
- # TODO validate form_schema
|