Skip to content

Commit 6633a9f

Browse files
committed
fix some ruff suggestions in cluster_algebra_quiver
1 parent 30b3d78 commit 6633a9f

File tree

4 files changed

+53
-54
lines changed

4 files changed

+53
-54
lines changed

src/sage/combinat/cluster_algebra_quiver/cluster_seed.py

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ def __init__(self, data, frozen=None, is_principal=False, user_labels=None, user
370370
self._init_exch = dict(islice(self._init_vars.items(), self._n))
371371
self._U = PolynomialRing(QQ, [f'y{i}' for i in range(self._n)])
372372
self._F = {i: self._U(1) for i in self._init_exch.values()}
373-
self._R = PolynomialRing(QQ, [val for val in self._init_vars.values()])
373+
self._R = PolynomialRing(QQ, list(self._init_vars.values()))
374374
self._y = {self._U.gen(j): prod([self._R.gen(i)**self._M[i, j] for i in range(self._n, self._n + self._m)])
375375
for j in range(self._n)}
376376
self._yhat = {self._U.gen(j): prod([self._R.gen(i)**self._M[i, j] for i in range(self._n + self._m)])
@@ -695,7 +695,7 @@ def use_fpolys(self, use=True, user_labels=None, user_labels_prefix=None):
695695
self._init_exch = dict(islice(self._init_vars.items(), self._n))
696696
self._U = PolynomialRing(QQ, [f'y{i}' for i in range(self._n)])
697697
self._F = {i: self._U(1) for i in self._init_exch.values()}
698-
self._R = PolynomialRing(QQ, [val for val in self._init_vars.values()])
698+
self._R = PolynomialRing(QQ, list(self._init_vars.values()))
699699
self._y = {self._U.gen(j): prod([self._R.gen(i)**self._M[i, j] for i in range(self._n, self._n + self._m)])
700700
for j in range(self._n)}
701701
self._yhat = {self._U.gen(j): prod([self._R.gen(i)**self._M[i, j] for i in range(self._n + self._m)])
@@ -3556,7 +3556,7 @@ def mutation_class_iter(self, depth=infinity, show_depth=False,
35563556
dc += ' ' * (5 - len(dc))
35573557
nr = str(len(clusters))
35583558
nr += ' ' * (10 - len(nr))
3559-
print("Depth: %s found: %s Time: %.2f s" % (dc, nr, timer2 - timer))
3559+
print(f"Depth: {dc} found: {nr} Time: {timer2 - timer:.2f} s")
35603560

35613561
# Each time we get bigger and we haven't hit the full depth
35623562
while gets_bigger and depth_counter < depth:
@@ -3592,11 +3592,11 @@ def mutation_class_iter(self, depth=infinity, show_depth=False,
35923592
if only_sink_source:
35933593
orbits = list(range(n))
35943594
else:
3595-
orbits = [index for index in range(n) if index > i or sd2._M[index,i] != 0]
3595+
orbits = [index for index in range(n) if index > i or sd2._M[index, i] != 0]
35963596

35973597
clusters[cl2] = [sd2, orbits, clusters[key][2]+[i]]
35983598
if return_paths:
3599-
yield (sd2,clusters[cl2][2])
3599+
yield (sd2, clusters[cl2][2])
36003600
else:
36013601
yield sd2
36023602
depth_counter += 1
@@ -3606,7 +3606,7 @@ def mutation_class_iter(self, depth=infinity, show_depth=False,
36063606
dc += ' ' * (5-len(dc))
36073607
nr = str(len(clusters))
36083608
nr += ' ' * (10-len(nr))
3609-
print("Depth: %s found: %s Time: %.2f s" % (dc,nr,timer2-timer))
3609+
print(f"Depth: {dc} found: {nr} Time: {timer2-timer:.2f} s")
36103610

36113611
def mutation_class(self, depth=infinity, show_depth=False, return_paths=False,
36123612
up_to_equivalence=True, only_sink_source=False):
@@ -3773,7 +3773,7 @@ def cluster_class(self, depth=infinity, show_depth=False, up_to_equivalence=True
37733773
if depth is infinity and not self.is_finite():
37743774
raise ValueError('The variable class can - for infinite types - only be computed up to a given depth')
37753775

3776-
return [c for c in self.cluster_class_iter(depth=depth, show_depth=show_depth, up_to_equivalence=up_to_equivalence)]
3776+
return list(self.cluster_class_iter(depth=depth, show_depth=show_depth, up_to_equivalence=up_to_equivalence))
37773777

37783778
def b_matrix_class_iter(self, depth=infinity, up_to_equivalence=True):
37793779
r"""
@@ -3989,51 +3989,51 @@ def variable_class_iter(self, depth=infinity, ignore_bipartite_belt=False):
39893989
(x0^8 + 4*x0^6 + 3*x0^4*x1^2 + 2*x0^2*x1^4 + x1^6 + 6*x0^4 + 6*x0^2*x1^2 + 3*x1^4 + 4*x0^2 + 3*x1^2 + 1)/(x0^3*x1^4)
39903990
(x0^6 + 3*x0^4 + 2*x0^2*x1^2 + x1^4 + 3*x0^2 + 2*x1^2 + 1)/(x0^2*x1^3)
39913991
"""
3992-
mut_iter = self.mutation_class_iter(depth=depth,show_depth=False)
3992+
mut_iter = self.mutation_class_iter(depth=depth, show_depth=False)
39933993
var_class = set()
39943994

39953995
for seed in mut_iter:
39963996
if seed is self:
39973997
seed = ClusterSeed(seed)
39983998
if not ignore_bipartite_belt and seed.is_bipartite():
39993999
bipartition = seed.is_bipartite(return_bipartition=True)
4000-
bipartition = (list(bipartition[0]),list(bipartition[1]))
4000+
bipartition = (list(bipartition[0]), list(bipartition[1]))
40014001
if depth is not infinity:
40024002
print("Found a bipartite seed - restarting the depth counter at zero and constructing the variable class using its bipartite belt.")
40034003
depth_counter = 0
40044004
end = False
40054005
seed2 = ClusterSeed(seed)
40064006
for c in seed.cluster():
40074007
if c not in var_class:
4008-
yield ClusterVariable(FractionField(seed._R), c.numerator(), c.denominator(), mutation_type=self._mutation_type, variable_type='cluster variable',xdim=seed._n)
4008+
yield ClusterVariable(FractionField(seed._R), c.numerator(), c.denominator(), mutation_type=self._mutation_type, variable_type='cluster variable', xdim=seed._n)
40094009
var_class = var_class.union(seed.cluster())
40104010

40114011
init_cluster = set(seed.cluster())
40124012
while not end and depth_counter < depth:
40134013
depth_counter += 1
40144014
seed.mutate(bipartition[0])
40154015
seed.mutate(bipartition[1])
4016-
if set(seed.cluster()) in [set(seed2.cluster()),init_cluster]:
4016+
if set(seed.cluster()) in [set(seed2.cluster()), init_cluster]:
40174017
end = True
40184018
if not end:
40194019
for c in seed.cluster():
40204020
if c not in var_class:
4021-
yield ClusterVariable(FractionField(seed._R), c.numerator(), c.denominator(), mutation_type=self._mutation_type, variable_type='cluster variable',xdim=seed._n)
4021+
yield ClusterVariable(FractionField(seed._R), c.numerator(), c.denominator(), mutation_type=self._mutation_type, variable_type='cluster variable', xdim=seed._n)
40224022
var_class = var_class.union(seed.cluster())
40234023
seed2.mutate(bipartition[1])
40244024
seed2.mutate(bipartition[0])
4025-
if set(seed2.cluster()) in [set(seed.cluster()),init_cluster]:
4025+
if set(seed2.cluster()) in [set(seed.cluster()), init_cluster]:
40264026
end = True
40274027
if not end:
40284028
for c in seed2.cluster():
40294029
if c not in var_class:
4030-
yield ClusterVariable(FractionField(seed._R), c.numerator(), c.denominator(), mutation_type=self._mutation_type, variable_type='cluster variable',xdim=seed._n)
4030+
yield ClusterVariable(FractionField(seed._R), c.numerator(), c.denominator(), mutation_type=self._mutation_type, variable_type='cluster variable', xdim=seed._n)
40314031
var_class = var_class.union(seed2.cluster())
40324032
return
40334033
else:
40344034
for c in seed.cluster():
40354035
if c not in var_class:
4036-
yield ClusterVariable(FractionField(seed._R), c.numerator(), c.denominator(), mutation_type=self._mutation_type, variable_type='cluster variable',xdim=seed._n)
4036+
yield ClusterVariable(FractionField(seed._R), c.numerator(), c.denominator(), mutation_type=self._mutation_type, variable_type='cluster variable', xdim=seed._n)
40374037
var_class = var_class.union(seed.cluster())
40384038

40394039
def variable_class(self, depth=infinity, ignore_bipartite_belt=False):
@@ -4120,7 +4120,7 @@ def is_mutation_finite(self, nr_of_checks=None, return_path=False):
41204120
sage: S.is_mutation_finite()
41214121
False
41224122
"""
4123-
is_finite, path = is_mutation_finite(copy(self._M),nr_of_checks=nr_of_checks)
4123+
is_finite, path = is_mutation_finite(copy(self._M), nr_of_checks=nr_of_checks)
41244124
if return_path:
41254125
return is_finite, path
41264126
else:
@@ -4403,8 +4403,8 @@ def find_upper_bound(self, verbose=False):
44034403
"""
44044404
rank = self.n()
44054405

4406-
xvars = ['x{}'.format(t) for t in range(rank)]
4407-
xpvars = ['x{}p'.format(t) for t in range(rank)]
4406+
xvars = [f'x{t}' for t in range(rank)]
4407+
xpvars = [f'x{t}p' for t in range(rank)]
44084408
gens = xvars + xpvars
44094409
initial_product = '*'.join(g for g in xvars)
44104410

@@ -4418,8 +4418,7 @@ def find_upper_bound(self, verbose=False):
44184418
for s in range(rank))
44194419
deep_gens += [neighbor_product]
44204420

4421-
rels = ["-{}*{}+{}".format(gens[t], gens[t + rank],
4422-
lower_var[t + rank].numerator())
4421+
rels = [f"-{gens[t]}*{gens[t + rank]}+{lower_var[t + rank].numerator()}"
44234422
for t in range(rank)]
44244423

44254424
while True:
@@ -4509,9 +4508,9 @@ def get_upper_cluster_algebra_element(self, a):
45094508
if len(a) != B.ncols():
45104509
raise ValueError('The length of the input vector must be the same as the number of columns of B.')
45114510
# Runs helper functions.
4512-
v = _vector_decomposition(a,B.nrows())
4511+
v = _vector_decomposition(a, B.nrows())
45134512
c = self._compute_compatible_vectors(v)
4514-
return self._produce_upper_cluster_algebra_element(v,c)
4513+
return self._produce_upper_cluster_algebra_element(v, c)
45154514

45164515
def LLM_gen_set(self, size_limit=-1):
45174516
r"""
@@ -4793,7 +4792,7 @@ def PathSubset(n, m):
47934792
sage: PathSubset(4,4)
47944793
{0, 1, 2, 3, 4, 5, 6, 7}
47954794
"""
4796-
S = set(2 * i + 1 for i in range(n))
4795+
S = {2 * i + 1 for i in range(n)}
47974796
if m > 0:
47984797
for j in range(n):
47994798
if ((j+1)*m) // n - (j*m) // n == 1:
@@ -4831,7 +4830,7 @@ def SetToPath(T):
48314830
return ans
48324831

48334832

4834-
def is_LeeLiZel_allowable(T,n,m,b,c):
4833+
def is_LeeLiZel_allowable(T, n, m, b, c):
48354834
"""
48364835
Check if the subset `T` contributes to the computation of the greedy element `x[m,n]` in the rank two `(b,c)`-cluster algebra.
48374836

src/sage/combinat/cluster_algebra_quiver/mutation_class.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ def _digraph_mutate(dg, k, frozen=None):
102102
edge_it = dg.incoming_edge_iterator(dg, True)
103103
edges = {(v1, v2): label for v1, v2, label in edge_it}
104104
edge_it = dg.incoming_edge_iterator([k], True)
105-
in_edges = [(v1, v2, label) for v1, v2, label in edge_it]
105+
in_edges = list(edge_it)
106106
edge_it = dg.outgoing_edge_iterator([k], True)
107-
out_edges = [(v1, v2, label) for v1, v2, label in edge_it]
107+
out_edges = list(edge_it)
108108

109109
in_edges_new = [(v2, v1, (-label[1], -label[0]))
110110
for (v1, v2, label) in in_edges]
@@ -151,7 +151,7 @@ def _digraph_mutate(dg, k, frozen=None):
151151
return dg_new
152152

153153

154-
def _matrix_to_digraph( M ):
154+
def _matrix_to_digraph(M):
155155
"""
156156
Return the digraph obtained from the matrix ``M``.
157157
@@ -166,15 +166,15 @@ def _matrix_to_digraph( M ):
166166
n = M.ncols()
167167

168168
dg = DiGraph(sparse=True)
169-
for i,j in M.nonzero_positions():
169+
for i, j in M.nonzero_positions():
170170
if i >= n:
171171
a, b = M[i, j], -M[i, j]
172172
else:
173173
a, b = M[i, j], M[j, i]
174174
if a > 0:
175-
dg._backend.add_edge(i,j,(a,b),True)
175+
dg._backend.add_edge(i, j, (a, b), True)
176176
elif i >= n:
177-
dg._backend.add_edge(j,i,(-a,-b),True)
177+
dg._backend.add_edge(j, i, (-a, -b), True)
178178
for i in range(M.nrows()):
179179
if i not in dg:
180180
dg.add_vertex(i)
@@ -310,7 +310,7 @@ def _mutation_class_iter( dg, n, m, depth=infinity, return_dig6=False, show_dept
310310
depth_counter = 0
311311
if up_to_equivalence:
312312
iso, orbits = _dg_canonical_form( dg, mlist )
313-
iso_inv = dict( (iso[a],a) for a in iso )
313+
iso_inv = { iso[a]: a for a in iso }
314314

315315
dig6 = _digraph_to_dig6( dg, hashable=True )
316316
dig6s = {}
@@ -328,10 +328,10 @@ def _mutation_class_iter( dg, n, m, depth=infinity, return_dig6=False, show_dept
328328
if show_depth:
329329
timer2 = time.time()
330330
dc = str(depth_counter)
331-
dc += ' ' * (5-len(dc))
331+
dc += ' ' * (5 - len(dc))
332332
nr = str(len(dig6s))
333-
nr += ' ' * (10-len(nr))
334-
print("Depth: %s found: %s Time: %.2f s" % (dc, nr, timer2 - timer))
333+
nr += ' ' * (10 - len(nr))
334+
print(f"Depth: {dc} found: {nr} Time: {timer2 - timer:.2f} s")
335335

336336
while gets_bigger and depth_counter < depth:
337337
gets_bigger = False
@@ -346,7 +346,7 @@ def _mutation_class_iter( dg, n, m, depth=infinity, return_dig6=False, show_dept
346346
if up_to_equivalence:
347347
iso, orbits = _dg_canonical_form( dg_new, mlist )
348348
i_new = iso[i]
349-
iso_inv = dict( (iso[a],a) for a in iso )
349+
iso_inv = { iso[a]: a for a in iso }
350350
else:
351351
i_new = i
352352
dig6_new = _digraph_to_dig6( dg_new, hashable=True )
@@ -357,7 +357,7 @@ def _mutation_class_iter( dg, n, m, depth=infinity, return_dig6=False, show_dept
357357
gets_bigger = True
358358
if up_to_equivalence:
359359
orbits = [ orbit[0] for orbit in orbits if i_new not in orbit ]
360-
iso_history = dict( (a, dig6s[key][2][iso_inv[a]]) for a in iso )
360+
iso_history = { a: dig6s[key][2][iso_inv[a]] for a in iso }
361361
i_history = iso_history[i_new]
362362
history = dig6s[key][1] + [i_history]
363363
dig6s[dig6_new] = [orbits,history,iso_history]
@@ -374,13 +374,13 @@ def _mutation_class_iter( dg, n, m, depth=infinity, return_dig6=False, show_dept
374374
if show_depth and gets_bigger:
375375
timer2 = time.time()
376376
dc = str(depth_counter)
377-
dc += ' ' * (5-len(dc))
377+
dc += ' ' * (5 - len(dc))
378378
nr = str(len(dig6s))
379-
nr += ' ' * (10-len(nr))
380-
print("Depth: %s found: %s Time: %.2f s" % (dc, nr, timer2 - timer))
379+
nr += ' ' * (10 - len(nr))
380+
print(f"Depth: {dc} found: {nr} Time: {timer2 - timer:.2f} s")
381381

382382

383-
def _digraph_to_dig6( dg, hashable=False ):
383+
def _digraph_to_dig6(dg, hashable=False):
384384
"""
385385
Return the dig6 and edge data of the digraph dg.
386386
@@ -487,8 +487,8 @@ def _dg_is_sink_source( dg, v ):
487487
sage: _dg_is_sink_source(dg, 2)
488488
False
489489
"""
490-
in_edges = [ edge for edge in dg._backend.iterator_in_edges([v],True) ]
491-
out_edges = [ edge for edge in dg._backend.iterator_out_edges([v],True) ]
490+
in_edges = list(dg._backend.iterator_in_edges([v],True))
491+
out_edges = list(dg._backend.iterator_out_edges([v],True))
492492
return not ( in_edges and out_edges )
493493

494494

@@ -515,8 +515,8 @@ def _graph_without_edge_labels(dg, vertices):
515515
"""
516516
vertices = list(vertices)
517517
edges = dg.edge_iterator(labels=True)
518-
edge_labels = tuple(sorted(set(label for _, _, label in edges
519-
if label != (1, -1))))
518+
edge_labels = tuple(sorted({label for _, _, label in edges
519+
if label != (1, -1)}))
520520
edge_partition = [[] for _ in edge_labels]
521521
i = 0
522522
while i in vertices:

src/sage/combinat/cluster_algebra_quiver/quiver.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,8 @@ def __init__(self, data, frozen=None, user_labels=None):
228228
user_labels = [tuple(x) if isinstance(x, list) else x for x in user_labels]
229229
elif isinstance(user_labels, dict):
230230
values = [tuple(user_labels[x]) if isinstance(user_labels[x], list) else user_labels[x] for x in user_labels]
231-
user_labels = {key: val for key, val in zip(user_labels.keys(),
232-
values)}
231+
user_labels = dict(zip(user_labels.keys(),
232+
values))
233233

234234
# constructs a quiver from a mutation type
235235
if type( data ) in [QuiverMutationType_Irreducible,QuiverMutationType_Reducible]:
@@ -635,10 +635,10 @@ def _graphs_concentric_circles(n, m):
635635
'lightgreen': partition[2]}
636636

637637
options = {
638-
'graph_border' : True,
638+
'graph_border': True,
639639
'edge_colors': color_dict,
640640
'vertex_colors': vertex_color_dict,
641-
'edge_labels' : True,
641+
'edge_labels': True,
642642
'vertex_labels': True,
643643
}
644644
if circular:
@@ -1854,11 +1854,11 @@ def mutation_class(self, depth=infinity, show_depth=False, return_paths=False,
18541854
if depth is infinity and not self.is_mutation_finite():
18551855
raise ValueError('the mutation class can - for infinite mutation'
18561856
' types - only be computed up to a given depth')
1857-
return [Q for Q in self.mutation_class_iter(depth=depth, show_depth=show_depth,
1858-
return_paths=return_paths,
1859-
data_type=data_type,
1860-
up_to_equivalence=up_to_equivalence,
1861-
sink_source=sink_source)]
1857+
return list(self.mutation_class_iter(depth=depth, show_depth=show_depth,
1858+
return_paths=return_paths,
1859+
data_type=data_type,
1860+
up_to_equivalence=up_to_equivalence,
1861+
sink_source=sink_source))
18621862

18631863
def is_finite(self):
18641864
"""

src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1686,7 +1686,7 @@ def irreducible_components(self):
16861686
sage: mut_type.irreducible_components()
16871687
(['A', 3],)
16881688
"""
1689-
return tuple([self])
1689+
return (self,)
16901690

16911691
@cached_method
16921692
def class_size(self):

0 commit comments

Comments
 (0)