Skip to content

Commit d42a0a9

Browse files
author
Release Manager
committed
gh-40036: Fix Generalized Petersen graph name and update others to f-string syntax There is a bug in the naming of the generalized Petersen graphs: the parameters aren't interpolated into the name string properly. This PR fixes that bug and updates all names in `sage.graphs.generators.families` to use f-strings. ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies URL: #40036 Reported by: Ewan Davies Reviewer(s): Ewan Davies, Frédéric Chapoton
2 parents c46e0a2 + a226b50 commit d42a0a9

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

src/sage/graphs/generators/families.py

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def JohnsonGraph(n, k):
5757
True
5858
"""
5959

60-
g = Graph(name="Johnson graph with parameters "+str(n)+","+str(k))
60+
g = Graph(name=f"Johnson graph with parameters {n},{k}")
6161
from sage.combinat.subset import Set, Subsets
6262

6363
S = Set(range(n))
@@ -113,7 +113,7 @@ def KneserGraph(n, k):
113113
if k <= 0 or k > n:
114114
raise ValueError("Parameter k should be a strictly positive integer inferior to n")
115115

116-
g = Graph(name="Kneser graph with parameters {},{}".format(n, k))
116+
g = Graph(name=f"Kneser graph with parameters {n},{k}")
117117

118118
from sage.combinat.subset import Subsets
119119
S = Subsets(n, k)
@@ -389,7 +389,7 @@ def EgawaGraph(p, s):
389389
"""
390390
from sage.graphs.generators.basic import CompleteGraph
391391
from itertools import product, chain, repeat
392-
g = Graph(name="Egawa Graph with parameters " + str(p) + "," + str(s), multiedges=False)
392+
g = Graph(name=f"Egawa Graph with parameters {p},{s}", multiedges=False)
393393
X = CompleteGraph(4)
394394
Y = Graph('O?Wse@UgqqT_LUebWkbT_')
395395
g.add_vertices(product(*chain(repeat(Y, p), repeat(X, s))))
@@ -477,7 +477,7 @@ def HammingGraph(n, q, X=None):
477477
X = list(range(q))
478478
if q != len(X):
479479
raise ValueError("q must be the cardinality of X")
480-
g = Graph(name="Hamming Graph with parameters " + str(n) + "," + str(q), multiedges=False)
480+
g = Graph(name=f"Hamming Graph with parameters {n},{q}", multiedges=False)
481481
g.add_vertices(product(*repeat(X, n)))
482482
for v in g:
483483
for i in range(n):
@@ -1161,7 +1161,7 @@ def CirculantGraph(n, adjacency):
11611161
if not isinstance(adjacency, list):
11621162
adjacency = [adjacency]
11631163

1164-
G = Graph(n, name="Circulant graph (" + str(adjacency) + ")")
1164+
G = Graph(n, name=f"Circulant graph ({adjacency})")
11651165
G._circle_embedding(list(range(n)))
11661166

11671167
for v in G:
@@ -1275,7 +1275,7 @@ def CubeGraph(n, embedding=1):
12751275
p, pn = pn, {}
12761276

12771277
# construct the graph
1278-
G = Graph(d, format='dict_of_lists', pos=p, name="%d-Cube" % n)
1278+
G = Graph(d, format='dict_of_lists', pos=p, name=f"{n}-Cube")
12791279

12801280
else:
12811281
# construct recursively the adjacency dict
@@ -1296,7 +1296,7 @@ def CubeGraph(n, embedding=1):
12961296
d, dn = dn, {}
12971297

12981298
# construct the graph
1299-
G = Graph(d, name="%d-Cube" % n, format='dict_of_lists')
1299+
G = Graph(d, name=f"{n}-Cube", format='dict_of_lists')
13001300

13011301
if embedding == 2:
13021302
# Orthogonal projection
@@ -1398,7 +1398,7 @@ def DorogovtsevGoltsevMendesGraph(n):
13981398
"""
13991399
import networkx
14001400
return Graph(networkx.dorogovtsev_goltsev_mendes_graph(n),
1401-
name="Dorogovtsev-Goltsev-Mendes Graph, %d-th generation" % n)
1401+
name=f"Dorogovtsev-Goltsev-Mendes Graph, {n}-th generation")
14021402

14031403

14041404
def FoldedCubeGraph(n):
@@ -1637,7 +1637,7 @@ def FibonacciTree(n):
16371637
16381638
- Harald Schilly and Yann Laigle-Chapuy (2010-03-25)
16391639
"""
1640-
T = Graph(name="Fibonacci-Tree-%d" % n)
1640+
T = Graph(name=f"Fibonacci-Tree-{n}")
16411641
if n == 1:
16421642
T.add_vertex(0)
16431643
if n < 2:
@@ -1711,6 +1711,13 @@ def GeneralizedPetersenGraph(n, k):
17111711
sage: g.is_bipartite()
17121712
True
17131713
1714+
TESTS:
1715+
1716+
Check that the name of the graph is correct::
1717+
1718+
sage: graphs.GeneralizedPetersenGraph(7, 2).name()
1719+
'Generalized Petersen graph (n=7,k=2)'
1720+
17141721
AUTHORS:
17151722
17161723
- Anders Jonsson (2009-10-15)
@@ -1719,7 +1726,7 @@ def GeneralizedPetersenGraph(n, k):
17191726
raise ValueError("n must be larger than 2")
17201727
if k < 1 or k > (n - 1) // 2:
17211728
raise ValueError("k must be in 1<= k <=floor((n-1)/2)")
1722-
G = Graph(2 * n, name="Generalized Petersen graph (n='+str(n)+',k="+str(k)+")")
1729+
G = Graph(2 * n, name=f"Generalized Petersen graph (n={n},k={k})")
17231730
for i in range(n):
17241731
G.add_edge(i, (i+1) % n)
17251732
G.add_edge(i, i+n)
@@ -1804,7 +1811,7 @@ def IGraph(n, j, k):
18041811
if k < 1 or k > (n - 1) // 2:
18051812
raise ValueError("k must be in 1 <= k <= floor((n - 1) / 2)")
18061813

