basic
提供了一些实用方法的类
attribute__all__= ['create_desperate_attr_class', 'create_result_cb', 'fill_list_index', 'fuzzy_match', 'remove_mc_color_code', 'simple_assert', 'simple_fmt', 'split_list', 'to_plain_name', 'to_player_selector', 'try_convert', 'try_int']attributeMC_COLOR_CODE_REG= re.compile('§.')attributeFACTORY_TYPE= TypeVar('FACTORY_TYPE')attributeVT= TypeVar('VT')funcsimple_assert(cond, exc) -> None相当于 assert cond, 但是可以自定义引发的异常的类型
paramcondAnyparamexcAnyReturns
Nonefunctry_int(arg) -> int | None尝试将提供的参数化为 int 类型并返回,否则返回 None
paramargAnyReturns
int | Nonefunctry_convert(arg, factory) -> FACTORY_TYPE | None尝试将提供的参数交给传入的 factory 处理并返回
Args: arg (Any): 参数 factory (Callable[[Any], factory_type]): 处理器方法
Returns: factory_type | None: 处理结果, 遇到 ValueError 则返回 None
try_convert("4.5", float) 4.5 print(try_convert("3", bool)) None
paramargAnyparamfactoryCallable[[Any], FACTORY_TYPE]Returns
tooldelta.utils.basic.FACTORY_TYPE | Nonefuncfuzzy_match(lst, sub, ignore_caps=True) -> list[str]模糊匹配列表内的字符串,可以用在诸如模糊匹配玩家名的用途
参数: lst: list, 字符串列表 sub: str, 需要匹配的字符串 ignore_caps (bool, optional): 是否忽略大小写. Defaults to True. 返回: list, 匹配结果
paramlstlist[str]paramsubstrparamignore_caps= TrueReturns
list[str]funcsplit_list(lst, length) -> list[list[VT]]将列表进行块分割
Args: lst (list[VT]): 传入列表 length (int): 分割的单个列表的长度
Returns: list[list[VT]]: 传出的被分割的列表
paramlstlist[VT]paramlengthintReturns
list[list[tooldelta.utils.basic.VT]]funcfill_list_index(lst, default)使用默认值填充列表。
Args: lst (list[VT]): 待填充列表 default (list[VT]): 默认的填充值 (补全待填充列表)
paramlstlist[VT]paramdefaultlist[VT]Returns
Nonefuncremove_mc_color_code(string)paramstringstrReturns
Nonefuncto_plain_name(name) -> str去除 网易版 Minecraft 的名字中的颜色代码 可用于将 VIP 玩家名 转换为普通玩家名
Args: name (str): 玩家名
Returns: str: 去除颜色代码后的名字
paramnamestrReturns
strfuncto_player_selector(playername) -> str将玩家名转换为目标选择器.
to_player_selector("123坐端正") '@a[name="123坐端正"]' to_player_selector('@a[name="123坐端正"]') # 已有选择器不会再套选择器 '@a[name="123坐端正"]'
Args: playername (str): 玩家名
Returns: str: 含玩家名的目标选择器
paramplayernamestrReturns
strfunccreate_result_cb(typechecker=object)获取一对回调锁 Args: typechecker (type[VT], optional): 设置类型检测时回调函数返回值的类型, 无实际作用, Defaults to type[object].
getter, setter = create_result_cb(str)
cbs[special_id] = setter
# 在这边等待回调...
result = getter()
# 与此同时, 在另一边...
getting_data: str = ...
if special_id in cbs.keys():
cbs[special_id](getting_data)paramtypecheckertype[VT]= objectReturns
Nonefuncparse_uuid(ud) -> uuid.UUIDparamudstr | bytes | uuid.UUIDReturns
uuid.uuid.UUIDfuncvalidate_uuid(ud) -> strparamudstr | bytes | uuid.UUIDReturns
strfunccreate_desperate_attr_class(class_name, attrs)paramclass_nameparamattrslist[Callable | DesperateFuncClass]Returns
None