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()