Skip to content

Commit 13c8790

Browse files
author
Release Manager
committed
Trac #29881: sage.categories: Replace imports from sage.rings.all by more specific imports
`sage.rings.all` has a mixture of generic classes and implementation classes. Some of the generic and/or basic ones will probably have to be included in `sage-objects` (#29865). We prepare this by getting rid of imports from `sage.rings.all` throughout `sage.categories`. URL: https://trac.sagemath.org/29881 Reported by: mkoeppe Ticket author(s): Matthias Koeppe Reviewer(s): Travis Scrimshaw, Frédéric Chapoton
2 parents 9966288 + 82676e6 commit 13c8790

14 files changed

+22
-20
lines changed

src/sage/categories/bimodules.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ def an_instance(cls):
107107
sage: Bimodules.an_instance()
108108
Category of bimodules over Rational Field on the left and Real Field with 53 bits of precision on the right
109109
"""
110-
from sage.rings.all import QQ, RR
110+
from sage.rings.rational_field import QQ
111+
from sage.rings.real_mpfr import RR
111112
return cls(QQ, RR)
112113

113114
def _repr_object_names(self):

src/sage/categories/coalgebras_with_basis.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ def coproduct_iterated(self, n=1):
197197
if n == 1:
198198
return self.coproduct()
199199
from sage.functions.all import floor, ceil
200-
from sage.rings.all import Integer
200+
from sage.rings.integer import Integer
201201

202202
# Use coassociativity of `\Delta` to perform many coproducts simultaneously.
203203
fn = floor(Integer(n-1)/2); cn = ceil(Integer(n-1)/2)

src/sage/categories/complex_reflection_or_generalized_coxeter_groups.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ def simple_reflection_orders(self):
339339
"""
340340
one = self.one()
341341
s = self.simple_reflections()
342-
from sage.rings.all import ZZ
342+
from sage.rings.integer_ring import ZZ
343343

344344
def mult_order(x):
345345
ct = ZZ.one()

src/sage/categories/euclidean_domains.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def _test_euclidean_degree(self, **options):
148148

149149
min_degree = self.one().euclidean_degree()
150150

151-
from sage.rings.all import NN
151+
from sage.rings.semirings.non_negative_integer_semiring import NN
152152
for a in S:
153153
tester.assertIn(a.euclidean_degree(), NN)
154154
tester.assertGreaterEqual(a.euclidean_degree(), min_degree)

src/sage/categories/fields.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ def euclidean_degree(self):
559559
"""
560560
if self.is_zero():
561561
raise ValueError("euclidean degree not defined for the zero element")
562-
from sage.rings.all import ZZ
562+
from sage.rings.integer_ring import ZZ
563563
return ZZ.zero()
564564

565565
def quo_rem(self, other):

src/sage/categories/finite_complex_reflection_groups.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ def number_of_reflection_hyperplanes(self):
324324
sage: W.number_of_reflection_hyperplanes() # optional - gap3
325325
15
326326
"""
327-
from sage.rings.all import ZZ
327+
from sage.rings.integer_ring import ZZ
328328
return ZZ.sum(codeg + 1 for codeg in self.codegrees())
329329

330330
@cached_method
@@ -358,7 +358,7 @@ def number_of_reflections(self):
358358
sage: W.number_of_reflections() # optional - gap3
359359
15
360360
"""
361-
from sage.rings.all import ZZ
361+
from sage.rings.integer_ring import ZZ
362362
return ZZ.sum(deg - 1 for deg in self.degrees())
363363

364364
@cached_method
@@ -413,7 +413,7 @@ def cardinality(self):
413413
sage: W.cardinality() # optional - gap3
414414
192
415415
"""
416-
from sage.rings.all import ZZ
416+
from sage.rings.integer_ring import ZZ
417417
return ZZ.prod(self.degrees())
418418

419419
def is_well_generated(self):

src/sage/categories/finite_coxeter_groups.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
from sage.misc.lazy_attribute import lazy_attribute
1414
from sage.categories.category_with_axiom import CategoryWithAxiom
1515
from sage.categories.coxeter_groups import CoxeterGroups
16-
from sage.rings.all import AA, UniversalCyclotomicField, QQbar
17-
from sage.rings.integer_ring import ZZ
18-
1916

2017
class FiniteCoxeterGroups(CategoryWithAxiom):
2118
r"""
@@ -742,9 +739,12 @@ def permutahedron(self, point=None, base_ring=None):
742739
n = self.one().canonical_matrix().rank()
743740
weights = self.fundamental_weights()
744741
if point is None:
742+
from sage.rings.integer_ring import ZZ
745743
point = [ZZ.one()] * n
746744
v = sum(point[i-1] * weights[i] for i in weights.keys())
747745
from sage.geometry.polyhedron.constructor import Polyhedron
746+
from sage.rings.qqbar import AA, QQbar
747+
from sage.rings.universal_cyclotomic_field import UniversalCyclotomicField
748748
vertices = [v*w for w in self]
749749
if base_ring is None and v.base_ring() in [UniversalCyclotomicField(), QQbar]:
750750
vertices = [v.change_ring(AA) for v in vertices]

src/sage/categories/groups.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def free(index_set=None, names=None, **kwds):
7878
sage: F.<x,y,z> = Groups().free(); F
7979
Free Group on generators {x, y, z}
8080
"""
81-
from sage.rings.all import ZZ
81+
from sage.rings.integer_ring import ZZ
8282
if index_set in ZZ or (index_set is None and names is not None):
8383
from sage.groups.free_group import FreeGroup
8484
if names is None:

src/sage/categories/highest_weight_crystals.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ def q_dimension(self, q=None, prec=None, use_product=False):
330330
+ 36*q^12 + 44*q^13 + 57*q^14 + 70*q^15 + O(x^16)
331331
332332
"""
333-
from sage.rings.all import ZZ
333+
from sage.rings.integer_ring import ZZ
334334
WLR = self.weight_lattice_realization()
335335
I = self.index_set()
336336
mg = self.highest_weight_vectors()

src/sage/categories/lie_algebras.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ def example(self, gens=None):
166166
"""
167167
if gens is None:
168168
from sage.combinat.symmetric_group_algebra import SymmetricGroupAlgebra
169-
from sage.rings.all import QQ
169+
from sage.rings.rational_field import QQ
170170
gens = SymmetricGroupAlgebra(QQ, 3).algebra_generators()
171171
from sage.categories.examples.lie_algebras import Example
172172
return Example(gens)

src/sage/categories/loop_crystals.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
from sage.categories.map import Map
2323
from sage.graphs.dot2tex_utils import have_dot2tex
2424
from sage.functions.other import ceil
25-
from sage.rings.all import ZZ
26-
2725

2826
class LoopCrystals(Category_singleton):
2927
r"""
@@ -534,6 +532,7 @@ def is_perfect(self, ell=None):
534532
535533
Implement a version for tensor products of KR crystals.
536534
"""
535+
from sage.rings.integer_ring import ZZ
537536
if ell is None:
538537
if (self.cartan_type().dual().type() == 'BC'
539538
and self.cartan_type().rank() - 1 == self.r()):
@@ -978,6 +977,7 @@ def energy_function(self, algorithm=None):
978977

979978
if algorithm == 'definition':
980979
# Setup
980+
from sage.rings.integer_ring import ZZ
981981
energy = ZZ.zero()
982982
R_mats = [[K.R_matrix(Kp) for Kp in self.parent().crystals[i+1:]]
983983
for i,K in enumerate(self.parent().crystals)]
@@ -1179,6 +1179,7 @@ def __init__(self, B, Bp, normalization=0):
11791179
sage: [H(x) for x in hw]
11801180
[0, 1, 2, 1]
11811181
"""
1182+
from sage.rings.integer_ring import ZZ
11821183
self._B = B
11831184
self._Bp = Bp
11841185
self._R_matrix = self._B.R_matrix(self._Bp)

src/sage/categories/monoids.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def free(index_set=None, names=None, **kwds):
102102
"""
103103
if names is not None:
104104
if isinstance(names, str):
105-
from sage.rings.all import ZZ
105+
from sage.rings.integer_ring import ZZ
106106
if ',' not in names and index_set in ZZ:
107107
names = [names + repr(i) for i in range(index_set)]
108108
else:
@@ -349,7 +349,7 @@ def free(index_set=None, names=None, **kwds):
349349
"""
350350
if names is not None:
351351
if isinstance(names, str):
352-
from sage.rings.all import ZZ
352+
from sage.rings.integer_ring import ZZ
353353
if ',' not in names and index_set in ZZ:
354354
names = [names + repr(i) for i in range(index_set)]
355355
else:

src/sage/categories/regular_crystals.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ def demazure_subcrystal(self, element, reduced_word, only_support=True):
259259
([[2, 2]], [[1, 2]], 0)]
260260
"""
261261
from sage.combinat.free_module import CombinatorialFreeModule
262-
from sage.rings.all import QQ
262+
from sage.rings.rational_field import QQ
263263
C = CombinatorialFreeModule(QQ, self)
264264
D = self.demazure_operator(C(element), reduced_word)
265265
if only_support:

src/sage/categories/supercrystals.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ def character(self):
257257
B[(1, 0, 0, 0, 0)] + B[(0, 1, 0, 0, 0)] + B[(0, 0, 1, 0, 0)]
258258
+ B[(0, 0, 0, 1, 0)] + B[(0, 0, 0, 0, 1)]
259259
"""
260-
from sage.rings.all import ZZ
260+
from sage.rings.integer_ring import ZZ
261261
A = self.weight_lattice_realization().algebra(ZZ)
262262
return A.sum(A(x.weight()) for x in self)
263263

0 commit comments

Comments
 (0)