diff --git a/graph_data_generator_streamlit/ui/export_ui.py b/graph_data_generator_streamlit/ui/export_ui.py index 614438b..e897bd4 100644 --- a/graph_data_generator_streamlit/ui/export_ui.py +++ b/graph_data_generator_streamlit/ui/export_ui.py @@ -3,7 +3,7 @@ import streamlit as st from graph_data_generator import generators import graph_data_generator as gdg -from neo4j_uploader import upload, start_logging, stop_logging +from neo4j_uploader import upload, start_logging, stop_logging, UploadResult import json def export_ui(): @@ -20,7 +20,7 @@ def export_ui(): data = gdg.generate_dictionaries(mapping) with st.expander('Generated Data'): - pretty = json.dumps(data, indent=4) + pretty = json.dumps(data, indent=4, default=str) st.code(pretty) # Display node and relationship counts @@ -83,13 +83,16 @@ def on_download(): if uri is None or user is None or password is None: st.error("Please specify the Neo4j instance credentials in the Configuration tab") return - - # Enable uploader logging - start_logging() - - try: - time, nodes, rels, props = upload(neo4j_creds=(uri, user, password), data=data, should_overwrite=should_overwrite) - except Exception as e: - st.error(f"Upload failed. Please check your credentials and try again. Error encountered: {e}") - - st.info(f"Upload completed in {time} seconds, {nodes} nodes created, {rels} relationships created, {props} properties set.") \ No newline at end of file + else: + # Enable uploader logging + start_logging() + + try: + result = upload(neo4j_creds=(uri, user, password), data=data, should_overwrite=should_overwrite) + if result.was_successful == False: + st.error(f'Upload failed. Error encountered: {result.error_message}') + else: + st.info(f"Upload completed in {result.seconds_to_complete} seconds, {result.nodes_created} nodes created, {result.relationships_created} relationships created, {result.properties_set} properties set.") + except Exception as e: + st.error(f"Upload failed. Please check your credentials and try again. Error encountered: {e}") + diff --git a/graph_data_generator_streamlit/ui/generate_ui.py b/graph_data_generator_streamlit/ui/generate_ui.py index bdbbb6f..b3385aa 100644 --- a/graph_data_generator_streamlit/ui/generate_ui.py +++ b/graph_data_generator_streamlit/ui/generate_ui.py @@ -7,11 +7,11 @@ def generate_ui(): if st.session_state["ARROWS_DICT"] is not None: dict = st.session_state.get("ARROWS_DICT", {}).get('graph', None) - string = json.dumps(dict, indent=4) + string = json.dumps(dict, indent=4, default=str) st.session_state["JSON_CONFIG"] = string if st.button('Load Sample'): sample_raw = json.load(open("graph_data_generator_streamlit/samples/minimal.json")) - prior = json.dumps(sample_raw, indent=4) + prior = json.dumps(sample_raw, indent=4, default=str) st.session_state["JSON_CONFIG"] = prior txt = st.text_area("Enter .JSON config below", height=500, help="Click out of the text area to generate the .zip file.", value=st.session_state.JSON_CONFIG) diff --git a/graph_data_generator_streamlit/ui/ideate_ui.py b/graph_data_generator_streamlit/ui/ideate_ui.py index 21c4d17..5e39808 100644 --- a/graph_data_generator_streamlit/ui/ideate_ui.py +++ b/graph_data_generator_streamlit/ui/ideate_ui.py @@ -27,7 +27,7 @@ def arrows_uri(input: str | dict) -> str: # Convert dict to string if needed if isinstance(input, dict): - input = json.dumps(input) + input = json.dumps(input, default=str) # Convert the diction object into a base 64 json string b = input.encode('utf-8') diff --git a/pyproject.toml b/pyproject.toml index b575473..3ce5d1b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "mock-graph-data-generator-streamlit" -version = "0.7.6" +version = "0.7.7" description = "" authors = ["Jason Koo <jalakoo@gmail.com>"] readme = "README.md"