config: use singular form for plugin and component

Singular form is chosen as it makes more sense when configuring settings in TOML:

```TOML
[plugin.some_plugin_name]
    option=value

[component.some_component]
    option=value
```
This commit is contained in:
Goffi 2025-12-19 12:30:33 +01:00
commit 69368e0201

View file

@ -137,7 +137,7 @@ class PluginSettings(DynamicSettingsBase):
def __init_subclass__(cls, /, plugin_info: dict, **kwargs) -> None:
super().__init_subclass__(**kwargs)
super()._init_subclass(key="plugins", plugin_info=plugin_info)
super()._init_subclass(key="plugin", plugin_info=plugin_info)
class ComponentSettings(DynamicSettingsBase):
@ -145,7 +145,7 @@ class ComponentSettings(DynamicSettingsBase):
def __init_subclass__(cls, /, plugin_info: dict, **kwargs) -> None:
super().__init_subclass__(**kwargs)
super()._init_subclass(key="components", plugin_info=plugin_info)
super()._init_subclass(key="component", plugin_info=plugin_info)
class FrontendSettings(DynamicSettingsBase):
@ -388,8 +388,8 @@ class Settings(BaseSettings):
email: EmailSettings = Field(default_factory=EmailSettings)
tls: TLSSettings = Field(default_factory=TLSSettings)
tor: TorSettings = Field(default_factory=TorSettings)
plugins: dict = Field(default_factory=dict, description="Plugin specific settings.")
components: dict = Field(
plugin: dict = Field(default_factory=dict, description="Plugin specific settings.")
component: dict = Field(
default_factory=dict, description="Component specific settings."
)