ToolDelta ICU

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, 但是可以自定义引发的异常的类型

paramcondAny
paramexcAny

Returns

None
functry_int(arg) -> int | None

尝试将提供的参数化为 int 类型并返回,否则返回 None

paramargAny

Returns

int | None
functry_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

paramargAny
paramfactoryCallable[[Any], FACTORY_TYPE]

Returns

tooldelta.utils.basic.FACTORY_TYPE | None
funcfuzzy_match(lst, sub, ignore_caps=True) -> list[str]

模糊匹配列表内的字符串,可以用在诸如模糊匹配玩家名的用途

参数: lst: list, 字符串列表 sub: str, 需要匹配的字符串 ignore_caps (bool, optional): 是否忽略大小写. Defaults to True. 返回: list, 匹配结果

paramlstlist[str]
paramsubstr
paramignore_caps
= True

Returns

list[str]
funcsplit_list(lst, length) -> list[list[VT]]

将列表进行块分割

Args: lst (list[VT]): 传入列表 length (int): 分割的单个列表的长度

Returns: list[list[VT]]: 传出的被分割的列表

paramlstlist[VT]
paramlengthint

Returns

list[list[tooldelta.utils.basic.VT]]
funcfill_list_index(lst, default)

使用默认值填充列表。

Args: lst (list[VT]): 待填充列表 default (list[VT]): 默认的填充值 (补全待填充列表)

paramlstlist[VT]
paramdefaultlist[VT]

Returns

None
funcremove_mc_color_code(string)
paramstringstr

Returns

None
functo_plain_name(name) -> str

去除 网易版 Minecraft 的名字中的颜色代码 可用于将 VIP 玩家名 转换为普通玩家名

Args: name (str): 玩家名

Returns: str: 去除颜色代码后的名字

paramnamestr

Returns

str
functo_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: 含玩家名的目标选择器

paramplayernamestr

Returns

str
funccreate_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]
= object

Returns

None
funcparse_uuid(ud) -> uuid.UUID
paramudstr | bytes | uuid.UUID

Returns

uuid.uuid.UUID
funcvalidate_uuid(ud) -> str
paramudstr | bytes | uuid.UUID

Returns

str
funccreate_desperate_attr_class(class_name, attrs)
paramclass_name
paramattrslist[Callable | DesperateFuncClass]

Returns

None