config.basic.sequence¶
序列类型配置数据实现
在 0.2.0 版本加入.
Classes¶
序列配置数据 |
|
字符/字节串配置数据 |
Module Contents¶
- class SequenceConfigData(data: D | None = None)¶
Bases:
config.basic.core.BasicIndexedConfigData[SequenceConfigData.D],collections.abc.MutableSequence[Any]序列配置数据
在 0.1.5 版本加入.
- 参数:
data (D | None) -- 序列数据
- __add__(other: Any) Self¶
- __getitem__(index: Any) Any¶
- __iadd__(values)¶
- __iter__() collections.abc.Iterator[D]¶
- __mul__(other: Any) Self¶
- __radd__(other: Any) Self¶
- __reversed__() collections.abc.Iterator[D]¶
- __rmul__(other: Any) Self¶
- classmethod __subclasshook__(C)¶
- _process_path(path: config.abc.ABCPath[Any], path_checker: collections.abc.Callable[[Any, config.abc.AnyKey, config.abc.ABCPath[Any], int], BasicIndexedConfigData._process_path.X], process_return: collections.abc.Callable[[Any], BasicIndexedConfigData._process_path.Y]) BasicIndexedConfigData._process_path.X | BasicIndexedConfigData._process_path.Y¶
处理键路径的通用函数
- 参数:
path (ABCPath) -- 键路径
path_checker (Callable[(current_data: Any, current_key: ABCKey, last_path: ABCPath, path_index: int), X]) -- 检查并处理每个路径段,返回值非None时结束操作并返回值
process_return (Callable[(current_data: Any), Y]) -- 处理最终结果,该函数返回值会被直接返回
- 返回:
处理结果
- 返回类型:
X | Y
在 0.2.0 版本发生变更: 重命名参数
process_check为path_checker
- delete(path: config.abc.PathLike) Self¶
删除路径
- 参数:
path (PathLike) -- 路径
- 返回:
返回当前实例便于链式调用
- 返回类型:
Self
- 抛出:
ConfigDataReadOnlyError -- 配置数据为只读
ConfigDataTypeError -- 配置数据类型错误
RequiredPathNotFoundError -- 需求的键不存在
- exists(path: config.abc.PathLike, *, ignore_wrong_type: bool = False) bool¶
判断路径是否存在
- 参数:
- 返回:
路径是否存在
- 返回类型:
- 抛出:
ConfigDataTypeError -- 配置数据类型错误
- extend(values: collections.abc.Iterable[Any]) None¶
S.extend(iterable) -- extend sequence by appending elements from the iterable
- freeze(freeze: bool | None = None) Self¶
冻结配置数据 (切换只读模式)
- 参数:
freeze (bool | None) -- 是否冻结配置数据, 为
None时进行切换- 返回:
返回当前实例便于链式调用
- 返回类型:
Self
在 0.1.5 版本加入.
- classmethod from_data(*args: Any, **kwargs: Any) Self¶
提供创建同类型配置数据的快捷方式
- 返回:
新的配置数据
- 返回类型:
Self
备注
套壳
__init__主要是为了方便内部快速创建与传入的ABCConfigData同类型的对象例如:
type(instance)(data)
可以简写为
instance.from_data(data)
在 0.2.0 版本发生变更: 现在会自适应初始化参数
- get(path: config.abc.PathLike, default: BasicIndexedConfigData.get.V | None = None, *, return_raw_value: bool = False) BasicIndexedConfigData.get.V | Any¶
获取路径的值的*快照*,路径不存在时填充默认值
- 参数:
- 返回:
路径的值
- 返回类型:
V | Any
- 抛出:
ConfigDataTypeError -- 配置数据类型错误
例子¶
>>> from c41811.config import MappingConfigData >>> data = MappingConfigData({"key": "value"})
路径存在时返回值
>>> data.get("key") 'value'
路径不存在时返回默认值None
>>> print(data.get("not exists")) None
自定义默认值
>>> data.get("with default", default="default value") 'default value'
在 0.2.0 版本发生变更: 重命名参数
get_raw为return_raw_value
- index(*args: Any) int¶
S.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present.
Supporting start and stop arguments is optional, but recommended.
- modify(path: config.abc.PathLike, value: Any, *, allow_create: bool = True) Self¶
修改路径的值
- 参数:
- 返回:
返回当前实例便于链式调用
- 返回类型:
Self
- 抛出:
ConfigDataReadOnlyError -- 配置数据为只读
ConfigDataTypeError -- 配置数据类型错误
RequiredPathNotFoundError -- 需求的键不存在
小心
value参数未默认做深拷贝,可能导致非预期行为注意
allow_create时,使用与 self.data 一样的类型新建路径
- pop(index: int = -1) Any¶
S.pop([index]) -> item -- remove and return item at index (default last). Raise IndexError if list is empty or index is out of range.
- remove(value: Any) None¶
S.remove(value) -- remove first occurrence of value. Raise ValueError if the value is not present.
- retrieve(path: config.abc.PathLike, *, return_raw_value: bool = False) Any¶
获取路径的值的*快照*
- 参数:
- 返回:
路径的值
- 返回类型:
Any
- 抛出:
ConfigDataTypeError -- 配置数据类型错误
RequiredPathNotFoundError -- 需求的键不存在
在 0.2.0 版本发生变更: 重命名参数
get_raw为return_raw_value
- setdefault(path: config.abc.PathLike, default: BasicIndexedConfigData.setdefault.V | None = None, *, return_raw_value: bool = False) BasicIndexedConfigData.setdefault.V | Any¶
如果路径不在配置数据中则填充默认值到配置数据并返回
- 参数:
- 返回:
路径的值
- 返回类型:
V | Any
- 抛出:
ConfigDataReadOnlyError -- 配置数据为只读
ConfigDataTypeError -- 配置数据类型错误
例子¶
>>> from c41811.config import MappingConfigData >>> data = MappingConfigData({"key": "value"})
路径存在时返回值
>>> data.setdefault("key") 'value'
路径不存在时返回默认值None并填充到原始数据
>>> print(data.setdefault("not exists")) None >>> data MappingConfigData({'key': 'value', 'not exists': None})
自定义默认值
>>> data.setdefault("with default", default="default value") 'default value' >>> data MappingConfigData({'key': 'value', 'not exists': None, 'with default': 'default value'})
在 0.2.0 版本发生变更: 重命名参数
get_raw为return_raw_value重命名
set_default为setdefault
- unset(path: config.abc.PathLike) Self¶
确保路径不存在 (删除路径,但是找不到路径时不会报错)
- 参数:
path (PathLike) -- 路径
- 返回:
返回当前实例便于链式调用
- 返回类型:
Self
- 抛出:
ConfigDataReadOnlyError -- 配置数据为只读
ConfigDataTypeError -- 配置数据类型错误
在 0.1.2 版本加入.
- __abc_tpflags__ = 32¶
- __class_getitem__¶
- __hash__ = None¶
- __slots__ = ()¶
- _data: SequenceConfigData.D¶
- data: SequenceConfigData.D¶
配置的原始数据*快照*
- class StringConfigData(data: D | None = None)¶
Bases:
config.basic.core.BasicSingleConfigData[StringConfigData.D]字符/字节串配置数据
- 参数:
data (D | None) -- 配置数据
- __add__(other: Any) Self¶
- __getitem__(item: Any) D¶
- __iter__() collections.abc.Iterator[D]¶
- __mul__(other: Any) Self¶
- __reversed__() Any¶
- freeze(freeze: bool | None = None) Self¶
冻结配置数据 (切换只读模式)
- 参数:
freeze (bool | None) -- 是否冻结配置数据, 为
None时进行切换- 返回:
返回当前实例便于链式调用
- 返回类型:
Self
在 0.1.5 版本加入.
- classmethod from_data(*args: Any, **kwargs: Any) Self¶
提供创建同类型配置数据的快捷方式
- 返回:
新的配置数据
- 返回类型:
Self
备注
套壳
__init__主要是为了方便内部快速创建与传入的ABCConfigData同类型的对象例如:
type(instance)(data)
可以简写为
instance.from_data(data)
在 0.2.0 版本发生变更: 现在会自适应初始化参数
- __hash__ = None¶
- __slots__ = ()¶
- _data: StringConfigData.D¶
- property data: D¶
配置的原始数据
小心
未默认做深拷贝,可能导致非预期的行为
在 0.3.0 版本发生变更: 现在是可写属性
- property data_read_only: False¶
配置数据是否为只读
- 返回:
配置数据是否为只读
- 返回类型:
Literal[False]
备注
该配置数据类始终认为配置数据非只读,使其能正确作为配置数据容器使用