From a7598032ef4204fd0f6a642ace34272216ad2d31 Mon Sep 17 00:00:00 2001 From: FPVian Date: Sun, 5 Nov 2023 19:59:50 -0500 Subject: [PATCH] make labels optional --- README.md | 3 ++- sqlalchemy_data_model_visualizer.py | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ab67d51..8ce66c1 100644 --- a/README.md +++ b/README.md @@ -59,10 +59,11 @@ Then, simply call the `generate_data_model_diagram` function. This will generate ## API Documentation -### `generate_data_model_diagram(models, output_file='my_data_model_diagram')` +### `generate_data_model_diagram(models, output_file='my_data_model_diagram', add_labels=True)` - `models`: List of SQLAlchemy models you want to visualize. - `output_file`: Name of the output SVG file. +- `add_labels`: Set to False to hide labels on the edges between tables ## Contributing diff --git a/sqlalchemy_data_model_visualizer.py b/sqlalchemy_data_model_visualizer.py index 23453b6..39364be 100644 --- a/sqlalchemy_data_model_visualizer.py +++ b/sqlalchemy_data_model_visualizer.py @@ -12,7 +12,7 @@ import re Base = declarative_base() -def generate_data_model_diagram(models, output_file='my_data_model_diagram'): +def generate_data_model_diagram(models, output_file='my_data_model_diagram', add_labels=True): # Initialize graph with more advanced visual settings dot = graphviz.Digraph(comment='Interactive Data Models', format='svg', graph_attr={'bgcolor': '#EEEEEE', 'rankdir': 'TB', 'splines': 'spline'}, @@ -56,7 +56,7 @@ def generate_data_model_diagram(models, output_file='my_data_model_diagram'): for rel in insp.relationships: target_name = rel.mapper.class_.__name__ tooltip = f"Relation between {name} and {target_name}" - dot.edge(name, target_name, label=rel.key, tooltip=tooltip, color="#1E88E5", style="dashed") + dot.edge(name, target_name, label=rel.key if add_labels else None, tooltip=tooltip, color="#1E88E5", style="dashed") # Render the graph to a file and open it dot.render(output_file, view=True) @@ -301,5 +301,5 @@ class GenericBillingInfo(Base): output_file_name = 'my_data_model_diagram' # Generate the diagram and add interactivity - generate_data_model_diagram(models, output_file_name) + generate_data_model_diagram(models, output_file_name, add_labels=True) add_web_font_and_interactivity('my_data_model_diagram.svg', 'my_interactive_data_model_diagram.svg')