Skip to content

Commit

Permalink
formal deprecation for Dedekind domains (sigh)
Browse files Browse the repository at this point in the history
  • Loading branch information
fchapoton committed Feb 6, 2024
1 parent 426d838 commit 28daf53
Show file tree
Hide file tree
Showing 19 changed files with 79 additions and 54 deletions.
4 changes: 2 additions & 2 deletions src/sage/categories/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,9 @@ def __contains__(self, x):
0
"""
import sage.rings.ring
from sage.rings.ring import _is_Field
try:
return self._contains_helper(x) or sage.rings.ring._is_Field(x)
return self._contains_helper(x) or _is_Field(x)
except Exception:
return False

Expand Down
4 changes: 2 additions & 2 deletions src/sage/modular/pollack_stevens/distributions.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
from sage.categories.modules import Modules
from sage.structure.factory import UniqueFactory

import sage.rings.ring as ring
from sage.rings.ring import Ring

lazy_import('sage.modular.pollack_stevens.dist', 'get_dist_classes')
lazy_import('sage.rings.padics.factory', ['ZpCA', 'QpCR'])
Expand Down Expand Up @@ -281,7 +281,7 @@ def __init__(self, k, p=None, prec_cap=None, base=None, character=None,
...
ValueError: p must be prime
"""
if not isinstance(base, ring.Ring):
if not isinstance(base, Ring):
raise TypeError("base must be a ring")
#from sage.rings.padics.pow_computer import PowComputer
# should eventually be the PowComputer on ZpCA once that uses longs.
Expand Down
7 changes: 4 additions & 3 deletions src/sage/modules/free_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
import sage.rings.integer
import sage.rings.integer_ring
import sage.rings.rational_field
import sage.rings.ring as ring
from sage.rings.ring import IntegralDomain, is_Ring
from sage.categories.infinite_enumerated_sets import InfiniteEnumeratedSets
from sage.categories.integral_domains import IntegralDomains
from sage.categories.principal_ideal_domains import PrincipalIdealDomains
Expand All @@ -213,6 +213,7 @@
)
from sage.structure.sequence import Sequence


###############################################################################
#
# Constructor functions
Expand Down Expand Up @@ -294,7 +295,7 @@ def create_object(self, version, key):
and base_ring.is_maximal() and base_ring.class_number() == 1):
return FreeModule_ambient_pid(base_ring, rank, sparse=sparse)

if isinstance(base_ring, ring.IntegralDomain) or base_ring in IntegralDomains():
if isinstance(base_ring, IntegralDomain) or base_ring in IntegralDomains():
return FreeModule_ambient_domain(base_ring, rank, sparse=sparse)

return FreeModule_ambient(base_ring, rank, sparse=sparse)
Expand Down Expand Up @@ -725,7 +726,7 @@ def span(gens, base_ring=None, check=True, already_echelonized=False):
TypeError: generators must be lists of ring elements
or free module elements!
"""
if ring.is_Ring(gens):
if is_Ring(gens):
# we allow the old input format with first input the base_ring.
# Do we want to deprecate it?..
base_ring, gens = gens, base_ring
Expand Down
6 changes: 3 additions & 3 deletions src/sage/modules/free_quadratic_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@

import sage.matrix.matrix_space
import sage.misc.latex as latex
import sage.rings.ring as ring
from sage.rings.ring import Field, IntegralDomain
from sage.categories.principal_ideal_domains import PrincipalIdealDomains
from sage.modules import free_module

Expand Down Expand Up @@ -174,7 +174,7 @@ def FreeQuadraticModule(base_ring, rank, inner_product_matrix,
M = FreeQuadraticModule_ambient_pid(
base_ring, rank, sparse=sparse, inner_product_matrix=inner_product_matrix)

elif isinstance(base_ring, ring.IntegralDomain) or base_ring.is_integral_domain():
elif isinstance(base_ring, IntegralDomain) or base_ring.is_integral_domain():
M = FreeQuadraticModule_ambient_domain(
base_ring, rank, sparse=sparse, inner_product_matrix=inner_product_matrix)
else:
Expand Down Expand Up @@ -713,7 +713,7 @@ def __init__(self, base_field, dimension, degree, inner_product_matrix, sparse=F
[0 0 0 0 0 1 0]
[0 0 0 0 0 0 1]
"""
if not isinstance(base_field, ring.Field):
if not isinstance(base_field, Field):
raise TypeError("the base_field (=%s) must be a field" % base_field)
free_module.FreeModule_generic_field.__init__(
self, base_field=base_field, dimension=dimension, degree=degree, sparse=sparse)
Expand Down
4 changes: 3 additions & 1 deletion src/sage/rings/all.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@

