33"""
44
55import networkx as nx
6+ from typing import Callable , Dict , Optional , Tuple
67from mathics .core .evaluation import Evaluation
78
89from pymathics .graph .base import Graph , _NetworkXBuiltin , graph_helper
1112class GraphData (_NetworkXBuiltin ):
1213 """
1314 <url>
14- :WMA:https://reference.wolfram.com/language/ref/GraphData.html
15- </url>
15+ :WMA link:https://reference.wolfram.com/language/ref/GraphData.html</url>
1616
1717 <dl>
1818 <dt>'GraphData[$name$]'
@@ -25,7 +25,9 @@ class GraphData(_NetworkXBuiltin):
2525
2626 summary_text = "create a graph by name"
2727
28- def eval (self , name , expression , evaluation : Evaluation , options : dict ) -> Graph :
28+ def eval (
29+ self , name , expression , evaluation : Evaluation , options : dict
30+ ) -> Optional [Graph ]:
2931 "GraphData[name_String, OptionsPattern[GraphData]]"
3032 py_name = name .get_string_value ()
3133 fn , layout = WL_TO_NETWORKX_FN .get (py_name , (None , None ))
@@ -42,12 +44,13 @@ def eval(self, name, expression, evaluation: Evaluation, options: dict) -> Graph
4244 # if len([p for p in list(parameters) if p.kind in [inspect.Parameter.POSITIONAL_ONLY, inspect.Parameter.POSITIONAL_OR_KEYWORD]]) != 0:
4345 # return
4446 if fn :
45- g = graph_helper (fn , options , False , evaluation , layout )
46- g .G .name = py_name
47+ g = graph_helper (fn , options , False , layout , evaluation )
48+ if g is not None :
49+ g .G .name = py_name
4750 return g
4851
4952
50- WL_TO_NETWORKX_FN = {
53+ WL_TO_NETWORKX_FN : Dict [ str , Tuple [ Callable , Optional [ str ]]] = {
5154 "DodecahedralGraph" : (nx .dodecahedral_graph , None ),
5255 "DiamondGraph" : (nx .diamond_graph , "spring" ),
5356 "PappusGraph" : (nx .pappus_graph , "circular" ),
0 commit comments