From c94bb0635b59f998a85c4d3c79f9f2df2b99c774 Mon Sep 17 00:00:00 2001 From: Alex Chandler Date: Sun, 29 Jan 2023 11:02:04 -0800 Subject: [PATCH 1/6] sage -fiximports src/sage/{coding,groups} --- src/sage/coding/bch_code.py | 4 ++-- src/sage/coding/binary_code.pyx | 2 +- src/sage/coding/code_bounds.py | 7 +++++-- src/sage/coding/code_constructions.py | 5 +++-- src/sage/coding/cyclic_code.py | 4 ++-- src/sage/coding/delsarte_bounds.py | 6 +++--- src/sage/coding/information_set_decoder.py | 6 +++++- src/sage/coding/linear_code.py | 3 ++- src/sage/groups/abelian_gps/abelian_group.py | 4 +++- .../abelian_gps/dual_abelian_group_element.py | 2 +- src/sage/groups/abelian_gps/element_base.py | 3 ++- src/sage/groups/affine_gps/affine_group.py | 2 +- src/sage/groups/class_function.py | 2 +- src/sage/groups/generic.py | 2 +- src/sage/groups/libgap_mixin.py | 4 ++-- src/sage/groups/matrix_gps/finitely_generated.py | 4 ++-- src/sage/groups/matrix_gps/group_element.pyx | 2 +- .../groups/perm_gps/partn_ref/data_structures.pyx | 4 ++-- .../perm_gps/partn_ref/refinement_matrices.pyx | 2 +- src/sage/groups/perm_gps/permgroup.py | 13 +++++++------ src/sage/groups/perm_gps/permgroup_element.pyx | 7 ++++--- src/sage/groups/perm_gps/permgroup_named.py | 5 +++-- 22 files changed, 54 insertions(+), 39 deletions(-) diff --git a/src/sage/coding/bch_code.py b/src/sage/coding/bch_code.py index 1666c5c4380..7b44b6680ea 100644 --- a/src/sage/coding/bch_code.py +++ b/src/sage/coding/bch_code.py @@ -27,8 +27,8 @@ from sage.modules.free_module_element import vector from sage.misc.misc_c import prod from sage.categories.fields import Fields -from sage.arith.all import gcd -from sage.rings.all import Zmod +from sage.arith.misc import GCD as gcd +from sage.rings.finite_rings.integer_mod_ring import IntegerModRing as Zmod from .cyclic_code import CyclicCode from .grs_code import GeneralizedReedSolomonCode diff --git a/src/sage/coding/binary_code.pyx b/src/sage/coding/binary_code.pyx index 408c1f55634..630cba27f36 100644 --- a/src/sage/coding/binary_code.pyx +++ b/src/sage/coding/binary_code.pyx @@ -4103,7 +4103,7 @@ cdef class BinaryCodeClassifier: m = BinaryCode(matrix(ZZ, rs)) m_aut_gp_gens, m_labeling, m_size, m_base = self._aut_gp_and_can_label(m) - from sage.arith.all import factorial + from sage.arith.misc import factorial if True: # size*factorial(n-B.ncols) == m_size: if len(m_aut_gp_gens) == 0: diff --git a/src/sage/coding/code_bounds.py b/src/sage/coding/code_bounds.py index 430f3a44de1..138b2e59aa8 100644 --- a/src/sage/coding/code_bounds.py +++ b/src/sage/coding/code_bounds.py @@ -174,9 +174,12 @@ # **************************************************************************** from sage.libs.gap.libgap import libgap -from sage.rings.all import QQ, RR, ZZ, RDF +from sage.rings.rational_field import Q as QQ +from sage.rings.real_mpfr import RR +from sage.rings.integer_ring import Z as ZZ +from sage.rings.real_double import RDF from sage.arith.misc import is_prime_power -from sage.arith.all import binomial +from sage.arith.misc import binomial from sage.misc.functional import sqrt, log from .delsarte_bounds import (delsarte_bound_hamming_space, delsarte_bound_additive_hamming_space) diff --git a/src/sage/coding/code_constructions.py b/src/sage/coding/code_constructions.py index ec50c75dd9c..587de2d431d 100644 --- a/src/sage/coding/code_constructions.py +++ b/src/sage/coding/code_constructions.py @@ -41,7 +41,8 @@ # **************************************************************************** from sage.misc.misc_c import prod -from sage.arith.all import quadratic_residues, gcd +from sage.arith.misc import quadratic_residues +from sage.arith.misc import GCD as gcd from sage.structure.sequence import Sequence, Sequence_generic @@ -753,7 +754,7 @@ def ToricCode(P,F): - David Joyner (07-2006) """ - from sage.combinat.all import Tuples + from sage.combinat.tuple import Tuples mset = [x for x in F if x != 0] d = len(P[0]) pts = Tuples(mset, d).list() diff --git a/src/sage/coding/cyclic_code.py b/src/sage/coding/cyclic_code.py index 93ce9730f49..f0a501739ea 100644 --- a/src/sage/coding/cyclic_code.py +++ b/src/sage/coding/cyclic_code.py @@ -41,11 +41,11 @@ from copy import copy from sage.rings.integer import Integer from sage.categories.homset import Hom -from sage.arith.all import gcd +from sage.arith.misc import GCD as gcd from sage.modules.free_module_element import vector from sage.matrix.constructor import matrix from sage.misc.cachefunc import cached_method -from sage.rings.all import Zmod +from sage.rings.finite_rings.integer_mod_ring import IntegerModRing as Zmod def find_generator_polynomial(code, check=True): diff --git a/src/sage/coding/delsarte_bounds.py b/src/sage/coding/delsarte_bounds.py index 15d5ade7887..db6b0c4f959 100644 --- a/src/sage/coding/delsarte_bounds.py +++ b/src/sage/coding/delsarte_bounds.py @@ -102,7 +102,7 @@ def krawtchouk(n, q, l, x, check=True): ... TypeError: no conversion of this rational to integer """ - from sage.arith.all import binomial + from sage.arith.misc import binomial from sage.arith.srange import srange # Use the expression in equation (55) of MacWilliams & Sloane, pg 151 # We write jth term = some_factor * (j-1)th term @@ -171,7 +171,7 @@ def eberlein(n, w, k, u, check=True): TypeError: either m or x-m must be an integer """ - from sage.arith.all import binomial + from sage.arith.misc import binomial from sage.arith.srange import srange if 2*w > n: @@ -275,7 +275,7 @@ def _delsarte_cwc_LP_building(n, d, w, solver, isinteger): """ from sage.numerical.mip import MixedIntegerLinearProgram - from sage.arith.all import binomial + from sage.arith.misc import binomial p = MixedIntegerLinearProgram(maximization=True, solver=solver) A = p.new_variable(integer=isinteger, nonnegative=True) diff --git a/src/sage/coding/information_set_decoder.py b/src/sage/coding/information_set_decoder.py index a2cbf94fc5e..f86ac617061 100644 --- a/src/sage/coding/information_set_decoder.py +++ b/src/sage/coding/information_set_decoder.py @@ -40,7 +40,11 @@ # http://www.gnu.org/licenses/ #****************************************************************************** -from sage.all import ZZ, Integer, vector, SageObject, binomial +from sage.rings.integer_ring import Z as ZZ +from sage.rings.integer import Integer +from sage.modules.free_module_element import free_module_element as vector +from sage.structure.sage_object import SageObject +from sage.functions.other import binomial from .decoder import Decoder diff --git a/src/sage/coding/linear_code.py b/src/sage/coding/linear_code.py index a3ac3ca1547..f3994a0f983 100644 --- a/src/sage/coding/linear_code.py +++ b/src/sage/coding/linear_code.py @@ -214,7 +214,8 @@ class should inherit from this class. Also ``AbstractLinearCode`` should never from sage.matrix.matrix_space import MatrixSpace from sage.modules.free_module import VectorSpace from sage.modules.free_module_element import vector -from sage.arith.all import GCD, binomial +from sage.arith.misc import GCD +from sage.arith.misc import binomial from sage.groups.all import SymmetricGroup from sage.groups.perm_gps.permgroup import PermutationGroup from sage.rings.rational_field import QQ diff --git a/src/sage/groups/abelian_gps/abelian_group.py b/src/sage/groups/abelian_gps/abelian_group.py index a56ae71d8bd..dd22be822c4 100644 --- a/src/sage/groups/abelian_gps/abelian_group.py +++ b/src/sage/groups/abelian_gps/abelian_group.py @@ -207,7 +207,9 @@ from sage.structure.category_object import normalize_names from sage.structure.unique_representation import UniqueRepresentation from sage.rings.infinity import infinity -from sage.arith.all import divisors, gcd, lcm +from sage.arith.misc import divisors +from sage.arith.misc import GCD as gcd +from sage.arith.functions import lcm from sage.groups.abelian_gps.abelian_group_element import AbelianGroupElement from sage.misc.cachefunc import cached_method from sage.misc.misc_c import prod diff --git a/src/sage/groups/abelian_gps/dual_abelian_group_element.py b/src/sage/groups/abelian_gps/dual_abelian_group_element.py index 18fac135c94..685e4355780 100644 --- a/src/sage/groups/abelian_gps/dual_abelian_group_element.py +++ b/src/sage/groups/abelian_gps/dual_abelian_group_element.py @@ -52,7 +52,7 @@ # (at your option) any later version. # https://www.gnu.org/licenses/ # **************************************************************************** -from sage.arith.all import LCM +from sage.arith.functions import lcm as LCM from sage.groups.abelian_gps.element_base import AbelianGroupElementBase diff --git a/src/sage/groups/abelian_gps/element_base.py b/src/sage/groups/abelian_gps/element_base.py index c1eec7ecb1f..cb31fe18d37 100644 --- a/src/sage/groups/abelian_gps/element_base.py +++ b/src/sage/groups/abelian_gps/element_base.py @@ -20,7 +20,8 @@ from sage.structure.element import MultiplicativeGroupElement from sage.misc.cachefunc import cached_method -from sage.arith.all import GCD, LCM +from sage.arith.misc import GCD +from sage.arith.functions import lcm as LCM from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ from sage.rings.infinity import infinity diff --git a/src/sage/groups/affine_gps/affine_group.py b/src/sage/groups/affine_gps/affine_group.py index cef1788deea..44d6bf94900 100644 --- a/src/sage/groups/affine_gps/affine_group.py +++ b/src/sage/groups/affine_gps/affine_group.py @@ -21,7 +21,7 @@ from sage.categories.groups import Groups from sage.groups.matrix_gps.linear import GL from sage.categories.rings import Rings -from sage.matrix.all import MatrixSpace +from sage.matrix.matrix_space import MatrixSpace from sage.modules.all import FreeModule from sage.structure.unique_representation import UniqueRepresentation from sage.misc.cachefunc import cached_method diff --git a/src/sage/groups/class_function.py b/src/sage/groups/class_function.py index 56be7eedb29..f8ba10a4c2a 100644 --- a/src/sage/groups/class_function.py +++ b/src/sage/groups/class_function.py @@ -27,7 +27,7 @@ from sage.structure.richcmp import richcmp, richcmp_method from sage.interfaces.gap import gap from sage.rings.integer import Integer -from sage.rings.all import CyclotomicField +from sage.rings.number_field.number_field import CyclotomicField from sage.libs.gap.element import GapElement from sage.libs.gap.libgap import libgap from sage.libs.gap.element import GapElement as LibGapElement diff --git a/src/sage/groups/generic.py b/src/sage/groups/generic.py index d5823ebf9e0..33e92d43ca5 100644 --- a/src/sage/groups/generic.py +++ b/src/sage/groups/generic.py @@ -935,7 +935,7 @@ def discrete_log(a, base, ord=None, bounds=None, operation='*', identity=None, i if running_mod > bound: break # we have log%running_mod. if we know that log 0 and self.cardinality() % q): - from sage.all import Matrix + from sage.matrix.constructor import Matrix try: elements = [g.matrix() for g in self.list()] except (TypeError, ValueError): diff --git a/src/sage/groups/matrix_gps/group_element.pyx b/src/sage/groups/matrix_gps/group_element.pyx index 777b141beb0..4d0312efdf9 100644 --- a/src/sage/groups/matrix_gps/group_element.pyx +++ b/src/sage/groups/matrix_gps/group_element.pyx @@ -687,7 +687,7 @@ cdef class MatrixGroupElement_gap(ElementLibGAP): return order.sage() else: assert order.IsInfinity() - from sage.rings.all import Infinity + from sage.rings.infinity import Infinity return Infinity def word_problem(self, gens=None): diff --git a/src/sage/groups/perm_gps/partn_ref/data_structures.pyx b/src/sage/groups/perm_gps/partn_ref/data_structures.pyx index 74065fe1fec..841368e81e8 100644 --- a/src/sage/groups/perm_gps/partn_ref/data_structures.pyx +++ b/src/sage/groups/perm_gps/partn_ref/data_structures.pyx @@ -1411,7 +1411,7 @@ def SC_test_list_perms(list L, int n, int limit, bint gap, bint limit_complain, if SC_is_giant(n, len(L), perm, 0.9, giant_support): giant = True m = bitset_len(giant_support) - from sage.arith.all import factorial + from sage.arith.misc import factorial if not (order == factorial(m) or order == factorial(m)/2): print("SC_is_giant failed: %s %s"%(str(L), order)) raise AssertionError @@ -1530,7 +1530,7 @@ def SC_test_list_perms(list L, int n, int limit, bint gap, bint limit_complain, perm[n*j + i] = Lperm[i] j += 1 if SC_is_giant(n, len(L), perm, 0.9, giant_support): - from sage.arith.all import factorial + from sage.arith.misc import factorial m = bitset_len(giant_support) if order != factorial(m) and order != factorial(m)/2: print("SC_is_giant failed: %s %s"%(str(L), order)) diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pyx b/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pyx index 736659318d6..71f09ccc90f 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pyx +++ b/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pyx @@ -337,7 +337,7 @@ def random_tests(n=10, nrows_max=50, ncols_max=50, nsymbols_max=10, perms_per_ma from sage.combinat.permutation import Permutations from sage.matrix.constructor import random_matrix, matrix from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF - from sage.arith.all import next_prime + from sage.arith.misc import next_prime cdef int h, i, j, nrows, k, num_tests = 0, num_matrices = 0 cdef MatrixStruct M, N for m in range(n): diff --git a/src/sage/groups/perm_gps/permgroup.py b/src/sage/groups/perm_gps/permgroup.py index be5e3372d6f..ba7b5d90a09 100644 --- a/src/sage/groups/perm_gps/permgroup.py +++ b/src/sage/groups/perm_gps/permgroup.py @@ -141,7 +141,8 @@ from sage.misc.randstate import current_randstate from sage.groups.group import FiniteGroup -from sage.rings.all import QQ, Integer +from sage.rings.rational_field import Q as QQ +from sage.rings.integer import Integer from sage.interfaces.abc import ExpectElement, GapElement from sage.libs.gap.libgap import libgap from sage.libs.gap.element import GapElement as LibGapElement @@ -151,7 +152,7 @@ from sage.misc.cachefunc import cached_method from sage.groups.class_function import ClassFunction_libgap from sage.sets.finite_enumerated_set import FiniteEnumeratedSet -from sage.categories.all import FiniteEnumeratedSets +from sage.categories.finite_enumerated_sets import FiniteEnumeratedSets from sage.groups.conjugacy_classes import ConjugacyClassGAP from sage.structure.richcmp import (richcmp_method, richcmp, rich_to_bool, op_EQ, op_NE) @@ -195,7 +196,7 @@ def hap_decorator(f): @wraps(f) def wrapped(self, n, p=0): load_hap() - from sage.arith.all import is_prime + from sage.arith.misc import is_prime if not (p == 0 or is_prime(p)): raise ValueError("p must be 0 or prime") @@ -3421,13 +3422,13 @@ def character_table(self): irrG = G.Irr() ct = [[irrG[i, j] for j in range(n)] for i in range(n)] - from sage.rings.all import CyclotomicField + from sage.rings.number_field.number_field import CyclotomicField e = irrG.Flat().Conductor() K = CyclotomicField(e) ct = [[K(x) for x in v] for v in ct] # Finally return the result as a matrix. - from sage.matrix.all import MatrixSpace + from sage.matrix.matrix_space import MatrixSpace MS = MatrixSpace(K, n) return MS(ct) @@ -4742,7 +4743,7 @@ def poincare_series(self, p=2, n=10): """ load_hap() - from sage.arith.all import is_prime + from sage.arith.misc import is_prime if not (p == 0 or is_prime(p)): raise ValueError("p must be 0 or prime") diff --git a/src/sage/groups/perm_gps/permgroup_element.pyx b/src/sage/groups/perm_gps/permgroup_element.pyx index d81fe55f5e7..1ea9a767fe7 100644 --- a/src/sage/groups/perm_gps/permgroup_element.pyx +++ b/src/sage/groups/perm_gps/permgroup_element.pyx @@ -121,11 +121,12 @@ from cpython.list cimport * from cypari2.gen cimport Gen from sage.ext.stdsage cimport HAS_DICTIONARY -from sage.rings.all import ZZ, Integer -from sage.rings.polynomial.polynomial_element import Polynomial +from sage.rings.integer_ring import ZZ +from sage.rings.integer import Integer from sage.rings.polynomial.multi_polynomial import MPolynomial +from sage.rings.polynomial.polynomial_element import Polynomial from sage.structure.element import is_Matrix -from sage.matrix.all import MatrixSpace +from sage.matrix.matrix_space import MatrixSpace from sage.sets.finite_enumerated_set import FiniteEnumeratedSet import sage.structure.coerce as coerce from sage.structure.richcmp cimport richcmp_not_equal, rich_to_bool diff --git a/src/sage/groups/perm_gps/permgroup_named.py b/src/sage/groups/perm_gps/permgroup_named.py index 4fb4a094244..8e242c11446 100644 --- a/src/sage/groups/perm_gps/permgroup_named.py +++ b/src/sage/groups/perm_gps/permgroup_named.py @@ -86,10 +86,11 @@ # **************************************************************************** from pathlib import Path -from sage.rings.all import Integer +from sage.rings.integer import Integer from sage.libs.gap.libgap import libgap from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF -from sage.arith.all import factor, valuation +from sage.arith.misc import factor +from sage.arith.misc import valuation from sage.groups.abelian_gps.abelian_group import AbelianGroup from sage.misc.functional import is_even from sage.misc.cachefunc import cached_method, weak_cached_function From b4ec50e1158235fb549460950f67b12d6fa2979b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 29 Jan 2023 18:17:32 -0800 Subject: [PATCH 2/6] git grep -l -E ' (Q as QQ|Z as ZZ)' | xargs sed -i.bak 's/ Q as QQ/ QQ/;s/ Z as ZZ/ ZZ/;' --- src/sage/coding/code_bounds.py | 4 ++-- src/sage/coding/information_set_decoder.py | 2 +- src/sage/groups/perm_gps/permgroup.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/coding/code_bounds.py b/src/sage/coding/code_bounds.py index 138b2e59aa8..85b2b48ea3a 100644 --- a/src/sage/coding/code_bounds.py +++ b/src/sage/coding/code_bounds.py @@ -174,9 +174,9 @@ # **************************************************************************** from sage.libs.gap.libgap import libgap -from sage.rings.rational_field import Q as QQ +from sage.rings.rational_field import QQ from sage.rings.real_mpfr import RR -from sage.rings.integer_ring import Z as ZZ +from sage.rings.integer_ring import ZZ from sage.rings.real_double import RDF from sage.arith.misc import is_prime_power from sage.arith.misc import binomial diff --git a/src/sage/coding/information_set_decoder.py b/src/sage/coding/information_set_decoder.py index f86ac617061..499eeb44997 100644 --- a/src/sage/coding/information_set_decoder.py +++ b/src/sage/coding/information_set_decoder.py @@ -40,7 +40,7 @@ # http://www.gnu.org/licenses/ #****************************************************************************** -from sage.rings.integer_ring import Z as ZZ +from sage.rings.integer_ring import ZZ from sage.rings.integer import Integer from sage.modules.free_module_element import free_module_element as vector from sage.structure.sage_object import SageObject diff --git a/src/sage/groups/perm_gps/permgroup.py b/src/sage/groups/perm_gps/permgroup.py index ba7b5d90a09..89c36ca2579 100644 --- a/src/sage/groups/perm_gps/permgroup.py +++ b/src/sage/groups/perm_gps/permgroup.py @@ -141,7 +141,7 @@ from sage.misc.randstate import current_randstate from sage.groups.group import FiniteGroup -from sage.rings.rational_field import Q as QQ +from sage.rings.rational_field import QQ from sage.rings.integer import Integer from sage.interfaces.abc import ExpectElement, GapElement from sage.libs.gap.libgap import libgap From f1861a9195395f448eb462554bcf4047c3e14b43 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 29 Jan 2023 18:22:50 -0800 Subject: [PATCH 3/6] sage.{coding,groups}: Consolidate imports from the same module --- src/sage/coding/code_bounds.py | 10 +++--- src/sage/coding/code_constructions.py | 14 +++------ src/sage/coding/linear_code.py | 33 ++++++++++---------- src/sage/groups/abelian_gps/abelian_group.py | 21 ++++++------- src/sage/groups/perm_gps/permgroup_named.py | 25 +++++++-------- 5 files changed, 49 insertions(+), 54 deletions(-) diff --git a/src/sage/coding/code_bounds.py b/src/sage/coding/code_bounds.py index 85b2b48ea3a..766a8f266cf 100644 --- a/src/sage/coding/code_bounds.py +++ b/src/sage/coding/code_bounds.py @@ -173,14 +173,14 @@ # https://www.gnu.org/licenses/ # **************************************************************************** +from sage.arith.misc import binomial, is_prime_power from sage.libs.gap.libgap import libgap -from sage.rings.rational_field import QQ -from sage.rings.real_mpfr import RR +from sage.misc.functional import sqrt, log from sage.rings.integer_ring import ZZ +from sage.rings.rational_field import QQ from sage.rings.real_double import RDF -from sage.arith.misc import is_prime_power -from sage.arith.misc import binomial -from sage.misc.functional import sqrt, log +from sage.rings.real_mpfr import RR + from .delsarte_bounds import (delsarte_bound_hamming_space, delsarte_bound_additive_hamming_space) from sage.features.gap import GapPackage diff --git a/src/sage/coding/code_constructions.py b/src/sage/coding/code_constructions.py index 587de2d431d..050793b41e9 100644 --- a/src/sage/coding/code_constructions.py +++ b/src/sage/coding/code_constructions.py @@ -40,21 +40,17 @@ # https://www.gnu.org/licenses/ # **************************************************************************** -from sage.misc.misc_c import prod -from sage.arith.misc import quadratic_residues -from sage.arith.misc import GCD as gcd - -from sage.structure.sequence import Sequence, Sequence_generic - -from sage.matrix.matrix_space import MatrixSpace +from sage.arith.misc import GCD as gcd, quadratic_residues from sage.matrix.constructor import matrix +from sage.matrix.matrix_space import MatrixSpace from sage.matrix.special import random_matrix - +from sage.misc.misc_c import prod from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF from sage.rings.finite_rings.integer_mod import Mod from sage.rings.finite_rings.integer_mod_ring import IntegerModRing -from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.integer import Integer +from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing +from sage.structure.sequence import Sequence, Sequence_generic from .linear_code import LinearCode diff --git a/src/sage/coding/linear_code.py b/src/sage/coding/linear_code.py index f3994a0f983..127c76a2054 100644 --- a/src/sage/coding/linear_code.py +++ b/src/sage/coding/linear_code.py @@ -205,33 +205,34 @@ class should inherit from this class. Also ``AbstractLinearCode`` should never import os import subprocess -from io import StringIO from copy import copy +from io import StringIO -from sage.cpython.string import bytes_to_str +from sage.arith.misc import binomial, GCD from sage.categories.cartesian_product import cartesian_product from sage.categories.fields import Fields +from sage.combinat.subset import Subsets +from sage.cpython.string import bytes_to_str +from sage.features.gap import GapPackage +from sage.groups.all import SymmetricGroup +from sage.groups.perm_gps.permgroup import PermutationGroup +from sage.interfaces.gap import gap from sage.matrix.matrix_space import MatrixSpace +from sage.misc.cachefunc import cached_method +from sage.misc.functional import is_even +from sage.misc.misc_c import prod +from sage.misc.randstate import current_randstate from sage.modules.free_module import VectorSpace from sage.modules.free_module_element import vector -from sage.arith.misc import GCD -from sage.arith.misc import binomial -from sage.groups.all import SymmetricGroup -from sage.groups.perm_gps.permgroup import PermutationGroup -from sage.rings.rational_field import QQ +from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF +from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -from sage.rings.integer import Integer -from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF -from sage.misc.misc_c import prod -from sage.misc.functional import is_even -from sage.misc.cachefunc import cached_method -from sage.misc.randstate import current_randstate -from sage.combinat.subset import Subsets -from sage.features.gap import GapPackage -from sage.coding.linear_code_no_metric import AbstractLinearCodeNoMetric +from sage.rings.rational_field import QQ + from .encoder import Encoder from .decoder import Decoder +from .linear_code_no_metric import AbstractLinearCodeNoMetric # ***************************************************************************** # coding theory functions diff --git a/src/sage/groups/abelian_gps/abelian_group.py b/src/sage/groups/abelian_gps/abelian_group.py index dd22be822c4..252fb13fbcb 100644 --- a/src/sage/groups/abelian_gps/abelian_group.py +++ b/src/sage/groups/abelian_gps/abelian_group.py @@ -202,23 +202,22 @@ # https://www.gnu.org/licenses/ # **************************************************************************** -from sage.rings.integer import Integer -from sage.rings.integer_ring import ZZ -from sage.structure.category_object import normalize_names -from sage.structure.unique_representation import UniqueRepresentation -from sage.rings.infinity import infinity -from sage.arith.misc import divisors -from sage.arith.misc import GCD as gcd from sage.arith.functions import lcm +from sage.arith.misc import divisors, GCD as gcd +from sage.categories.groups import Groups from sage.groups.abelian_gps.abelian_group_element import AbelianGroupElement -from sage.misc.cachefunc import cached_method -from sage.misc.misc_c import prod -from sage.misc.mrange import mrange, cartesian_product_iterator from sage.groups.group import AbelianGroup as AbelianGroupBase -from sage.categories.groups import Groups from sage.matrix.constructor import matrix from sage.matrix.special import diagonal_matrix +from sage.misc.cachefunc import cached_method +from sage.misc.misc_c import prod +from sage.misc.mrange import cartesian_product_iterator, mrange from sage.modules.free_module_element import vector +from sage.rings.infinity import infinity +from sage.rings.integer import Integer +from sage.rings.integer_ring import ZZ +from sage.structure.category_object import normalize_names +from sage.structure.unique_representation import UniqueRepresentation # TODO: this uses perm groups - the AbelianGroupElement instance method diff --git a/src/sage/groups/perm_gps/permgroup_named.py b/src/sage/groups/perm_gps/permgroup_named.py index 8e242c11446..d5f9aeaf9ab 100644 --- a/src/sage/groups/perm_gps/permgroup_named.py +++ b/src/sage/groups/perm_gps/permgroup_named.py @@ -86,25 +86,24 @@ # **************************************************************************** from pathlib import Path -from sage.rings.integer import Integer -from sage.libs.gap.libgap import libgap -from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF -from sage.arith.misc import factor -from sage.arith.misc import valuation +from sage.arith.misc import factor, valuation +from sage.categories.finite_enumerated_sets import FiniteEnumeratedSets from sage.groups.abelian_gps.abelian_group import AbelianGroup -from sage.misc.functional import is_even -from sage.misc.cachefunc import cached_method, weak_cached_function from sage.groups.perm_gps.permgroup import PermutationGroup_generic from sage.groups.perm_gps.permgroup_element import SymmetricGroupElement -from sage.structure.unique_representation import CachedRepresentation -from sage.structure.parent import Parent -from sage.structure.richcmp import richcmp -from sage.categories.finite_enumerated_sets import FiniteEnumeratedSets -from sage.sets.finite_enumerated_set import FiniteEnumeratedSet +from sage.libs.gap.libgap import libgap +from sage.misc.cachefunc import cached_method, weak_cached_function +from sage.misc.functional import is_even +from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF +from sage.rings.integer import Integer from sage.sets.disjoint_union_enumerated_sets import DisjointUnionEnumeratedSets -from sage.sets.non_negative_integers import NonNegativeIntegers from sage.sets.family import Family +from sage.sets.finite_enumerated_set import FiniteEnumeratedSet +from sage.sets.non_negative_integers import NonNegativeIntegers from sage.sets.primes import Primes +from sage.structure.parent import Parent +from sage.structure.richcmp import richcmp +from sage.structure.unique_representation import CachedRepresentation class PermutationGroup_unique(CachedRepresentation, PermutationGroup_generic): From 34b9b184e65593de25ce909e4e99ac809d438055 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 29 Jan 2023 18:23:52 -0800 Subject: [PATCH 4/6] src/sage/coding/delsarte_bounds.py: Remove useless import in doctest --- src/sage/coding/delsarte_bounds.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/coding/delsarte_bounds.py b/src/sage/coding/delsarte_bounds.py index db6b0c4f959..52eb8ce746c 100644 --- a/src/sage/coding/delsarte_bounds.py +++ b/src/sage/coding/delsarte_bounds.py @@ -602,7 +602,6 @@ def _delsarte_Q_LP_building(q, d, solver, isinteger): EXAMPLES:: sage: from sage.coding.delsarte_bounds import _delsarte_Q_LP_building - sage: from sage.all import * sage: q = Matrix([[codes.bounds.krawtchouk(6,2,i,j) for j in range(7)] for i in range(7)]) sage: _, p = _delsarte_Q_LP_building(q, 2, "PPL", False) sage: p.show() From 62436f9778374492aef288848f7c793ab71f0385 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 14 Feb 2023 11:59:30 -0800 Subject: [PATCH 5/6] git grep -l 'GCD as gcd' src/sage/{coding,groups} | xargs sed -i.bak 's/GCD as gcd/gcd/' --- src/sage/coding/bch_code.py | 2 +- src/sage/coding/code_constructions.py | 2 +- src/sage/coding/cyclic_code.py | 2 +- src/sage/groups/abelian_gps/abelian_group.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/coding/bch_code.py b/src/sage/coding/bch_code.py index 7b44b6680ea..96d4691e554 100644 --- a/src/sage/coding/bch_code.py +++ b/src/sage/coding/bch_code.py @@ -27,7 +27,7 @@ from sage.modules.free_module_element import vector from sage.misc.misc_c import prod from sage.categories.fields import Fields -from sage.arith.misc import GCD as gcd +from sage.arith.misc import gcd from sage.rings.finite_rings.integer_mod_ring import IntegerModRing as Zmod from .cyclic_code import CyclicCode diff --git a/src/sage/coding/code_constructions.py b/src/sage/coding/code_constructions.py index 050793b41e9..812d5d88df9 100644 --- a/src/sage/coding/code_constructions.py +++ b/src/sage/coding/code_constructions.py @@ -40,7 +40,7 @@ # https://www.gnu.org/licenses/ # **************************************************************************** -from sage.arith.misc import GCD as gcd, quadratic_residues +from sage.arith.misc import gcd, quadratic_residues from sage.matrix.constructor import matrix from sage.matrix.matrix_space import MatrixSpace from sage.matrix.special import random_matrix diff --git a/src/sage/coding/cyclic_code.py b/src/sage/coding/cyclic_code.py index f0a501739ea..77b72d4ba95 100644 --- a/src/sage/coding/cyclic_code.py +++ b/src/sage/coding/cyclic_code.py @@ -41,7 +41,7 @@ from copy import copy from sage.rings.integer import Integer from sage.categories.homset import Hom -from sage.arith.misc import GCD as gcd +from sage.arith.misc import gcd from sage.modules.free_module_element import vector from sage.matrix.constructor import matrix from sage.misc.cachefunc import cached_method diff --git a/src/sage/groups/abelian_gps/abelian_group.py b/src/sage/groups/abelian_gps/abelian_group.py index 252fb13fbcb..41b0e2c9eca 100644 --- a/src/sage/groups/abelian_gps/abelian_group.py +++ b/src/sage/groups/abelian_gps/abelian_group.py @@ -203,7 +203,7 @@ # **************************************************************************** from sage.arith.functions import lcm -from sage.arith.misc import divisors, GCD as gcd +from sage.arith.misc import divisors, gcd from sage.categories.groups import Groups from sage.groups.abelian_gps.abelian_group_element import AbelianGroupElement from sage.groups.group import AbelianGroup as AbelianGroupBase From cec7c2f2f0d1badc62a6f7efc72ec8bd98dfe390 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 16 Feb 2023 10:20:29 -0800 Subject: [PATCH 6/6] Replace relative imports by absolute imports because pytest --- src/sage/coding/linear_code.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/sage/coding/linear_code.py b/src/sage/coding/linear_code.py index 127c76a2054..f8d749b23c6 100644 --- a/src/sage/coding/linear_code.py +++ b/src/sage/coding/linear_code.py @@ -211,6 +211,9 @@ class should inherit from this class. Also ``AbstractLinearCode`` should never from sage.arith.misc import binomial, GCD from sage.categories.cartesian_product import cartesian_product from sage.categories.fields import Fields +from sage.coding.decoder import Decoder +from sage.coding.encoder import Encoder +from sage.coding.linear_code_no_metric import AbstractLinearCodeNoMetric from sage.combinat.subset import Subsets from sage.cpython.string import bytes_to_str from sage.features.gap import GapPackage @@ -230,10 +233,6 @@ class should inherit from this class. Also ``AbstractLinearCode`` should never from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.rational_field import QQ -from .encoder import Encoder -from .decoder import Decoder -from .linear_code_no_metric import AbstractLinearCodeNoMetric - # ***************************************************************************** # coding theory functions # *****************************************************************************