import gradio as gr from utils import get_calculated_df, get_info, text2oddslist def calculate(amount, text): odds_list = text2oddslist(text) df = get_calculated_df(amount, odds_list) info = get_info(df) # dfの整形 display_cols = ["odds", "buy", "refound"] if df["name"].map(lambda name: name != "").any(): display_cols = ["name"] + display_cols # markdownの整形 md_string = ( f"**購入額:** ¥ **{info['sum']:,}**
" f"**点数:** **{info['num_kind']}** 点
" f"**払戻:** ¥ **{info['refound_mean']:,}** (**{info['profit_mean']:+,}** (**{info['rate_min']:+.0%}**))
" "---" ) return md_string, df[["index"] + display_cols] amount_input = gr.Number(value=3000, label="amount") text_input = gr.Textbox(label="text") markdown_output = gr.Markdown() df_output = gr.Dataframe(type="pandas") iface = gr.Interface( fn=calculate, inputs=[amount_input, text_input], outputs=[markdown_output, df_output], ) iface.launch()