# Ring base classes
from sage.rings.ring import (Ring, Field, CommutativeRing, IntegralDomain,
DedekindDomain, PrincipalIdealDomain)
PrincipalIdealDomain)

lazy_import("sage.rings.ring", "DedekindDomain")

# Ring element base classes
from sage.structure.element import (CommutativeAlgebraElement,
Expand Down
1 change: 0 additions & 1 deletion src/sage/rings/complex_double.pxd
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from sage.libs.gsl.types cimport gsl_complex

cimport sage.structure.element
cimport sage.rings.ring
cimport sage.rings.abc


Expand Down
1 change: 0 additions & 1 deletion src/sage/rings/complex_double.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ cdef extern from "<complex.h>":
double cabs(double complex)

import sage.rings.abc
cimport sage.rings.ring
cimport sage.rings.integer

from sage.structure.element cimport Element, FieldElement
Expand Down
4 changes: 2 additions & 2 deletions src/sage/rings/complex_mpc.pxd
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from sage.libs.mpc.types cimport mpc_t, mpc_rnd_t

cimport sage.structure.element
cimport sage.rings.ring
from sage.rings.ring cimport Field

cdef class MPComplexNumber(sage.structure.element.FieldElement):
cdef mpc_t value
Expand All @@ -10,7 +10,7 @@ cdef class MPComplexNumber(sage.structure.element.FieldElement):
cpdef _add_(self, other) noexcept
cpdef _mul_(self, other) noexcept

cdef class MPComplexField_class(sage.rings.ring.Field):
cdef class MPComplexField_class(Field):
cdef readonly int _prec
cdef mpc_rnd_t __rnd
cdef object __rnd_str
Expand Down
2 changes: 1 addition & 1 deletion src/sage/rings/complex_mpc.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ def MPComplexField(prec=53, rnd="RNDNN", names=None):
return C


cdef class MPComplexField_class(sage.rings.ring.Field):
cdef class MPComplexField_class(Field):
def __init__(self, int prec=53, rnd="RNDNN"):
"""
Initialize ``self``.
Expand Down
7 changes: 4 additions & 3 deletions src/sage/rings/finite_rings/integer_mod_ring.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
from sage.arith.misc import factor
from sage.arith.misc import primitive_root
from sage.arith.misc import CRT_basis
import sage.rings.ring as ring
from sage.rings.ring import Field, CommutativeRing
import sage.rings.abc
from sage.rings.finite_rings import integer_mod
import sage.rings.integer as integer
Expand All @@ -85,6 +85,7 @@ class PariError(Exception):

from sage.interfaces.abc import GapElement


class IntegerModFactory(UniqueFactory):
r"""
Return the quotient ring `\ZZ / n\ZZ`.
Expand Down Expand Up @@ -1261,7 +1262,7 @@ def _coerce_map_from_(self, S):
elif S is integer_ring.ZZ:
return integer_mod.Integer_to_IntegerMod(self)
elif isinstance(S, IntegerModRing_generic):
if isinstance(S, ring.Field):
if isinstance(S, Field):
return None
try:
return integer_mod.IntegerMod_to_IntegerMod(S, self)
Expand Down Expand Up @@ -1554,7 +1555,7 @@ def random_element(self, bound=None):
True
"""
if bound is not None:
return ring.CommutativeRing.random_element(self, bound)
return CommutativeRing.random_element(self, bound)
a = random.randint(0, self.order() - 1)
return self(a)

Expand Down
4 changes: 2 additions & 2 deletions src/sage/rings/number_field/number_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
from sage.rings.finite_rings.integer_mod import mod
from sage.categories.number_fields import NumberFields

import sage.rings.ring
from sage.rings.ring import Ring
from sage.misc.latex import latex_variable_name

from .unit_group import UnitGroup
Expand Down Expand Up @@ -3536,7 +3536,7 @@ def ideal(self, *gens, **kwds):
try:
return self.fractional_ideal(*gens, **kwds)
except ValueError:
return sage.rings.ring.Ring.ideal(self, gens, **kwds)
return Ring.ideal(self, gens, **kwds)

def idealchinese(self, ideals, residues):
r"""
Expand Down
6 changes: 3 additions & 3 deletions src/sage/rings/pari_ring.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# http://www.gnu.org/licenses/
# ****************************************************************************
import sage.libs.pari.all as pari
import sage.rings.ring as ring
from sage.rings.ring import Ring
from sage.structure.element import RingElement
from sage.structure.richcmp import richcmp
from sage.misc.fast_methods import Singleton
Expand Down Expand Up @@ -158,7 +158,7 @@ def __int__(self):
return int(self.__x)


class PariRing(Singleton, ring.Ring):
class PariRing(Singleton, Ring):
"""
EXAMPLES::
Expand All @@ -170,7 +170,7 @@ class PariRing(Singleton, ring.Ring):
Element = Pari

def __init__(self):
ring.Ring.__init__(self, self)
Ring.__init__(self, self)

def __repr__(self):
return 'Pseudoring of all PARI objects.'
Expand Down
4 changes: 2 additions & 2 deletions src/sage/rings/polynomial/multi_polynomial_ring_base.pxd
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cimport sage.rings.ring
from sage.rings.ring cimport CommutativeRing, Ring
from sage.structure.parent cimport Parent

cdef class MPolynomialRing_base(sage.rings.ring.CommutativeRing):
cdef class MPolynomialRing_base(CommutativeRing):
cdef object _ngens
cdef object _term_order
cdef public object _has_singular
Expand Down
4 changes: 2 additions & 2 deletions src/sage/rings/polynomial/multi_polynomial_ring_base.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def is_MPolynomialRing(x):
return isinstance(x, MPolynomialRing_base)


cdef class MPolynomialRing_base(sage.rings.ring.CommutativeRing):
cdef class MPolynomialRing_base(CommutativeRing):
def __init__(self, base_ring, n, names, order):
"""
Create a polynomial ring in several variables over a commutative ring.
Expand Down Expand Up @@ -93,7 +93,7 @@ cdef class MPolynomialRing_base(sage.rings.ring.CommutativeRing):
category = categories.rings.Rings().Finite()
else:
category = polynomial_default_category(base_ring.category(), n)
sage.rings.ring.Ring.__init__(self, base_ring, names, category=category)
Ring.__init__(self, base_ring, names, category=category)

def is_integral_domain(self, proof=True):
"""
Expand Down
16 changes: 9 additions & 7 deletions src/sage/rings/polynomial/polynomial_ring.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,8 @@
import sage.categories as categories
from sage.categories.morphism import IdentityMorphism

import sage.rings.ring as ring
from sage.rings.ring import (Algebra, CommutativeAlgebra, IntegralDomain,
PrincipalIdealDomain, is_Ring)
from sage.structure.element import is_RingElement
import sage.rings.rational_field as rational_field
from sage.rings.rational_field import QQ
Expand Down Expand Up @@ -225,7 +226,7 @@ def is_PolynomialRing(x):

#########################################################################################

class PolynomialRing_general(ring.Algebra):
class PolynomialRing_general(Algebra):
"""
Univariate polynomial ring over a ring.
"""
Expand Down Expand Up @@ -302,7 +303,7 @@ def __init__(self, base_ring, name=None, sparse=False, implementation=None,
self.Element = self._polynomial_class
self.__cyclopoly_cache = {}
self._has_singular = False
ring.Algebra.__init__(self, base_ring, names=name, normalize=True, category=category)
Algebra.__init__(self, base_ring, names=name, normalize=True, category=category)
self._populate_coercion_lists_(convert_method_name='_polynomial_')

def __reduce__(self):
Expand Down Expand Up @@ -1708,7 +1709,7 @@ def monics( self, of_degree=None, max_degree=None ):
raise ValueError("you should pass exactly one of of_degree and max_degree")


class PolynomialRing_commutative(PolynomialRing_general, ring.CommutativeAlgebra):
class PolynomialRing_commutative(PolynomialRing_general, CommutativeAlgebra):
"""
Univariate polynomial ring over a commutative ring.
"""
Expand Down Expand Up @@ -1835,7 +1836,7 @@ def _roots_univariate_polynomial(self, p, ring=None, multiplicities=True, algori


class PolynomialRing_integral_domain(PolynomialRing_commutative, PolynomialRing_singular_repr,
ring.IntegralDomain):
IntegralDomain):
def __init__(self, base_ring, name="x", sparse=False, implementation=None,
element_class=None, category=None):
"""
Expand Down Expand Up @@ -2055,8 +2056,9 @@ def construction(self):
return categories.pushout.PolynomialFunctor(self.variable_name(), sparse=self.is_sparse(),
implementation=implementation), self.base_ring()


class PolynomialRing_field(PolynomialRing_integral_domain,
ring.PrincipalIdealDomain):
PrincipalIdealDomain):
def __init__(self, base_ring, name="x", sparse=False, implementation=None,
element_class=None, category=None):
"""
Expand Down Expand Up @@ -3594,7 +3596,7 @@ def polygen(ring_or_element, name="x"):
"""
if is_RingElement(ring_or_element):
base_ring = ring_or_element.parent()
elif ring.is_Ring(ring_or_element):
elif is_Ring(ring_or_element):
base_ring = ring_or_element
else:
raise TypeError("input must be a ring or ring element")
Expand Down
6 changes: 3 additions & 3 deletions src/sage/rings/polynomial/polynomial_ring_constructor.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# https://www.gnu.org/licenses/
# ****************************************************************************
from sage.structure.category_object import normalize_names
import sage.rings.ring as ring
from sage.rings.ring import is_Ring, IntegralDomain

