Spaces:
Runtime error
Runtime error
| """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 gevent import monkey | |
| monkey.patch_all() | |
| # """ | |
| # pylint: disable=broad-except | |
| # from gevent import monkey | |
| # monkey.patch_all() | |
| # import nest_asyncio | |
| # nest_asyncio.apply() | |
| import asyncio | |
| from multiprocessing import Process # , freeze_support | |
| import gradio as gr | |
| import httpx | |
| # from deepl_fastapi.run_uvicorn import main | |
| # from deepl_fastapi_pw.run_uvicorn_async import main | |
| from deepl_fastapi_pw.deepl_server_async import main | |
| from logzero import logger | |
| # from deepl_scraper_pw.deepl_tr import deepl_tr | |
| from split_text import split_text | |
| arun = asyncio.get_event_loop().run_until_complete | |
| def deepl(text, from_lang, to_lang): | |
| """Translate.""" | |
| 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/" | |
| url = "http://127.0.0.1:8001/text/" | |
| res_tot = "" | |
| text_tot = text[:] | |
| slash = "_slash_" | |
| text_tot = text_tot.replace("/", slash) | |
| _ = split_text(text_tot) | |
| len_ = len(_) | |
| logger.info("Split to %s", len_) | |
| for idx, chunk in enumerate(_): | |
| logger.info("%s/%s", idx + 1, len_) | |
| try: | |
| # resp = httpx.get(f"{url}?q={text}&from_lang={from_lang}&to_lang={to_lang}") | |
| resp = httpx.post( | |
| url, | |
| json={ | |
| "text": chunk, | |
| "from_lang": from_lang, | |
| "to_lang": to_lang, | |
| }, | |
| timeout=90, | |
| ) | |
| 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: | |
| # res = jdata.get("trtext") | |
| res = jdata.get("result") | |
| except Exception as exc: | |
| logger.error(exc) | |
| res = str(exc) | |
| if res_tot: | |
| res_tot = res_tot + "\n" + res | |
| else: | |
| res_tot = res | |
| _ = """ | |
| try: | |
| # _ = deepl_tr(text, from_lang, to_lang) | |
| _ = arun(deepl_tr(text, from_lang, to_lang)) | |
| except Exception as exc: | |
| logger.error(exc) | |
| return str(exc) | |
| # """ | |
| # return res | |
| res_tot = res_tot.replace(slash, "/") | |
| return res_tot | |
| if __name__ == "__main__": | |
| # freeze_support() | |
| Process(target=main).start() | |
| iface = gr.Interface( | |
| fn=deepl, | |
| inputs=[ | |
| gr.Textbox( | |
| placeholder="Paste text here (not limited to 5000 chars)", | |
| lines=7, | |
| ), | |
| gr.Textbox(label="from_lang", value="en", lines=1), | |
| gr.Textbox(label="to_lang", value="zh", lines=1), | |
| ], | |
| outputs="textarea", | |
| allow_flagging="never", | |
| ) | |
| iface.launch() | |