61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# @Time : 2025/3/19 14:06
|
|
# @Author : AngesZhu
|
|
# @File : get_random.py
|
|
# @Desc : 随机一个字符串或者数字
|
|
from typing import Any
|
|
|
|
from pandas.core.computation.common import result_type_many
|
|
|
|
from utils.logger_utils import logger
|
|
from utils.random_utils import RandomGenerator
|
|
|
|
|
|
def exe_random(random_type: list, rule: dict[str, Any]) -> tuple[Any, str]:
|
|
try:
|
|
rg = RandomGenerator()
|
|
str_temp = rg.generate(types=random_type, **rule)
|
|
return True, ''.join(str_temp)
|
|
except Exception as e:
|
|
logger.error("随机一个字符串或者数字 Error: {}".format(e))
|
|
return False, str(e)
|
|
|
|
|
|
def get_random(random_type: list, limit: int = 10, *args, **kwargs) -> Any:
|
|
"""
|
|
random_type 生成类型列表,可选:'number', 'letter', 'special'
|
|
length: 生成结果的长度
|
|
随机一个字符串或者数字
|
|
"""
|
|
logger.info(f"随机一个字符串或者数字")
|
|
print(kwargs)
|
|
try:
|
|
# 拼接请求参数 **kwargs.get(chosen_type, {})
|
|
data_list = []
|
|
for i in range(limit):
|
|
result, random_data = exe_random(random_type, kwargs)
|
|
if result:
|
|
data_list.append(random_data)
|
|
else:
|
|
logger.error("随机字符串异常 Error")
|
|
return False, "随机字符串异常"
|
|
return True, data_list
|
|
except Exception as e:
|
|
logger.error("随机一个字符串或者数字 Error: {}".format(e))
|
|
return False, e
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
random_type = ['number', 'letter']
|
|
letter = {
|
|
"uppercase": True
|
|
}
|
|
number = {
|
|
"min_val": 0,
|
|
"max_val": 9
|
|
}
|
|
length = 5
|
|
str_temp = get_random(random_type, limit=10,length=length, letter=letter, number=number)
|
|
print(str_temp) |