minify / app.py
kivilaid's picture
Update app.py
0235378
raw
history blame
2.32 kB
import gradio as gr
import json
# Function to minify JSON
def minify_json(input_text, uploaded_file):
try:
if uploaded_file is not None:
input_text = uploaded_file["data"].decode("utf-8")
json_content = json.loads(input_text)
minified_json = json.dumps(json_content, separators=(',', ':'))
return minified_json
except json.JSONDecodeError:
return "Invalid JSON input. Please provide a valid JSON."
minify = gr.Interface(
minify_json,
[gr.Textbox(label="Input JSON Text"), gr.File(label="Upload JSON File")],
"text"
)
# Function to minify JSON with each key-value pair on a new line without extra indentation
def minify_json_to_row(input_text, uploaded_file):
try:
if uploaded_file is not None:
input_text = uploaded_file["data"].decode("utf-8")
json_content = json.loads(input_text)
minified_rows = ["{"]
for key, value in json_content.items():
# Serialize value to JSON and append to list
serialized_value = json.dumps(value, separators=(',', ':'))
minified_rows.append(f' "{key}": {serialized_value}')
minified_rows.append("}")
return "\n".join(minified_rows)
except json.JSONDecodeError:
return "Invalid JSON input. Please provide a valid JSON."
minify_to_row = gr.Interface(
minify_json_to_row,
[gr.Textbox(label="Input JSON Text"), gr.File(label="Upload JSON File")],
"text"
)
# Function for the Should we translate? interface
def check_input(input_text, uploaded_file):
if uploaded_file is not None:
input_text = uploaded_file["data"].decode("utf-8")
if not input_text.strip():
return "No words in the input."
words = input_text.split()
response = [f"'{word}' is a valid word." if word.isalpha() and ' ' not in word else f"'{word}' is not a valid word." for word in words]
return " ".join(response)
should_we_translate = gr.Interface(
check_input,
[gr.Textbox(label="Input Text"), gr.File(label="Upload File")],
"text"
)
# Creating a Tabbed Interface with all functionalities
demo = gr.TabbedInterface([minify, should_we_translate, minify_to_row], ["Minify JSON", "Should we translate?", "Minify to row"])
if __name__ == "__main__":
demo.launch()