Skip to content

Commit f165754

Browse files
author
Release Manager
committed
gh-40723: fix some ruff PERF in rings/ fix some suggestions of `ruff check --select=PERF src/sage/rings/` about list comprehensions ### 📝 Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: #40723 Reported by: Frédéric Chapoton Reviewer(s): Martin Rubey
2 parents 63c9ba7 + 94273a1 commit f165754

File tree

7 files changed

+26
-33
lines changed

7 files changed

+26
-33
lines changed

src/sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -633,10 +633,9 @@ def _frobenius_charpoly_gekeler(self):
633633
# The system is solved over K, but the coefficients should all
634634
# be in Fq We project back into Fq here.
635635
sol_Fq = [K(x).vector()[0] for x in sol]
636-
char_poly = []
637-
for i in range(r):
638-
char_poly.append([sol_Fq[block_shifts[i] + j]
639-
for j in range(shifts[i])])
636+
char_poly = [[sol_Fq[block_shifts[i] + j]
637+
for j in range(shifts[i])]
638+
for i in range(r)]
640639
return PolynomialRing(A, name='X')(char_poly + [1])
641640

642641
def _frobenius_charpoly_motive(self):
@@ -651,8 +650,9 @@ def _frobenius_charpoly_motive(self):
651650
Instead, use :meth:`frobenius_charpoly` with the option
652651
`algorithm='motive'`.
653652
654-
OUTPUT: a univariate polynomial with coefficients in the
655-
function ring
653+
OUTPUT:
654+
655+
a univariate polynomial with coefficients in the function ring
656656
657657
EXAMPLES::
658658

src/sage/rings/function_field/ideal.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,11 +273,11 @@ def gens_reduced(self):
273273
gens = self.gens()
274274
if len(gens) == 1:
275275
return gens
276-
candidate_gensets = []
277-
for genset in powerset(gens):
278-
if self.parent()(genset) == self:
279-
candidate_gensets.append(genset)
280-
candidate_gensets.sort(key=lambda item: (len(item), len(repr(item)), item))
276+
candidate_gensets = [genset for genset in powerset(gens)
277+
if self.parent()(genset) == self]
278+
candidate_gensets.sort(key=lambda item: (len(item),
279+
len(repr(item)),
280+
item))
281281
return candidate_gensets[0]
282282

283283
def ring(self):

src/sage/rings/function_field/ideal_polymod.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1251,9 +1251,8 @@ def _gens_two(self) -> tuple:
12511251

12521252
R = hnf.base_ring()
12531253

1254-
basis = []
1255-
for row in hnf:
1256-
basis.append(sum([c1 * c2 for c1, c2 in zip(row, O.basis())]))
1254+
basis = [sum(c1 * c2 for c1, c2 in zip(row, O.basis()))
1255+
for row in hnf]
12571256

12581257
n = len(basis)
12591258
alpha = None

src/sage/rings/function_field/jacobian_base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ def order(self, algorithm='numeric'):
540540

541541
return sum(bs)
542542

543-
def get_points(self, n):
543+
def get_points(self, n) -> list:
544544
"""
545545
Return `n` points of the Jacobian group.
546546

src/sage/rings/function_field/place_polymod.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -510,13 +510,12 @@ def to_V(e):
510510
v = O._coordinate_vector(e)
511511
vec = []
512512
for i in reversed(range(n)):
513-
q,r = v[i].quo_rem(M[i,i])
513+
q, r = v[i].quo_rem(M[i, i])
514514
v -= q * M[i]
515-
for j in range(degs[i]):
516-
vec.append(r[j])
515+
vec.extend(r[j] for j in range(degs[i]))
517516
return vector(vec)
518517

519-
def fr_V(vec): # to_O
518+
def fr_V(vec): # to_O
520519
vec = vec.list()
521520
pos = 0
522521
e = F(0)

src/sage/rings/padics/witt_vector.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -715,8 +715,7 @@ def _add_(self, other):
715715
G = []
716716
for n in range(self._prec):
717717
G_n = [self[n], other[n]]
718-
for i in range(n):
719-
G_n.append(P._eta_bar(G[i], n - i))
718+
G_n.extend(P._eta_bar(G[i], n - i) for i in range(n))
720719
G.append(G_n)
721720
sum_vec = tuple(sum(G[i]) for i in range(self._prec))
722721

@@ -753,8 +752,7 @@ def _mul_(self, other):
753752
G_n.extend(fast_char_p_power(self[i], p**(n - i))
754753
* fast_char_p_power(other[n - i], p**i)
755754
for i in range(1, n))
756-
for i in range(n):
757-
G_n.append(P._eta_bar(G[i], n - i))
755+
G_n.extend(P._eta_bar(G[i], n - i) for i in range(n))
758756
G.append(G_n)
759757
prod_vec = tuple(sum(G[i]) for i in range(self._prec))
760758

src/sage/rings/species.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -488,13 +488,10 @@ def __call__(self, *args):
488488
initial=0))
489489

490490
# gens from self
491-
gens = []
492-
for gen in G.gens():
493-
newgen = []
494-
for cyc in gen.cycle_tuples():
495-
for k in range(1, sum(Mlist[cyc[0] - 1].grade()) + 1):
496-
newgen.append(tuple([k + starts[i - 1] for i in cyc]))
497-
gens.append(newgen)
491+
gens = [[tuple([k + starts[i - 1] for i in cyc])
492+
for cyc in gen.cycle_tuples()
493+
for k in range(1, sum(Mlist[cyc[0] - 1].grade()) + 1)]
494+
for gen in G.gens()]
498495

499496
# gens from M_i and dompart
500497
P = args[0].parent()
@@ -503,9 +500,9 @@ def __call__(self, *args):
503500
K, K_dompart = M.permutation_group()
504501
for i, v in enumerate(K_dompart):
505502
pi[i].extend([start + k for k in v])
506-
for gen in K.gens():
507-
gens.append([tuple([start + k for k in cyc])
508-
for cyc in gen.cycle_tuples()])
503+
gens.extend([tuple([start + k for k in cyc])
504+
for cyc in gen.cycle_tuples()]
505+
for gen in K.gens())
509506

510507
H = PermutationGroup(gens, domain=range(1, starts[-1] + 1))
511508
return P._indices(H, pi, check=False)

0 commit comments

Comments
 (0)