#!/usr/bin/python3 # -*- coding: utf-8 -*- import argparse import asyncio import json import logging from pathlib import Path import platform import tempfile from typing import Tuple, List import uuid import gradio as gr import numpy as np from scipy.io import wavfile from project_settings import environment, project_path, log_directory from toolbox.os.command import Command import log log.setup_size_rotating(log_directory=log_directory) logger = logging.getLogger("main") def get_args(): parser = argparse.ArgumentParser() parser.add_argument( "--examples_dir", default=(project_path / "data/examples").as_posix(), type=str, ) args = parser.parse_args() return args def shell(cmd: str): return Command.popen(cmd) def main(): args = get_args() # ui with gr.Blocks() as blocks: with gr.Tabs(): with gr.TabItem("shell"): shell_text = gr.Textbox(label="cmd") shell_button = gr.Button("run") shell_output = gr.Textbox(label="output") shell_button.click( shell, inputs=[shell_text,], outputs=[shell_output], ) # http://127.0.0.1:7861/ # http://10.75.27.247:7861/ blocks.queue().launch( share=False if platform.system() == "Windows" else False, server_name="127.0.0.1" if platform.system() == "Windows" else "0.0.0.0", # server_name="0.0.0.0", server_port=environment.get("port", 7860, dtype=int), ) return if __name__ == "__main__": main()