From 5cc673fc4b19810f330c6791ffb1a6cb1690f6f4 Mon Sep 17 00:00:00 2001 From: John van de Wetering Date: Tue, 21 Jan 2025 19:28:45 +0100 Subject: [PATCH] Fixed wrongly loading auto_simplify value --- pyzx/graph/base.py | 2 +- pyzx/graph/jsonparser.py | 3 ++- tests/test_jsonparser.py | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pyzx/graph/base.py b/pyzx/graph/base.py index 36e3354e..c59e9a04 100644 --- a/pyzx/graph/base.py +++ b/pyzx/graph/base.py @@ -754,7 +754,7 @@ def from_json(cls, js:Union[str,Dict[str,Any]]) -> BaseGraph[VT,ET]: """Converts the given .qgraph json string into a Graph. Works with the output of :meth:`to_json`.""" from .jsonparser import json_to_graph - return json_to_graph(js, backend=cls.backend) + return json_to_graph(js) @classmethod def from_tikz(cls, tikz: str, warn_overlap:bool= True, fuse_overlap:bool = True, ignore_nonzx:bool = False) -> BaseGraph[VT,ET]: diff --git a/pyzx/graph/jsonparser.py b/pyzx/graph/jsonparser.py index 9240f081..a4c62069 100644 --- a/pyzx/graph/jsonparser.py +++ b/pyzx/graph/jsonparser.py @@ -351,7 +351,8 @@ def dict_to_graph(d: Dict[str,Any], backend: Optional[str]=None) -> BaseGraph: if g.backend == 'multigraph': if TYPE_CHECKING: assert isinstance(g, Multigraph) - g.set_auto_simplify(d.get('auto_simplify', True)) + b = True if d.get('auto_simplify', True) in ('true', True) else False + g.set_auto_simplify(b) for v_d in d['vertices']: pos = v_d['pos'] v = v_d['id'] diff --git a/tests/test_jsonparser.py b/tests/test_jsonparser.py index a7595808..0ea961e6 100644 --- a/tests/test_jsonparser.py +++ b/tests/test_jsonparser.py @@ -302,8 +302,16 @@ def test_load_multigraph_preserve_parallel_edges(self): d = g.to_dict() g2 = Graph.from_json(d) + self.assertTrue(g2.backend,'multigraph') + self.assertFalse(g2.get_auto_simplify()) self.assertEqual(g.num_edges(), g2.num_edges()) + js = json.dumps(d) + g3 = Graph.from_json(js) + self.assertTrue(g3.backend,'multigraph') + self.assertFalse(g3.get_auto_simplify()) + self.assertEqual(g.num_edges(), g3.num_edges()) + def test_load_json_old_format(self): js = json.dumps(test_graph_old_format) g = Graph.from_json(js)