Spaces:
Build error
Build error
"""Talk to spaces VM via subprocess.check_output.""" | |
# import httpx | |
import subprocess as sp | |
from shlex import split | |
# from textwrap import dedent | |
from inspect import cleandoc | |
import gradio as gr | |
from logzero import logger | |
from gradiobee.seg_text import seg_text | |
# def greet(command): | |
def process(command): | |
"""Probe vm.""" | |
# single line: command | |
# logger.info("input:\n\t %s", command) | |
# print("print input:\n\t %s" % command) | |
# print("print input*:\n\t %s" % "*".join(command.splitlines())) | |
is_command = True | |
is_command = command.strip().splitlines().__len__() < 2 and len(command.strip()) < 100 | |
if is_command: | |
try: | |
# out = sp.check_output(split(command), encoding="utf8", stderr=STDOUT) | |
proc = sp.Popen( | |
split(command), encoding="utf8", stdout=-1, stderr=-1 | |
) # sp.PIPE: -1 | |
out, err = proc.communicate() | |
success = True | |
except Exception as e: | |
out, err = "", str(e) | |
success = False | |
if success: | |
out = "\n".join( | |
( | |
out, | |
err, | |
) | |
).strip() | |
if not out: | |
out = "No output, that's all we know." | |
return out | |
# not is_command or not flag: text, do seg_text | |
_ = "\n\n".join(seg_text(command.strip())) | |
# _ = seg_text(command.strip()) | |
return cleandoc( | |
f"""seg_text output (segmented sents): | |
{_} | |
""" | |
).strip() | |
iface = gr.Interface( | |
# fn=greet, | |
# inputs="text", | |
fn=process, | |
# inputs="text", | |
inputs=gr.inputs.Textbox( | |
lines=5, | |
placeholder="Type or paste input here then click 'Submit'", | |
default="python -m site", | |
label="command or multiline text", | |
), | |
outputs="text", | |
examples=[ | |
"cat /proc/version", | |
"free # show free memory", | |
"uname -m", | |
"df -h .", | |
"cat /proc/cpuinfo", | |
"""python -c "from psutil import virtual_memory; print(virtual_memory())" """, | |
], | |
title="probe the system", | |
description="Talk to the system via subprocess.check_output ", | |
) | |
# iface.launch(share=True, debug=True) | |
iface.launch(debug=True) | |