1807-
G = Graph(2 * n, name="I-graph (n={}, j={}, k={})".format(n, j, k))
1814+
G = Graph(2 * n, name=f"I-graph (n={n}, j={j}, k={k})")
18081815
for i in range(n):
18091816
G.add_edge(i, (i + j) % n)
18101817
G.add_edge(i, i + n)
@@ -1870,7 +1877,7 @@ def DoubleGeneralizedPetersenGraph(n, k):
18701877
if k < 1 or k > (n - 1) // 2:
18711878
raise ValueError("k must be in 1 <= k <= floor((n - 1) / 2)")
18721879

1873-
G = Graph(4 * n, name="Double generalized Petersen graph (n={}, k={})".format(n, k))
1880+
G = Graph(4 * n, name=f"Double generalized Petersen graph (n={n}, k={k})")
18741881
for i in range(n):
18751882
G.add_edge(i, (i + 1) % n)
18761883
G.add_edge(i + 3 * n, (i + 1) % n + 3 * n)
@@ -1963,7 +1970,7 @@ def RoseWindowGraph(n, a, r):
19631970
if r == n / 2:
19641971
raise ValueError("r must be different than n / 2")
19651972

1966-
G = Graph(2 * n, name="rose window graph (n={}, a={}, r={})".format(n, a, r))
1973+
G = Graph(2 * n, name=f"Rose window graph (n={n}, a={a}, r={r})")
19671974
for i in range(n):
19681975
G.add_edge(i, (i + 1) % n)
19691976
G.add_edge(i, i + n)
@@ -2071,7 +2078,7 @@ def TabacjnGraph(n, a, b, r):
20712078
if r == n/2:
20722079
raise ValueError("r must be different than n / 2")
20732080

2074-
G = Graph(2 * n, name="Tabačjn graph (n={}, a={}, b={}, r={})".format(n, a, b, r))
2081+
G = Graph(2 * n, name=f"Tabačjn graph (n={n}, a={a}, b={b}, r={r})")
20752082
for i in range(n):
20762083
G.add_edge(i, (i + 1) % n)
20772084
G.add_edge(i, i + n)
@@ -2210,7 +2217,7 @@ def HyperStarGraph(n, k):
22102217
c[i] = one
22112218
adj[u] = L
22122219

2213-
return Graph(adj, format='dict_of_lists', name="HS(%d,%d)" % (n, k))
2220+
return Graph(adj, format='dict_of_lists', name=f"HS({n},{k})")
22142221

22152222

22162223
def LCFGraph(n, shift_list, repeats):
@@ -2450,7 +2457,7 @@ def NKStarGraph(n, k):
24502457
tmp_dict[vert] = None
24512458
v[0] = tmp_bit
24522459
d["".join(v)] = tmp_dict
2453-
return Graph(d, name="(%d,%d)-star" % (n, k))
2460+
return Graph(d, name=f"({n},{k})-star")
24542461

24552462

24562463
def NStarGraph(n):
@@ -2498,7 +2505,7 @@ def NStarGraph(n):
24982505
# swap back
24992506
v[0], v[i] = v[i], v[0]
25002507
d["".join(v)] = tmp_dict
2501-
return Graph(d, name="%d-star" % n)
2508+
return Graph(d, name=f"{n}-star")
25022509

25032510

25042511
def OddGraph(n):
@@ -2579,7 +2586,7 @@ def PaleyGraph(q):
25792586
if not mod(q, 4) == 1:
25802587
raise ValueError("parameter q must be congruent to 1 mod 4")
25812588
g = Graph([FiniteField(q, 'a'), lambda i, j: (i - j).is_square()],
2582-
loops=False, name="Paley graph with parameter {}".format(q))
2589+
loops=False, name=f"Paley graph with parameter {q}")
25832590
return g
25842591

25852592

@@ -4400,7 +4407,7 @@ def CubeConnectedCycle(d):
44004407
if d < 1:
44014408
raise ValueError('the dimension d must be greater than 0')
44024409

4403-
G = Graph(name="Cube-Connected Cycle of dimension {}".format(d))
4410+
G = Graph(name=f"Cube-Connected Cycle of dimension {d}")
44044411

44054412
if d == 1:
44064413
G.allow_loops(True)

0 commit comments

Comments
 (0)