| from typing import List | |
| from quickchart import QuickChart | |
| import pandas as pd | |
| from utils import TEMP_DIR | |
| def chart_generation_func(queries: List[str], session_hash): | |
| print("CHART GENERATION") | |
| query_dict = queries[0] | |
| print(query_dict) | |
| qc = QuickChart() | |
| qc.width = 1000 | |
| qc.height = 500 | |
| # Config can be set as a string or as a nested dict | |
| qc.config = query_dict | |
| url_id = qc.get_short_url().rsplit('/', 1)[-1] | |
| url_base = qc.get_url_base() | |
| # You can get the chart URL... | |
| interactive_url = url_base + '/chart-maker/view/' + url_id | |
| edit_url = url_base + '/chart-maker/edit/' + url_id | |
| iframe = '<div style=overflow:auto;><iframe\n scrolling="yes"\n width="1000px"\n height="500px"\n src="' + interactive_url + '"\n frameborder="0"\n allowfullscreen\n></iframe>\n <p>Edit, share, and download this graph <a target="_blank" href="' + edit_url + '">here</a></p></div>' | |
| return {"reply": iframe} | |
| def table_generation_func(data: List[str], session_hash): | |
| dir_path = TEMP_DIR / str(session_hash) | |
| print("TABLE GENERATION") | |
| print(data) | |
| df = pd.DataFrame(data) | |
| csv_path = f'{dir_path}/data.csv' | |
| df.to_csv(csv_path) | |
| download_path = f'gradio_api/file/temp/{session_hash}/data.csv' | |
| html_table = df.to_html() + f'<p>Download as a <a href="{download_path}">CSV</a></p>' | |
| print(html_table) | |
| return {"reply": html_table} | |