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']
attribute
MC_COLOR_CODE_REG= re.compile('§.')
attribute
FACTORY_TYPE= TypeVar('FACTORY_TYPE')
attribute
VT= TypeVar('VT')
func
simple_assert(cond, exc) -> None
相当于 assert cond, 但是可以自定义引发的异常的类型
param
condAny
param
excAny
Returns
None
func
try_int(arg) -> int | None
尝试将提供的参数化为 int 类型并返回,否则返回 None
param
argAny
Returns
int | None
func
try_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
param
argAny
param
factoryCallable[[Any], FACTORY_TYPE]
Returns
tooldelta.utils.basic.FACTORY_TYPE | None
func
fuzzy_match(lst, sub, ignore_caps=True) -> list[str]
模糊匹配列表内的字符串,可以用在诸如模糊匹配玩家名的用途
参数: lst: list, 字符串列表 sub: str, 需要匹配的字符串 ignore_caps (bool, optional): 是否忽略大小写. Defaults to True. 返回: list, 匹配结果
param
lstlist[str]
param
substr
param
ignore_caps= True
Returns
list[str]
func
split_list(lst, length) -> list[list[VT]]
将列表进行块分割
Args: lst (list[VT]): 传入列表 length (int): 分割的单个列表的长度
Returns: list[list[VT]]: 传出的被分割的列表
param
lstlist[VT]
param
lengthint
Returns
list[list[tooldelta.utils.basic.VT]]
func
fill_list_index(lst, default)
使用默认值填充列表。
Args: lst (list[VT]): 待填充列表 default (list[VT]): 默认的填充值 (补全待填充列表)
param
lstlist[VT]
param
defaultlist[VT]
Returns
None
func
remove_mc_color_code(string)
param
stringstr
Returns
None
func
to_plain_name(name) -> str
去除 网易版 Minecraft 的名字中的颜色代码 可用于将 VIP 玩家名 转换为普通玩家名
Args: name (str): 玩家名
Returns: str: 去除颜色代码后的名字
param
namestr
Returns
str
func
to_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: 含玩家名的目标选择器
param
playernamestr
Returns
str
func
create_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)
param
typecheckertype[VT]
= object
Returns
None
func
parse_uuid(ud) -> uuid.UUID
param
udstr | bytes | uuid.UUID
Returns
uuid.uuid.UUID
func
validate_uuid(ud) -> str
param
udstr | bytes | uuid.UUID
Returns
str
func
create_desperate_attr_class(class_name, attrs)
param
class_nameparam
attrslist[Callable | DesperateFuncClass]
Returns
None