Spaces:
Sleeping
Sleeping
File size: 1,512 Bytes
3aaf0af | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import gradio as gr
import re
def calcola_budget(testo):
righe = testo.lower().split(",")
entrate, uscite = [], []
totale_entrate, totale_uscite = 0, 0
for riga in righe:
match = re.search(r"([a-zàèéùìò ]+)\s*([\d\.]+)", riga.strip())
if match:
descrizione, valore = match.groups()
valore = float(valore)
if any(k in descrizione for k in ["stipendio", "bonus", "entrata", "vendita", "rimborso"]):
entrate.append((descrizione.strip(), valore))
totale_entrate += valore
else:
uscite.append((descrizione.strip(), valore))
totale_uscite += valore
saldo = totale_entrate - totale_uscite
riepilogo = f"📥 Entrate: {totale_entrate:.2f} €\n📤 Uscite: {totale_uscite:.2f} €\n💰 Saldo: {saldo:.2f} €\n\n"
riepilogo += "🔹 **Dettaglio Entrate**\n"
for e in entrate:
riepilogo += f"- {e[0].capitalize()}: {e[1]} €\n"
riepilogo += "\n🔸 **Dettaglio Uscite**\n"
for u in uscite:
riepilogo += f"- {u[0].capitalize()}: {u[1]} €\n"
return riepilogo
demo = gr.Interface(fn=calcola_budget,
inputs=gr.Textbox(lines=4, placeholder="Es. stipendio 1800, affitto 750, spesa 250"),
outputs="text",
title="Calcolo Entrate/Uscite Mensili",
description="Scrivi una lista veloce di entrate e uscite. Ti calcoliamo il saldo.")
demo.launch()
|