Trireme's picture
Upload folder using huggingface_hub
3380ac7 verified
Raw
History Blame Contribute Delete
2.45 kB
from pymongo import MongoClient
import pandas as pd
import requests
import json
import urllib.parse
import gradio as gr
import datetime
import os
client = MongoClient(os.getenv('MONGO_DB_URI'))
db = client["Patchy_balances"]
collection = db["balance_data"]
def load_from_mongo():
latest = collection.find_one(sort=[("timestamp", -1)])
if latest:
df0 = pd.DataFrame(latest["df0"]).T
df1 = pd.DataFrame(latest["df1"]).T
df2 = pd.DataFrame(latest["df2"]).T
df3 = pd.DataFrame(latest["df3"]).T
df4 = pd.DataFrame(latest["df4"]).T
df5 = pd.DataFrame(latest["df5"]).T
return (
df0, latest["total0"],
df1, latest["total1"],
df2, latest["total2"],
df3, latest["total3"],
df4, latest["total4"],
f"PNL : {latest['pnl']:,.2f}",
f"LP Rewards : {latest['rewards']:,.2f}",
df5
)
else:
empty_df = pd.DataFrame()
return empty_df, 0, empty_df, 0, empty_df, 0, empty_df, 0, empty_df, 0,"PNL : $0.00","LP Rewards : $0.00",empty_df
if __name__ == "__main__":
with gr.Blocks() as demo:
gr.Markdown("## Patchy Balances and PnL")
df0_out = gr.Dataframe(label="Starting Balances")
txt0_out = gr.Textbox(label="Starting Value Total ($)")
df2_out = gr.Dataframe(label="Wallet Balances")
txt2_out = gr.Textbox(label="Wallet Value Total ($)")
df3_out = gr.Dataframe(label="JUP Limit Balances")
txt3_out = gr.Textbox(label="JUP Limit Value Total ($)")
df4_out = gr.Dataframe(label="LP Balances")
txt4_out = gr.Textbox(label="LP Balances Value Total ($)")
df5_out = gr.Dataframe(label="LP Reward Balances")
reward_out = gr.Textbox(label="LP Reward Value Total ($)")
df1_out = gr.Dataframe(label="Total Balances")
txt1_out = gr.Textbox(label="Current Value Total ($)")
pnl_out = gr.Textbox(label="PNL (AUM Model)")
# Load from MongoDB on app load (sync function)
demo.load(
fn=load_from_mongo,
inputs=[],
outputs=[
df0_out, txt0_out,
df1_out, txt1_out,
df2_out, txt2_out,
df3_out, txt3_out,
df4_out, txt4_out,
pnl_out,reward_out,
df5_out
]
)
demo.launch(debug=True, share=True)