Spaces:
Running
Running
Update entity_relationship_generator.py
Browse files
entity_relationship_generator.py
CHANGED
|
@@ -840,25 +840,10 @@ def generate_entity_relationship_diagram(json_input: str, output_format: str) ->
|
|
| 840 |
dot.attr('node', fontname='Arial', fontsize='10', color='#404040')
|
| 841 |
dot.attr('edge', fontname='Arial', fontsize='9', color='#4a4a4a')
|
| 842 |
|
| 843 |
-
|
| 844 |
-
|
| 845 |
-
|
| 846 |
-
|
| 847 |
-
|
| 848 |
-
attribute_colors = {
|
| 849 |
-
'primary_key': '#A8E6CF',
|
| 850 |
-
'partial_key': '#FFB3BA',
|
| 851 |
-
'multivalued': '#B8D4F1',
|
| 852 |
-
'derived': '#F0F8FF',
|
| 853 |
-
'composite': '#E8E8E8',
|
| 854 |
-
'regular': '#D4D4D4'
|
| 855 |
-
}
|
| 856 |
-
|
| 857 |
-
relationship_colors = {
|
| 858 |
-
'regular': '#E8E8E8',
|
| 859 |
-
'identifying': '#B8D4F1',
|
| 860 |
-
'isa': '#F0F0F0'
|
| 861 |
-
}
|
| 862 |
|
| 863 |
font_color = 'black'
|
| 864 |
|
|
@@ -873,7 +858,7 @@ def generate_entity_relationship_diagram(json_input: str, output_format: str) ->
|
|
| 873 |
if not entity_name:
|
| 874 |
continue
|
| 875 |
|
| 876 |
-
entity_color =
|
| 877 |
|
| 878 |
if entity_type == 'weak':
|
| 879 |
dot.node(
|
|
@@ -909,7 +894,7 @@ def generate_entity_relationship_diagram(json_input: str, output_format: str) ->
|
|
| 909 |
attr_type = attr.get('type', 'regular')
|
| 910 |
|
| 911 |
attr_id = f"{entity_name}_attr_{i}"
|
| 912 |
-
attr_color =
|
| 913 |
|
| 914 |
if attr_type == 'primary_key':
|
| 915 |
dot.node(
|
|
@@ -1009,7 +994,7 @@ def generate_entity_relationship_diagram(json_input: str, output_format: str) ->
|
|
| 1009 |
|
| 1010 |
if parent and children:
|
| 1011 |
isa_id = f"isa_{rel_name}"
|
| 1012 |
-
isa_color =
|
| 1013 |
|
| 1014 |
dot.node(
|
| 1015 |
isa_id,
|
|
@@ -1031,7 +1016,7 @@ def generate_entity_relationship_diagram(json_input: str, output_format: str) ->
|
|
| 1031 |
dot.edge(isa_id, child, color='#4a4a4a', len='2.0')
|
| 1032 |
|
| 1033 |
elif len(entities_involved) >= 2:
|
| 1034 |
-
rel_color =
|
| 1035 |
|
| 1036 |
if rel_type == 'identifying':
|
| 1037 |
dot.node(
|
|
@@ -1065,7 +1050,7 @@ def generate_entity_relationship_diagram(json_input: str, output_format: str) ->
|
|
| 1065 |
for j, attr in enumerate(rel_attributes):
|
| 1066 |
attr_name = attr.get('name', '')
|
| 1067 |
attr_id = f"{rel_name}_attr_{j}"
|
| 1068 |
-
attr_color =
|
| 1069 |
|
| 1070 |
dot.node(
|
| 1071 |
attr_id,
|
|
|
|
| 840 |
dot.attr('node', fontname='Arial', fontsize='10', color='#404040')
|
| 841 |
dot.attr('edge', fontname='Arial', fontsize='9', color='#4a4a4a')
|
| 842 |
|
| 843 |
+
entity_color = '#BEBEBE'
|
| 844 |
+
attribute_color = '#B8D4F1'
|
| 845 |
+
relationship_color = '#FFF9C4'
|
| 846 |
+
isa_color = '#A8E6CF'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 847 |
|
| 848 |
font_color = 'black'
|
| 849 |
|
|
|
|
| 858 |
if not entity_name:
|
| 859 |
continue
|
| 860 |
|
| 861 |
+
entity_color = '#BEBEBE'
|
| 862 |
|
| 863 |
if entity_type == 'weak':
|
| 864 |
dot.node(
|
|
|
|
| 894 |
attr_type = attr.get('type', 'regular')
|
| 895 |
|
| 896 |
attr_id = f"{entity_name}_attr_{i}"
|
| 897 |
+
attr_color = attribute_color
|
| 898 |
|
| 899 |
if attr_type == 'primary_key':
|
| 900 |
dot.node(
|
|
|
|
| 994 |
|
| 995 |
if parent and children:
|
| 996 |
isa_id = f"isa_{rel_name}"
|
| 997 |
+
isa_color = isa_color
|
| 998 |
|
| 999 |
dot.node(
|
| 1000 |
isa_id,
|
|
|
|
| 1016 |
dot.edge(isa_id, child, color='#4a4a4a', len='2.0')
|
| 1017 |
|
| 1018 |
elif len(entities_involved) >= 2:
|
| 1019 |
+
rel_color = relationship_color
|
| 1020 |
|
| 1021 |
if rel_type == 'identifying':
|
| 1022 |
dot.node(
|
|
|
|
| 1050 |
for j, attr in enumerate(rel_attributes):
|
| 1051 |
attr_name = attr.get('name', '')
|
| 1052 |
attr_id = f"{rel_name}_attr_{j}"
|
| 1053 |
+
attr_color = attribute_color
|
| 1054 |
|
| 1055 |
dot.node(
|
| 1056 |
attr_id,
|