Skip to content

Commit

Permalink
Merge pull request #1 from FPVian/make-labels-optional
Browse files Browse the repository at this point in the history
make labels optional
  • Loading branch information
Dicklesworthstone committed Nov 6, 2023
2 parents 8f20118 + a759803 commit 2f8ad51
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
6 changes: 3 additions & 3 deletions sqlalchemy_data_model_visualizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'},
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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')

0 comments on commit 2f8ad51

Please sign in to comment.