import avaimet import gradio as gr def getAccess(userfile): #Genera conexión inicial. sshListo, sftpListo = avaimet.conecta() #Obtiene la caja donde está guardados los tokens. caja = avaimet.obtenCaja(userfile) #Obtiene los tokens que hay en esa caja. tokens = avaimet.obtenTokens(sftpListo, caja) #Cierra la conexión. avaimet.cierraConexion(sshListo, sftpListo) return tokens def debitTokens(userfile, work): print(f"Task received : {work}, type: {type(work)} ...") #Genera conexión inicial. sshListo, sftpListo = avaimet.conecta() #Obtiene la caja donde está guardados los tokens. caja = avaimet.obtenCaja(userfile) #Obtiene los tokens que hay en esa caja. tokens = avaimet.obtenTokens(sftpListo, caja) #Aplica las reglas de ésta app para debitar lo correspondiente. resultado_debitado = avaimet.restaToken(sftpListo, caja, tokens, work) #Cierra la conexión. avaimet.cierraConexion(sshListo, sftpListo) return resultado_debitado #Interfaz Gráfica with gr.Blocks() as demo: with gr.Row(): with gr.Column(): text_input = gr.Textbox() work_catalogue = gr.Dropdown( ["picswap", "dog", "bird"], label="Catalogo", info="Will add more works later!" ) access_btn = gr.Button(value="Submit") debit_btn = gr.Button(value="Debit") with gr.Column(): text_output = gr.Textbox() access_btn.click(fn=getAccess, inputs=text_input, outputs=text_output, api_name="getTokens") debit_btn.click(fn=debitTokens, inputs=[text_input, work_catalogue], outputs=text_output, api_name="debitTokens") demo.launch()