chore: apply ruff E501 line-too-long linter rule (#8275)

Co-authored-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
Bowen Liang
2024-09-12 14:00:36 +08:00
committed by GitHub
parent 56c90e212a
commit c69f5b07ba
85 changed files with 459 additions and 324 deletions

View File

@@ -46,7 +46,8 @@ class AIPPTGenerateTool(BuiltinTool):
tool_parameters (dict[str, Any]): The parameters for the tool
Returns:
ToolInvokeMessage | list[ToolInvokeMessage]: The result of the tool invocation, which can be a single message or a list of messages.
ToolInvokeMessage | list[ToolInvokeMessage]: The result of the tool invocation,
which can be a single message or a list of messages.
"""
title = tool_parameters.get("title", "")
if not title:

View File

@@ -104,7 +104,8 @@ class ArxivSearchTool(BuiltinTool):
tool_parameters (dict[str, Any]): The parameters for the tool, including the 'query' parameter.
Returns:
ToolInvokeMessage | list[ToolInvokeMessage]: The result of the tool invocation, which can be a single message or a list of messages.
ToolInvokeMessage | list[ToolInvokeMessage]: The result of the tool invocation,
which can be a single message or a list of messages.
"""
query = tool_parameters.get("query", "")

View File

@@ -62,7 +62,8 @@ class ApplyGuardrailTool(BuiltinTool):
if isinstance(policy_data, dict) and "topics" in policy_data:
for topic in policy_data["topics"]:
formatted_assessments.append(
f"Policy: {policy_type}, Topic: {topic['name']}, Type: {topic['type']}, Action: {topic['action']}"
f"Policy: {policy_type}, Topic: {topic['name']}, Type: {topic['type']},"
f" Action: {topic['action']}"
)
else:
formatted_assessments.append(f"Policy: {policy_type}, Data: {policy_data}")

View File

@@ -24,7 +24,8 @@ class SearchDevDocsTool(BuiltinTool):
tool_parameters (dict[str, Any]): The parameters for the tool, including 'doc' and 'topic'.
Returns:
ToolInvokeMessage | list[ToolInvokeMessage]: The result of the tool invocation, which can be a single message or a list of messages.
ToolInvokeMessage | list[ToolInvokeMessage]: The result of the tool invocation,
which can be a single message or a list of messages.
"""
doc = tool_parameters.get("doc", "")
topic = tool_parameters.get("topic", "")

View File

@@ -70,7 +70,10 @@ class GitlabFilesTool(BuiltinTool):
)
else: # It's a file
if is_repository:
file_url = f"{domain}/api/v4/projects/{encoded_identifier}/repository/files/{item_path}/raw?ref={branch}"
file_url = (
f"{domain}/api/v4/projects/{encoded_identifier}/repository/files"
f"/{item_path}/raw?ref={branch}"
)
else:
file_url = (
f"{domain}/api/v4/projects/{project_id}/repository/files/{item_path}/raw?ref={branch}"

View File

@@ -35,7 +35,8 @@ class GoogleTranslate(BuiltinTool):
params = {"client": "gtx", "sl": "auto", "tl": dest, "dt": "t", "q": content}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"
" Chrome/91.0.4472.124 Safari/537.36"
}
response_json = requests.get(url, params=params, headers=headers).json()

View File

@@ -114,7 +114,8 @@ class GetWorksheetFieldsTool(BuiltinTool):
}
fields.append(field)
fields_list.append(
f"|{field['id']}|{field['name']}|{field['type']}|{field['typeId']}|{field['description']}|{field['options'] if field['options'] else ''}|"
f"|{field['id']}|{field['name']}|{field['type']}|{field['typeId']}|{field['description']}"
f"|{field['options'] if field['options'] else ''}|"
)
fields.append(

View File

@@ -112,7 +112,10 @@ class ListWorksheetRecordsTool(BuiltinTool):
else:
result_text = f"Found {result['total']} rows in worksheet \"{worksheet_name}\"."
if result["total"] > 0:
result_text += f" The following are {result['total'] if result['total'] < limit else limit} pieces of data presented in a table format:\n\n{table_header}"
result_text += (
f" The following are {result['total'] if result['total'] < limit else limit}"
f" pieces of data presented in a table format:\n\n{table_header}"
)
for row in rows:
result_values = []
for f in fields:

View File

@@ -64,7 +64,10 @@ class SearchAPI:
elif type == "link":
if "answer_box" in res and "organic_result" in res["answer_box"]:
if "title" in res["answer_box"]["organic_result"]:
toret = f"[{res['answer_box']['organic_result']['title']}]({res['answer_box']['organic_result']['link']})\n"
toret = (
f"[{res['answer_box']['organic_result']['title']}]"
f"({res['answer_box']['organic_result']['link']})\n"
)
elif "organic_results" in res and "link" in res["organic_results"][0]:
toret = ""
for item in res["organic_results"]:

View File

@@ -310,7 +310,8 @@ class StableDiffusionTool(BuiltinTool):
),
type=ToolParameter.ToolParameterType.STRING,
form=ToolParameter.ToolParameterForm.LLM,
llm_description="Image prompt of Stable Diffusion, you should describe the image you want to generate as a list of words as possible as detailed, the prompt must be written in English.",
llm_description="Image prompt of Stable Diffusion, you should describe the image you want to generate"
" as a list of words as possible as detailed, the prompt must be written in English.",
required=True,
),
]
@@ -320,12 +321,14 @@ class StableDiffusionTool(BuiltinTool):
name="image_id",
label=I18nObject(en_US="image_id", zh_Hans="image_id"),
human_description=I18nObject(
en_US="Image id of the image you want to generate based on, if you want to generate image based on the default image, you can leave this field empty.",
en_US="Image id of the image you want to generate based on, if you want to generate image based"
" on the default image, you can leave this field empty.",
zh_Hans="您想要生成的图像的图像 ID如果您想要基于默认图像生成图像则可以将此字段留空。",
),
type=ToolParameter.ToolParameterType.STRING,
form=ToolParameter.ToolParameterForm.LLM,
llm_description="Image id of the original image, you can leave this field empty if you want to generate a new image.",
llm_description="Image id of the original image, you can leave this field empty if you want to"
" generate a new image.",
required=True,
options=[
ToolParameterOption(value=i.name, label=I18nObject(en_US=i.name, zh_Hans=i.name))
@@ -343,12 +346,14 @@ class StableDiffusionTool(BuiltinTool):
name="model",
label=I18nObject(en_US="Model", zh_Hans="Model"),
human_description=I18nObject(
en_US="Model of Stable Diffusion, you can check the official documentation of Stable Diffusion",
en_US="Model of Stable Diffusion, you can check the official documentation"
" of Stable Diffusion",
zh_Hans="Stable Diffusion 的模型,您可以查看 Stable Diffusion 的官方文档",
),
type=ToolParameter.ToolParameterType.SELECT,
form=ToolParameter.ToolParameterForm.FORM,
llm_description="Model of Stable Diffusion, you can check the official documentation of Stable Diffusion",
llm_description="Model of Stable Diffusion, you can check the official documentation"
" of Stable Diffusion",
required=True,
default=models[0],
options=[
@@ -367,12 +372,14 @@ class StableDiffusionTool(BuiltinTool):
name="sampler_name",
label=I18nObject(en_US="Sampling method", zh_Hans="Sampling method"),
human_description=I18nObject(
en_US="Sampling method of Stable Diffusion, you can check the official documentation of Stable Diffusion",
en_US="Sampling method of Stable Diffusion, you can check the official documentation"
" of Stable Diffusion",
zh_Hans="Stable Diffusion 的Sampling method您可以查看 Stable Diffusion 的官方文档",
),
type=ToolParameter.ToolParameterType.SELECT,
form=ToolParameter.ToolParameterForm.FORM,
llm_description="Sampling method of Stable Diffusion, you can check the official documentation of Stable Diffusion",
llm_description="Sampling method of Stable Diffusion, you can check the official documentation"
" of Stable Diffusion",
required=True,
default=sample_methods[0],
options=[

View File

@@ -17,7 +17,8 @@ class CreateListOnBoardTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation, including the board ID and list name.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation,
including the board ID and list name.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class CreateNewCardOnBoardTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool, None]]): The parameters for the tool invocation, including details for the new card.
tool_parameters (dict[str, Union[str, int, bool, None]]): The parameters for the tool invocation,
including details for the new card.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class DeleteBoardTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation, including the board ID.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation,
including the board ID.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class DeleteCardByIdTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation, including the card ID.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation,
including the card ID.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class GetBoardActionsTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation, including the board ID.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation,
including the board ID.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class GetBoardByIdTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation, including the board ID.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation,
including the board ID.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class GetBoardCardsTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation, including the board ID.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation,
including the board ID.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class GetFilteredBoardCardsTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation, including the board ID and filter.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation,
including the board ID and filter.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class GetListsFromBoardTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation, including the board ID.
tool_parameters (dict[str, Union[str, int, bool]]): The parameters for the tool invocation,
including the board ID.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class UpdateBoardByIdTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool, None]]): The parameters for the tool invocation, including board ID and updates.
tool_parameters (dict[str, Union[str, int, bool, None]]): The parameters for the tool invocation,
including board ID and updates.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -17,7 +17,8 @@ class UpdateCardByIdTool(BuiltinTool):
Args:
user_id (str): The ID of the user invoking the tool.
tool_parameters (dict[str, Union[str, int, bool, None]]): The parameters for the tool invocation, including the card ID and updates.
tool_parameters (dict[str, Union[str, int, bool, None]]): The parameters for the tool invocation,
including the card ID and updates.
Returns:
ToolInvokeMessage: The result of the tool invocation.

View File

@@ -72,7 +72,8 @@ class SendMessageTool(BuiltinTool):
tool_parameters (Dict[str, Any]): The parameters required for sending the message.
Returns:
Union[ToolInvokeMessage, List[ToolInvokeMessage]]: The result of invoking the tool, which includes the status of the message sending operation.
Union[ToolInvokeMessage, List[ToolInvokeMessage]]: The result of invoking the tool,
which includes the status of the message sending operation.
"""
def _invoke(

View File

@@ -1 +1 @@
VECTORIZER_ICON_PNG = "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"
VECTORIZER_ICON_PNG = "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" # noqa: E501