diff --git a/eralchemy/main.py b/eralchemy/main.py index b6b874aed9c56bb3efff55d3cdd762cfe6951489..30da6f16f70a54ad49ea42a74c432a5a6b2e8c86 100644 --- a/eralchemy/main.py +++ b/eralchemy/main.py @@ -5,7 +5,8 @@ import re import sys from importlib.metadata import PackageNotFoundError, version -from pygraphviz.agraph import AGraph +#from pygraphviz.agraph import AGraph +from graphviz import Source from sqlalchemy.engine.url import make_url from sqlalchemy.exc import ArgumentError @@ -139,10 +140,12 @@ def intermediary_to_dot(tables, relationships, output, title=""): def intermediary_to_schema(tables, relationships, output, title=""): """Transforms and save the intermediary representation to the file chosen.""" dot_file = _intermediary_to_dot(tables, relationships, title) - graph = AGraph() - graph = graph.from_string(dot_file) - extension = output.split(".")[-1] - graph.draw(path=output, prog="dot", format=extension) + #graph = AGraph() + #graph = graph.from_string(dot_file) + extension = output.split('.')[-1] + #graph.draw(path=output, prog='dot', format=extension) + #Source.from_file(filename, engine='dot', format=extension) + return Source(dot_file, engine='dot', format=extension) def _intermediary_to_markdown(tables, relationships): @@ -363,16 +366,13 @@ def render_er( """ try: tables, relationships = all_to_intermediary(input, schema=schema) - tables, relationships = filter_resources( - tables, - relationships, - include_tables=include_tables, - include_columns=include_columns, - exclude_tables=exclude_tables, - exclude_columns=exclude_columns, - ) + if include is not None: + tables, relationships = filter_includes(tables, relationships, include) + if exclude is not None: + tables, relationships = filter_excludes(tables, relationships, exclude) intermediary_to_output = get_output_mode(output, mode) - intermediary_to_output(tables, relationships, output, title) + out = intermediary_to_output(tables, relationships, output) + return out except ImportError as e: module_name = e.message.split()[-1] print(f'Please install {module_name} using "pip install {module_name}".') diff --git a/tests/test_intermediary_to_dot.py b/tests/test_intermediary_to_dot.py index 19e411a08af19bc4212d81881056dc6cd1c6a09d..e75a969e4177550bb9b07af4124dc8ac0222b2ba 100644 --- a/tests/test_intermediary_to_dot.py +++ b/tests/test_intermediary_to_dot.py @@ -30,7 +30,7 @@ column_inside = re.compile( "(?P<key_closing>.*)\\ <FONT\\>\\ \\[(?P<type>.*)\\]\\<\\/FONT\\>", ) - +#This test needs fixing with move to graphviz def assert_is_dot_format(dot): """Checks that the dot is usable by graphviz."""