iamai.config module#

iamai 配置。

iamai 使用 [pydantic](https://pydantic-docs.helpmanual.io/) 来读取配置。

class iamai.config.AdapterConfig(**extra_data: Any)[source]#

Bases: ConfigModel

适配器配置。

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'allow'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class iamai.config.BotConfig(*, plugins: Set[str] = None, plugin_dirs: Set[Path] = None, adapters: Set[str] = None, log: LogConfig = LogConfig(level='DEBUG', verbose_exception=False), **extra_data: Any)[source]#

Bases: ConfigModel

Bot 配置。

plugins#

将被加载的插件列表,将被 Bot 类的 load_plugins() 方法加载。

Type:

Set[str]

plugin_dirs#

将被加载的插件目录列表,将被 Bot 类的 load_plugins_from_dirs() 方法加载。

Type:

Set[pathlib.Path]

adapters#

将被加载的适配器列表,将依次被 Bot 类的 load_adapters() 方法加载。

Type:

Set[str]

log#

iamai 日志相关设置。

Type:

iamai.config.LogConfig

adapters: Set[str]#
log: LogConfig#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'allow'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'adapters': FieldInfo(annotation=Set[str], required=False, default_factory=set), 'log': FieldInfo(annotation=LogConfig, required=False, default=LogConfig(level='DEBUG', verbose_exception=False)), 'plugin_dirs': FieldInfo(annotation=Set[Annotated[Path, PathType]], required=False, default_factory=set), 'plugins': FieldInfo(annotation=Set[str], required=False, default_factory=set)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

plugin_dirs: Set[Path]#
plugins: Set[str]#
class iamai.config.ConfigModel(**extra_data: Any)[source]#

Bases: BaseModel

iamai 配置模型。

__config_name__#

配置名称。

Type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'allow'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class iamai.config.LogConfig(*, level: str | int = 'DEBUG', verbose_exception: bool = False, **extra_data: Any)[source]#

Bases: ConfigModel

iamai 日志相关设置。

level#

日志级别。

Type:

str | int

verbose_exception#

详细的异常记录,设置为 True 时会在日志中添加异常的 Traceback。

Type:

bool

level: str | int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'allow'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'level': FieldInfo(annotation=Union[str, int], required=False, default='DEBUG'), 'verbose_exception': FieldInfo(annotation=bool, required=False, default=False)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

verbose_exception: bool#
class iamai.config.MainConfig(*, bot: BotConfig = BotConfig(plugins=set(), plugin_dirs=set(), adapters=set(), log=LogConfig(level='DEBUG', verbose_exception=False)), plugin: PluginConfig = PluginConfig(), adapter: AdapterConfig = AdapterConfig(), **extra_data: Any)[source]#

Bases: ConfigModel

iamai 配置。

bot#

iamai 的主要配置。

Type:

iamai.config.BotConfig

adapter: AdapterConfig#
bot: BotConfig#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'allow'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'adapter': FieldInfo(annotation=AdapterConfig, required=False, default=AdapterConfig()), 'bot': FieldInfo(annotation=BotConfig, required=False, default=BotConfig(plugins=set(), plugin_dirs=set(), adapters=set(), log=LogConfig(level='DEBUG', verbose_exception=False))), 'plugin': FieldInfo(annotation=PluginConfig, required=False, default=PluginConfig())}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

plugin: PluginConfig#
class iamai.config.PluginConfig(**extra_data: Any)[source]#

Bases: ConfigModel

插件配置。

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'allow'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.