Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -20,7 +20,7 @@ task_counter = 0
|
|
| 20 |
# 新增日志函数
|
| 21 |
def print_log(task_id, filename, stage, status):
|
| 22 |
if log_to_terminal:
|
| 23 |
-
print(f"任务
|
| 24 |
|
| 25 |
# 修改 start_process 函数,处理新增输入
|
| 26 |
def start_process(input1, input2, shape0_str, shape1_str, input_suffix=".pth"):
|
|
@@ -57,7 +57,7 @@ def start_process(input1, input2, shape0_str, shape1_str, input_suffix=".pth"):
|
|
| 57 |
log += f"开始下载文件…\n"
|
| 58 |
yield [], log
|
| 59 |
# 生成唯一文件名
|
| 60 |
-
file_name = str(
|
| 61 |
file_path = os.path.join(os.getcwd(), file_name)
|
| 62 |
if url.startswith('ftp://'):
|
| 63 |
try:
|
|
@@ -199,7 +199,7 @@ def start_process(input1, input2, shape0_str, shape1_str, input_suffix=".pth"):
|
|
| 199 |
if output == '' and process.poll() is not None:
|
| 200 |
break
|
| 201 |
if output:
|
| 202 |
-
log += output.strip() + '\n'
|
| 203 |
if log_to_terminal:
|
| 204 |
print(output.strip())
|
| 205 |
returncode = process.poll()
|
|
@@ -215,8 +215,8 @@ def start_process(input1, input2, shape0_str, shape1_str, input_suffix=".pth"):
|
|
| 215 |
print_log(task_id, input2, "执行命令", "完成")
|
| 216 |
yield output_files, log
|
| 217 |
except Exception as e:
|
| 218 |
-
log += f"发生错误: {
|
| 219 |
-
print_log(task_id, input2,
|
| 220 |
yield [], log
|
| 221 |
|
| 222 |
# 创建 Gradio 界面
|
|
@@ -232,17 +232,27 @@ with gr.Blocks() as demo:
|
|
| 232 |
# 修改为字符串输入控件
|
| 233 |
shape0_str = gr.Textbox(label="shape0 (逗号分隔的整数)", value="1,3,128,128")
|
| 234 |
shape1_str = gr.Textbox(label="shape1 (逗号分隔的整数)", value="0,0,0,0")
|
| 235 |
-
|
|
|
|
|
|
|
|
|
|
| 236 |
# 右侧列,包含输出组件和日志文本框
|
| 237 |
with gr.Column():
|
| 238 |
output = gr.File(label="输出文件", file_count="multiple")
|
| 239 |
log_textbox = gr.Textbox(label="日志", lines=10, interactive=False)
|
| 240 |
|
| 241 |
# 绑定事件,修改输入参数
|
| 242 |
-
start_button.click(
|
| 243 |
fn=start_process,
|
| 244 |
inputs=[input1_file if input1_file.value else input1, input2, shape0_str, shape1_str],
|
| 245 |
outputs=[output, log_textbox]
|
| 246 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 247 |
|
| 248 |
demo.launch()
|
|
|
|
| 20 |
# 新增日志函数
|
| 21 |
def print_log(task_id, filename, stage, status):
|
| 22 |
if log_to_terminal:
|
| 23 |
+
print(f"任务{task_id}: {filename}, [{status}] {stage}")
|
| 24 |
|
| 25 |
# 修改 start_process 函数,处理新增输入
|
| 26 |
def start_process(input1, input2, shape0_str, shape1_str, input_suffix=".pth"):
|
|
|
|
| 57 |
log += f"开始下载文件…\n"
|
| 58 |
yield [], log
|
| 59 |
# 生成唯一文件名
|
| 60 |
+
file_name = str(task_id) + input_suffix
|
| 61 |
file_path = os.path.join(os.getcwd(), file_name)
|
| 62 |
if url.startswith('ftp://'):
|
| 63 |
try:
|
|
|
|
| 199 |
if output == '' and process.poll() is not None:
|
| 200 |
break
|
| 201 |
if output:
|
| 202 |
+
# log += output.strip() + '\n'
|
| 203 |
if log_to_terminal:
|
| 204 |
print(output.strip())
|
| 205 |
returncode = process.poll()
|
|
|
|
| 215 |
print_log(task_id, input2, "执行命令", "完成")
|
| 216 |
yield output_files, log
|
| 217 |
except Exception as e:
|
| 218 |
+
log += f"发生错误: {e}\n"
|
| 219 |
+
print_log(task_id, input2, e , f"失败")
|
| 220 |
yield [], log
|
| 221 |
|
| 222 |
# 创建 Gradio 界面
|
|
|
|
| 232 |
# 修改为字符串输入控件
|
| 233 |
shape0_str = gr.Textbox(label="shape0 (逗号分隔的整数)", value="1,3,128,128")
|
| 234 |
shape1_str = gr.Textbox(label="shape1 (逗号分隔的整数)", value="0,0,0,0")
|
| 235 |
+
with gr.Row():
|
| 236 |
+
start_button = gr.Button("开始")
|
| 237 |
+
# 添加取消按钮
|
| 238 |
+
cancel_button = gr.Button("取消")
|
| 239 |
# 右侧列,包含输出组件和日志文本框
|
| 240 |
with gr.Column():
|
| 241 |
output = gr.File(label="输出文件", file_count="multiple")
|
| 242 |
log_textbox = gr.Textbox(label="日志", lines=10, interactive=False)
|
| 243 |
|
| 244 |
# 绑定事件,修改输入参数
|
| 245 |
+
process = start_button.click(
|
| 246 |
fn=start_process,
|
| 247 |
inputs=[input1_file if input1_file.value else input1, input2, shape0_str, shape1_str],
|
| 248 |
outputs=[output, log_textbox]
|
| 249 |
)
|
| 250 |
+
# 为取消按钮添加点击事件绑定,使用 cancels 属性取消 start_process 任务
|
| 251 |
+
cancel_button.click(
|
| 252 |
+
fn=None,
|
| 253 |
+
inputs=None,
|
| 254 |
+
outputs=None,
|
| 255 |
+
cancels=[process]
|
| 256 |
+
)
|
| 257 |
|
| 258 |
demo.launch()
|