54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
from agentscope.service.service_toolkit import ServiceFunction
|
|
from agentscope.service import (
|
|
ServiceToolkit,
|
|
ServiceResponse,
|
|
ServiceExecStatus,
|
|
)
|
|
import os
|
|
def read_file(filepath:str, root_path:str):
|
|
"""Read the file and return the content. Remember use 'judge' function if you want to judge file, instead of this function.
|
|
|
|
Args:
|
|
filepath (`str`): The path to the file.
|
|
root_path (`str`): The root path of now student's workspace.
|
|
|
|
Returns:
|
|
content (`str`): The content of the file.
|
|
"""
|
|
# 从books/code_tests/name/中获取所有.in文件
|
|
|
|
filepath = os.path.join('..', root_path, filepath)
|
|
try:
|
|
with open(filepath, 'r') as f:
|
|
content = f.read()
|
|
except Exception as e:
|
|
status = ServiceExecStatus.ERROR
|
|
content = str(e)
|
|
return ServiceResponse(status, (content))
|
|
|
|
status = ServiceExecStatus.SUCCESS
|
|
return ServiceResponse(status, ('```\n'+content+'```\n'))
|
|
|
|
|
|
def write_file(filepath:str, content:str, root_path:str):
|
|
"""Write content to the file.
|
|
|
|
Args:
|
|
filepath (`str`): The path to the file.
|
|
content (`str`): The content to be written to the file.
|
|
root_path (`str`): The root path of now student's workspace.
|
|
|
|
Returns:
|
|
None.
|
|
"""
|
|
filepath = os.path.join('..', root_path, filepath)
|
|
try:
|
|
with open(filepath, 'w') as f:
|
|
f.write(content)
|
|
except Exception as e:
|
|
status = ServiceExecStatus.ERROR
|
|
return ServiceResponse(status, None)
|
|
status = ServiceExecStatus.SUCCESS
|
|
return ServiceResponse(status, None)
|
|
|
|
file_tools = [read_file, write_file] |