gradio-deepl / app.py
freemt
Update minor fix
38b7815
raw
history blame
1.78 kB
"""Failed attempt to fix "This event loop is already running" in Widows:
from platform import platform
if platform().lower().startswith("windows"):
from install import install
try:
import nest_asyncio
except ModuleNotFoundError:
try:
install("nest-asyncio")
import nest_asyncio
except Exception as exc:
print(exc)
raise SystemExit(1)
nest_asyncio.apply()
# """
from multiprocessing import Process, freeze_support
import gradio as gr
import httpx
from logzero import logger
from deepl_fastapi.run_uvicorn import main
def deepl(text, from_lang, to_lang):
try:
text = str(text).strip()
except Exception:
text = ""
if not text:
return "Put something there, man."
# "http://127.0.0.1:8000/text/?q=test%20me&to_lang=zh"
url = "http://127.0.0.1:8000/text/" # ?q=test%20me&to_lang=zh"
try:
resp = httpx.get(f"{url}?q={text}&from_lang={from_lang}&to_lang={to_lang}")
resp.raise_for_status()
except Exception as exc:
logger.error(exc)
return str(exc)
try:
jdata = resp.json()
except Exception as exc:
logger.error(exc)
return str(exc)
try:
_ = jdata.get("trtext")
except Exception as exc:
logger.error(exc)
_ = str(exc)
return _
if __name__ == "__main__":
freeze_support()
Process(target=main).start()
iface = gr.Interface(
fn=deepl,
inputs=[
gr.Textbox(placeholder="Paste text here (max. 5000 chars)", lines=7,),
gr.Textbox(label="from_lang", value="en", lines=1),
gr.Textbox(label="to_lang", value="zh", lines=1),
],
outputs="textarea"
)
iface.launch()