99
1010# uses networkx
1111
12- from mathics .builtin .base import Builtin , AtomBuiltin
12+ from inspect import isgenerator
13+
14+ from mathics .builtin .base import AtomBuiltin , Builtin
1315from mathics .builtin .box .graphics import GraphicsBox
1416from mathics .builtin .box .inout import _BoxedString
1517from mathics .builtin .patterns import Matcher
1618from mathics .core .atoms import Integer , Integer0 , Integer1 , Real
1719from mathics .core .convert .expression import ListExpression
18- from mathics .core .expression import (
19- Atom ,
20- Expression ,
21- )
22- from mathics .core .symbols import Symbol
20+ from mathics .core .expression import Atom , Expression
21+ from mathics .core .symbols import Symbol , SymbolTrue
2322from mathics .core .systemsymbols import (
2423 SymbolBlank ,
2524 SymbolGraphics ,
2827 SymbolRGBColor ,
2928 SymbolRule ,
3029)
31- from inspect import isgenerator
3230
3331WL_MARKER_TO_NETWORKX = {
3432 "Circle" : "o" ,
@@ -642,15 +640,14 @@ def track_edges(*edges):
642640 multigraph [0 ] = True
643641
644642 edge_weights = _edge_weights (options )
645- use_directed_edges = options .get ("System`DirectedEdges" , Symbol ( "True" )). is_true ()
643+ use_directed_edges = options .get ("System`DirectedEdges" , SymbolTrue ) is SymbolTrue
646644
647- directed_edge_head = Symbol (
648- "DirectedEdge" if use_directed_edges else "UndirectedEdge"
645+ directed_edge_head = (
646+ SymbolDirectedEdge if use_directed_edges else SymbolUndirectedEdge
649647 )
650- undirected_edge_head = SymbolUndirectedEdge
651648
652649 def parse_edge (r , attr_dict ):
653- if r . is_atom ( ):
650+ if isinstance ( r , Atom ):
654651 raise _GraphParseError
655652
656653 name = r .get_head_name ()
@@ -670,7 +667,7 @@ def parse_edge(r, attr_dict):
670667 track_edges ((u , v ))
671668 elif name == "System`UndirectedEdge" :
672669 edges_container = undirected_edges
673- head = undirected_edge_head
670+ head = SymbolUndirectedEdge
674671 track_edges ((u , v ), (v , u ))
675672 elif name == "PyMathics`Property" :
676673 for prop in edge .elements :
@@ -680,8 +677,8 @@ def parse_edge(r, attr_dict):
680677 head = directed_edge_head
681678 track_edges ((u , v ))
682679 elif prop_str == "System`UndirectedEdge" :
683- edges_container = undirected_edges
684- head = undirected_edge_head
680+ edges_container = SymbolDirectedEdge
681+ head = SymbolUndirectedEdge
685682 else :
686683 pass
687684 pass
0 commit comments