config.errors ============= .. py:module:: config.errors .. autoapi-nested-parse:: 错误类 Exceptions ---------- .. autoapisummary:: config.errors.ComponentMemberMismatchError config.errors.ComponentMetadataException config.errors.ConfigDataPathSyntaxException config.errors.ConfigDataReadOnlyError config.errors.ConfigDataTypeError config.errors.CyclicReferenceError config.errors.DependencyNotFoundError config.errors.FailedProcessConfigFileError config.errors.RequiredPathNotFoundError config.errors.UnknownErrorDuringValidateError config.errors.UnknownTokenTypeError config.errors.UnsupportedConfigFormatError Classes ------- .. autoapisummary:: config.errors.ConfigOperate config.errors.KeyInfo config.errors.TokenInfo config.errors.UnavailableAttribute Module Contents --------------- .. py:exception:: ComponentMemberMismatchError(missing: set[str], redundant: set[str]) Bases: :py:obj:`ComponentMetadataException` 组件成员元数据与成员不匹配错误 .. versionadded:: 0.3.0 :param missing: 缺少的成员 :type missing: set[str] :param redundant: 冗余的成员 :type redundant: set[str] .. py:method:: __str__() -> str Return str(self). .. py:attribute:: missing .. py:attribute:: redundant .. py:exception:: ComponentMetadataException Bases: :py:obj:`LookupError` 组件元数据异常 .. versionadded:: 0.3.0 Initialize self. See help(type(self)) for accurate signature. .. py:exception:: ConfigDataPathSyntaxException(token_info: TokenInfo, msg: str | None = None) Bases: :py:obj:`Exception` 配置数据检索路径语法错误 :param token_info: token相关信息 :type token_info: TokenInfo :param msg: 错误信息 :type msg: str | None .. tip:: 错误信息获取优先级 1.msg参数 2.类字段msg (供快速创建子类) .. versionchanged:: 0.3.0 现在传入的错误消息不再软要求带冒号 .. py:method:: __str__() -> str Return str(self). .. py:attribute:: msg :type: str .. py:attribute:: token_info .. py:exception:: ConfigDataReadOnlyError(msg: str | None = None) Bases: :py:obj:`TypeError` 配置数据为只读 .. versionadded:: 0.1.3 :param msg: 错误信息 :type msg: str | None .. py:exception:: ConfigDataTypeError(key_info: KeyInfo[Any], required_type: tuple[type, Ellipsis] | type, current_type: type) Bases: :py:obj:`ValueError` 配置数据类型错误 :param key_info: 键相关信息 :type key_info: KeyInfo :param required_type: 该键需求的数据类型 :type required_type: tuple[type, ...] | type :param current_type: 当前键的数据类型 :type current_type: type .. versionchanged:: 0.1.4 ``required_type`` 支持传入多个需求的数据类型 .. versionchanged:: 0.2.0 重命名参数 ``now_type`` 为 ``current_type`` .. py:attribute:: current_type .. py:attribute:: key_info .. py:attribute:: requited_type .. py:exception:: CyclicReferenceError(key_info: KeyInfo[Any]) Bases: :py:obj:`ValueError` 配置数据存在循环引用错误 .. versionadded:: 0.2.0 :param key_info: 检测到循环引用的键信息 :type key_info: KeyInfo[Any] .. py:method:: __str__() -> str Return str(self). .. py:attribute:: key_info .. py:exception:: DependencyNotFoundError(dep_name: str, description: str | None = None) Bases: :py:obj:`ImportError` 依赖缺失 .. versionadded:: 0.3.0 :param dep_name: 依赖名称 :type dep_name: str :param description: 描述信息 :type description: str | None .. py:attribute:: dep_name .. py:exception:: FailedProcessConfigFileError Bases: :py:obj:`ExceptionGroup` SL处理器无法正确处理当前配置文件 .. versionchanged:: 0.1.4 现在继承自 :py:class:`BaseExceptionGroup` .. versionchanged:: 0.3.0 现在正确的继承自 :py:class:`ExceptionGroup` 移除冗余属性 ``reasons`` Initialize self. See help(type(self)) for accurate signature. .. py:exception:: RequiredPathNotFoundError(key_info: KeyInfo[Any], operate: ConfigOperate = ConfigOperate.Unknown) Bases: :py:obj:`LookupError` 需求的键未找到错误 .. versionchanged:: 0.1.5 现在继承自LookupError :param key_info: 键相关信息 :type key_info: KeyInfo :param operate: 何种操作过程中发生的该错误 :type operate: ConfigOperate .. py:method:: __str__() -> str Return str(self). .. py:attribute:: key_info .. py:attribute:: operate .. py:exception:: UnknownErrorDuringValidateError(*args: Any, **kwargs: Any) Bases: :py:obj:`Exception` 在验证配置数据时发生未知错误 .. versionchanged:: 0.1.3 重命名 ``UnknownErrorDuringValidate`` 为 ``UnknownErrorDuringValidateError`` :param args: 未知错误信息 :param kwargs: 未知错误信息 .. py:exception:: UnknownTokenTypeError(token_info: TokenInfo, msg: str | None = None) Bases: :py:obj:`ConfigDataPathSyntaxException` 未知的标志类型 .. versionchanged:: 0.1.3 重命名 ``UnknownTokenType`` 为 ``UnknownTokenTypeError`` :param token_info: token相关信息 :type token_info: TokenInfo :param msg: 错误信息 :type msg: str | None .. tip:: 错误信息获取优先级 1.msg参数 2.类字段msg (供快速创建子类) .. versionchanged:: 0.3.0 现在传入的错误消息不再软要求带冒号 .. py:method:: __str__() -> str Return str(self). .. py:attribute:: msg :value: 'Unknown token type' .. py:attribute:: token_info .. py:exception:: UnsupportedConfigFormatError(_format: str | None) Bases: :py:obj:`Exception` 不支持的配置文件格式错误 .. note:: :py:attr:`format` 可以为 :py:const:`None` 这表示 `未指定配置格式` 。 在一些情况下 :py:const:`None` 是有效的配置格式,如表示 `默认` 。 此错误以 :py:const:`None` 为参数抛出时表示 `我找到了配置格式None,但是我不支持None作为配置格式` :param _format: 不支持的配置的文件格式 :type _format: str | None .. versionchanged:: 0.3.0 重命名参数 ``format_`` 为 ``_format`` 更改参数 ``_format`` 类型为 ``str | None`` .. py:method:: __eq__(other: Any) -> bool Return self==value. .. py:method:: __hash__() -> int .. versionadded:: 0.3.0 .. py:method:: __str__() -> str Return str(self). .. py:attribute:: _format .. py:property:: format :type: str | None 不支持的配置的文件格式 .. py:class:: ConfigOperate Bases: :py:obj:`enum.Enum` 对配置的操作类型 .. py:attribute:: Delete :value: 'Delete' .. py:attribute:: Read :value: 'Read' .. py:attribute:: Unknown :value: None .. py:attribute:: Write :value: 'Write' .. py:class:: KeyInfo 一段路径的相关信息 用于快速定位到指定键 .. py:attribute:: current_key :type: KeyInfo.K 当前键 .. py:attribute:: index :type: int current_key在path的下标 .. py:attribute:: path :type: config.abc.ABCPath[KeyInfo.K] 当前完整路径 .. py:property:: relative_keys :type: collections.abc.Iterable[K] 从根到当前键的相对路径 .. py:class:: TokenInfo 一段标记的相关信息 用于快速定位到指定标记 .. py:attribute:: current_token :type: str 当前标记 .. py:attribute:: index :type: int current_token在tokens的下标 .. py:property:: raw_string :type: str 标记的原始字符串 .. py:attribute:: tokens :type: tuple[str, Ellipsis] 当前完整标记列表 .. py:class:: UnavailableAttribute(name: str, reason: Exception) 占位代理对象,在任意访问时抛出异常 .. versionadded:: 0.3.0 :param name: 属性名 :type name: str :param reason: 抛出的异常 :type reason: DependencyNotFoundError .. py:method:: __call__(*args: Any, **kwargs: Any) -> Never .. py:method:: __delattr__(name: str) -> Never .. py:method:: __delitem__(key: Any) -> Never .. py:method:: __getattribute__(name: str) -> Never .. py:method:: __getitem__(item: Any) -> Never .. py:method:: __iter__() -> Never .. py:method:: __next__() -> Never .. py:method:: __repr__() -> str .. py:method:: __setattr__(name: str, value: Any) -> Never .. py:method:: __setitem__(key: Any, value: Any) -> Never .. py:attribute:: __slots__ :value: ('_name', '_reason')