Skip to content

Commit b93c5a7

Browse files
committed
graph layout should be Python string
1 parent 93c84d3 commit b93c5a7

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

pymathics/graph/graph_generators.py

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ def graph_helper(
3131
except MemoryError:
3232
evaluation.message(self.get_name(), "mem", expression)
3333
return None
34-
G.graph_layout = options["System`GraphLayout"].get_string_value() or String(
35-
graph_layout
36-
)
34+
G.graph_layout = options["System`GraphLayout"].get_string_value() or graph_layout
3735
g = Graph(G)
3836
G.vertex_labels = g.vertex_labels = options["System`VertexLabels"]
3937

@@ -169,6 +167,21 @@ def apply(self, n, expression, evaluation, options):
169167
return g
170168

171169

170+
def complete_graph_apply(self, n, expression, evaluation, options):
171+
py_n = n.get_int_value()
172+
173+
if py_n < 1:
174+
evaluation.message(self.get_name(), "ilsmp", expression)
175+
return
176+
177+
args = (py_n,)
178+
g = graph_helper(nx.complete_graph, options, False, "circular", None, *args)
179+
if not g:
180+
return None
181+
182+
g.G.n = n
183+
return g
184+
172185
class CompleteGraph(_NetworkXBuiltin):
173186
"""
174187
<dl>
@@ -190,19 +203,7 @@ class CompleteGraph(_NetworkXBuiltin):
190203

191204
def apply(self, n, expression, evaluation, options):
192205
"%(name)s[n_Integer, OptionsPattern[%(name)s]]"
193-
py_n = n.get_int_value()
194-
195-
if py_n < 1:
196-
evaluation.message(self.get_name(), "ilsmp", expression)
197-
return
198-
199-
args = (py_n,)
200-
g = graph_helper(nx.complete_graph, options, False, "circular", None, *args)
201-
if not g:
202-
return None
203-
204-
g.G.n = n
205-
return g
206+
return complete_graph_apply(self, n, expression, evaluation, options)
206207

207208
def apply_multipartite(self, n, evaluation, options):
208209
"%(name)s[n_List, OptionsPattern[%(name)s]]"
@@ -262,8 +263,11 @@ class CycleGraph(_NetworkXBuiltin):
262263

263264
def apply(self, n, expression, evaluation, options):
264265
"%(name)s[n_Integer, OptionsPattern[%(name)s]]"
265-
return hkn_harary_apply(self, Integer(2), n, expression, evaluation, options)
266-
266+
n_int = n.get_int_value()
267+
if n_int < 3:
268+
return complete_graph_apply(self, n, expression, evaluation, options)
269+
else:
270+
return hkn_harary_apply(self, Integer(2), n, expression, evaluation, options)
267271

268272
def f_r_t_apply(self, r, n, expression, evaluation, options):
269273
py_r = r.get_int_value()

pymathics/graph/tree.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def apply(self, rules, evaluation, options):
3030
if not nx.is_tree(g.G):
3131
evaluation.message(self.get_name(), "notree")
3232

33-
g.G.graph_layout = String("tree")
33+
g.G.graph_layout = "tree"
3434
# Compute/check/set for root?
3535
return g
3636

@@ -45,7 +45,7 @@ def apply_1(self, vertices, edges, evaluation, options):
4545
if not nx.is_tree(g.G):
4646
evaluation.message(self.get_name(), "notree")
4747

48-
g.G.graph_layout = String("tree")
48+
g.G.graph_layout = "tree"
4949
# Compute/check/set for root?
5050
return g
5151

0 commit comments

Comments
 (0)