mirror of
https://github.com/aljazceru/hummingbot-dashboard.git
synced 2025-12-21 15:34:19 +01:00
(feat) improve loaders and save config
This commit is contained in:
@@ -2,16 +2,27 @@ import streamlit as st
|
|||||||
from CONFIG import BACKEND_API_HOST, BACKEND_API_PORT
|
from CONFIG import BACKEND_API_HOST, BACKEND_API_PORT
|
||||||
|
|
||||||
from backend.services.backend_api_client import BackendAPIClient
|
from backend.services.backend_api_client import BackendAPIClient
|
||||||
|
from frontend.utils import generate_random_name
|
||||||
|
|
||||||
backend_api_client = BackendAPIClient.get_instance(host=BACKEND_API_HOST, port=BACKEND_API_PORT)
|
backend_api_client = BackendAPIClient.get_instance(host=BACKEND_API_HOST, port=BACKEND_API_PORT)
|
||||||
|
|
||||||
|
|
||||||
def get_default_config_loader(controller_name: str):
|
def get_default_config_loader(controller_name: str):
|
||||||
use_default_config = st.checkbox("Use default config", value=True)
|
|
||||||
all_configs = backend_api_client.get_all_controllers_config()
|
all_configs = backend_api_client.get_all_controllers_config()
|
||||||
if use_default_config:
|
existing_configs = [config["id"].split("-")[0] for config in all_configs]
|
||||||
st.session_state["default_config"] = {}
|
default_dict = {"id": generate_random_name(existing_configs)}
|
||||||
else:
|
with st.expander("Configurations", expanded=True):
|
||||||
configs = [config for config in all_configs if config["controller_name"] == controller_name]
|
c1, c2 = st.columns(2)
|
||||||
default_config = st.selectbox("Select a config", [config["id"] for config in configs])
|
with c1:
|
||||||
st.session_state["default_config"] = next((config for config in all_configs if config["id"] == default_config), {})
|
use_default_config = st.checkbox("Use default config", value=True)
|
||||||
|
if use_default_config:
|
||||||
|
st.session_state["default_config"] = default_dict
|
||||||
|
else:
|
||||||
|
with c2:
|
||||||
|
configs = [config for config in all_configs if config["controller_name"] == controller_name]
|
||||||
|
default_config = st.selectbox("Select a config", [config["id"] for config in configs])
|
||||||
|
st.session_state["default_config"] = next((config for config in all_configs if config["id"] == default_config), None)
|
||||||
|
if st.session_state["default_config"] is None:
|
||||||
|
st.session_state["default_config"] = default_dict
|
||||||
|
else:
|
||||||
|
st.session_state["default_config"]["id"] = st.session_state["default_config"]["id"].split("_")[0]
|
||||||
|
|||||||
@@ -4,19 +4,27 @@ from CONFIG import BACKEND_API_HOST, BACKEND_API_PORT
|
|||||||
from backend.services.backend_api_client import BackendAPIClient
|
from backend.services.backend_api_client import BackendAPIClient
|
||||||
|
|
||||||
|
|
||||||
def render_save_config(controller_name: str, config_data: dict):
|
def render_save_config(config_base: str, config_data: dict):
|
||||||
st.write("### Upload Config to BackendAPI")
|
st.write("### Upload Config to BackendAPI")
|
||||||
|
backend_api_client = BackendAPIClient.get_instance(host=BACKEND_API_HOST, port=BACKEND_API_PORT)
|
||||||
|
all_configs = backend_api_client.get_all_controllers_config()
|
||||||
|
config_bases = set(config_name["id"].split("_")[0] for config_name in all_configs)
|
||||||
|
config_base = config_base.split("_")[0]
|
||||||
|
if config_base in config_bases:
|
||||||
|
config_tag = max(float(config["id"].split("_")[-1]) for config in all_configs if config_base in config["id"])
|
||||||
|
version, tag = str(config_tag).split(".")
|
||||||
|
config_tag = f"{version}.{int(tag) + 1}"
|
||||||
|
else:
|
||||||
|
config_tag = "0.1"
|
||||||
c1, c2, c3 = st.columns([1, 1, 0.5])
|
c1, c2, c3 = st.columns([1, 1, 0.5])
|
||||||
connector = config_data.get("connector_name", "")
|
|
||||||
trading_pair = config_data.get("trading_pair", "")
|
|
||||||
with c1:
|
with c1:
|
||||||
config_base = st.text_input("Config Base", value=f"{controller_name}-{connector}-{trading_pair.split('-')[0]}")
|
config_base = st.text_input("Config Base", value=config_base)
|
||||||
with c2:
|
with c2:
|
||||||
config_tag = st.text_input("Config Tag", value="1.1")
|
config_tag = st.text_input("Config Tag", value=config_tag)
|
||||||
with c3:
|
with c3:
|
||||||
upload_config_to_backend = st.button("Upload")
|
upload_config_to_backend = st.button("Upload")
|
||||||
if upload_config_to_backend:
|
if upload_config_to_backend:
|
||||||
config_data["id"] = f"{config_base}-{config_tag}"
|
config_data["id"] = f"{config_base}_{config_tag}"
|
||||||
backend_api_client = BackendAPIClient.get_instance(host=BACKEND_API_HOST, port=BACKEND_API_PORT)
|
backend_api_client = BackendAPIClient.get_instance(host=BACKEND_API_HOST, port=BACKEND_API_PORT)
|
||||||
backend_api_client.add_controller_config(config_data)
|
backend_api_client.add_controller_config(config_data)
|
||||||
st.success("Config uploaded successfully!")
|
st.success("Config uploaded successfully!")
|
||||||
|
|||||||
Reference in New Issue
Block a user