import gradio as gr from gradio import routes from typing import List, Type import requests, os, re, asyncio, queue import math import time import datetime import requests, json loop = asyncio.get_event_loop() # Monkey patch def get_types(cls_set: List[Type], component: str): docset = [] types = [] if component == "input": for cls in cls_set: doc = inspect.getdoc(cls) doc_lines = doc.split("\n") docset.append(doc_lines[1].split(":")[-1]) types.append(doc_lines[1].split(")")[0].split("(")[-1]) else: for cls in cls_set: doc = inspect.getdoc(cls) doc_lines = doc.split("\n") docset.append(doc_lines[-1].split(":")[-1]) types.append(doc_lines[-1].split(")")[0].split("(")[-1]) return docset, types routes.get_types = get_types def example_func(id, pw): if not id in user_data: user_data[id] = pw return "ok" else: return "fail" with gr.Blocks() as demo: count = 0 gr.Markdown( f"sample app" ) aa = gr.Interface( fn=example_func, inputs=["text", "text"], outputs="text", description="example_func", ) demo.queue(max_size=32).launch()