try:
import sage.rings.padics.padic_base_leaves as padic_base_leaves
Expand Down Expand Up @@ -621,7 +621,7 @@ def PolynomialRing(base_ring, *args, **kwds):
sage: R.<x,y> = PolynomialRing(RIF,2)
sage: TestSuite(R).run(skip=['_test_elements', '_test_elements_eq_transitive'])
"""
if not ring.is_Ring(base_ring):
if not is_Ring(base_ring):
raise TypeError("base_ring {!r} must be a ring".format(base_ring))

n = -1 # Unknown number of variables
Expand Down Expand Up @@ -860,7 +860,7 @@ def _multi_variate(base_ring, names, sparse=None, order="degrevlex", implementat

if R is None and implementation == "generic":
from . import multi_polynomial_ring
if isinstance(base_ring, ring.IntegralDomain):
if isinstance(base_ring, IntegralDomain):
constructor = multi_polynomial_ring.MPolynomialRing_polydict_domain
else:
constructor = multi_polynomial_ring.MPolynomialRing_polydict
Expand Down
1 change: 0 additions & 1 deletion src/sage/rings/qqbar.py
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,6 @@

import sage.rings.abc
import sage.rings.number_field.number_field_base
import sage.rings.ring
from sage.arith.misc import factor
from sage.categories.action import Action
from sage.misc.cachefunc import cached_method
Expand Down
1 change: 0 additions & 1 deletion src/sage/rings/real_mpfr.pxd
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from sage.libs.mpfr.types cimport mpfr_rnd_t, mpfr_t, mpfr_prec_t

cimport sage.rings.ring
cimport sage.rings.abc
cimport sage.structure.element

Expand Down
Loading

0 comments on commit 28daf53

Please sign in to comment.