DER / app.py
Gan1-V's picture
Create app.py
14e1110 verified
import gradio as gr
import pandas as pd
def calculate_de_ratio(
long_term_borrowings,
debentures,
bonds,
term_loans,
equity_share_capital,
preference_share_capital,
reserves_surplus,
retained_earnings
):
# Totals
total_debt = long_term_borrowings + debentures + bonds + term_loans
shareholders_equity = (
equity_share_capital
+ preference_share_capital
+ reserves_surplus
+ retained_earnings
)
# Avoid division by zero
de_ratio = total_debt / shareholders_equity if shareholders_equity != 0 else 0
# Markdown summary
summary = f"""
### 📊 Debt–Equity Ratio Summary
- **Total Debt:** ₹ {total_debt:,.2f}
- **Shareholders’ Equity:** ₹ {shareholders_equity:,.2f}
- **Debt–Equity Ratio:** **{de_ratio:.2f}**
"""
# Table data
data = {
"Component": [
"Long-term Borrowings",
"Debentures",
"Bonds",
"Term Loans",
"Equity Share Capital",
"Preference Share Capital",
"Reserves & Surplus",
"Retained Earnings",
],
"Amount (₹)": [
long_term_borrowings,
debentures,
bonds,
term_loans,
equity_share_capital,
preference_share_capital,
reserves_surplus,
retained_earnings,
],
}
df = pd.DataFrame(data)
return summary, df
with gr.Blocks() as demo:
gr.Markdown("# 💰 Debt–Equity Ratio Calculator")
with gr.Row():
with gr.Column():
gr.Markdown("## Total Debt Components")
long_term_borrowings = gr.Number(label="Long-term Borrowings", value=0)
debentures = gr.Number(label="Debentures", value=0)
bonds = gr.Number(label="Bonds", value=0)
term_loans = gr.Number(label="Term Loans", value=0)
with gr.Column():
gr.Markdown("## Shareholders’ Equity Components")
equity_share_capital = gr.Number(label="Equity Share Capital", value=0)
preference_share_capital = gr.Number(label="Preference Share Capital", value=0)
reserves_surplus = gr.Number(label="Reserves & Surplus", value=0)
retained_earnings = gr.Number(label="Retained Earnings", value=0)
calculate_btn = gr.Button("Calculate")
output_md = gr.Markdown()
output_table = gr.Dataframe()
calculate_btn.click(
fn=calculate_de_ratio,
inputs=[
long_term_borrowings,
debentures,
bonds,
term_loans,
equity_share_capital,
preference_share_capital,
reserves_surplus,
retained_earnings,
],
outputs=[output_md, output_table],
)
demo.launch()