File size: 2,784 Bytes
a87a8d3
 
 
 
 
 
 
 
2382276
a87a8d3
 
 
 
 
 
 
 
2382276
a87a8d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2382276
 
a87a8d3
 
 
2382276
a87a8d3
2382276
 
 
 
a87a8d3
 
 
2382276
a87a8d3
 
 
 
 
 
 
2382276
a87a8d3
 
 
 
 
 
 
 
 
 
2382276
a87a8d3
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import gradio as gr
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import altair as alt
import numpy as np

# documentation: https://www.gradio.app/guides/quickstart
# to use the reload mode use the Gradio cli in the terminal: gradio.exe app.py

def limit_analysis_to_12_months(input_lst):
    if len(input_lst)>12:
        input_lst = input_lst[:12]
    else:
        input_lst += [0] * (12 - len(input_lst))
    return input_lst

def greet(Identite, revenus, depenses, epargne, dettes, is_ratio=False, is_graphe=True ):

    # Revenus et Depenses
    revenus = [float(rev.strip()) for rev in revenus.split(sep=',')]
    revenus = limit_analysis_to_12_months(revenus)

    depenses = [float(dep.strip()) for dep in depenses.split(sep=',')]
    depenses = limit_analysis_to_12_months(depenses)

    # Pandas DataFrame
    mois = [
        "janvier", "février", "mars",
        "avril", "mai", "juin",
        "juillet", "août", "septembre",
        "octobre", "novembre", "décembre"
    ]

    data = {'Mois': mois, 'Revenus': revenus, 'Depenses': depenses}
    df = pd.DataFrame(data)
    df['Cash_Flow'] = df['Revenus'] - df['Depenses']
    df['Epargne'] = df['Cash_Flow'].cumsum()

    #gr.DataFrame(get_data, every=5)

    #Plot
    #fig = plt.figure()
    #plt.plot(df['Mois'], df['Cash_Flow'])
    #plt.plot(df, x='Mois', y='Revenus')
    #plt.title("Big TITLE")
    lplot1 = gr.LinePlot(df, x="Mois", y="Revenus")
    lplot2 = gr.LinePlot(df, x="Mois", y="Depenses")

    return "Guten Tag " + Identite + "!", df, lplot1, lplot2


demo = gr.Interface(
    fn=greet,
    inputs=[gr.Textbox('John Doe', info='Rentrez votre prénom et votre nom', label='Identite'),
            gr.Textbox('4123, 4566, 5667, 5322, 5600, 5800, 5200, 6050, 5400, 5700, 5900, 6400', info='Rentrez vos revenus des 12 derniers mois séparés par une virgule', label='Revenus'),
            gr.Textbox('3123, 4500, 5000, 5200, 5500, 4100, 6400, 5950, 5900, 5800, 5600, 5990', info='Rentrez vos dépenses des 12 derniers mois séparées par une virgule', label='Dépenses'),
            gr.Slider(0, 1_000_000, info='Indiquez votre épargne entre 0 et 1 million', label="Épargne"),
            gr.Slider(0, 1_000_000, info='Indiquez vos dettes entre 0 et 1 million', label='Dettes'),
            gr.Checkbox(False, info='Voulez-vous afficher vos ratios financiers?', label='Ratios'),
            gr.Checkbox(True, info='Voulez-vous afficher le graphe de vos finances?', label='Graphe')],
    outputs=["text", gr.DataFrame(), gr.LinePlot(), gr.LinePlot()],
)

"""
# Display()
if display_graph:
    df.plot(x='Mois', y=['Revenus', 'Depenses', 'Cash_Flow', 'Epargne'], marker='o', color=['green', 'red', 'cyan', 'blue'], ylabel='Euros', rot=30)
else:
    pass
"""


demo.launch()