diff --git a/src/sage/categories/commutative_algebra_ideals.py b/src/sage/categories/commutative_algebra_ideals.py index 9a3ca918ced..cb21e14c22b 100644 --- a/src/sage/categories/commutative_algebra_ideals.py +++ b/src/sage/categories/commutative_algebra_ideals.py @@ -52,8 +52,8 @@ def __init__(self, A): # TODO: replace by ``A in CommutativeAlgebras(*)`` once a # suitable mantra has been implemented for this. from sage.algebras.algebra import is_Algebra - from sage.rings.commutative_ring import is_CommutativeRing - if not (is_Algebra(A) and is_CommutativeRing(A)): + from sage.rings.ring import CommutativeRing + if not (is_Algebra(A) and isinstance(A, CommutativeRing)): raise TypeError("A (=%s) must be a commutative algebra"%A) Category_in_ambient.__init__(self, A) diff --git a/src/sage/categories/schemes.py b/src/sage/categories/schemes.py index 5229fa4ae13..a7884ce1774 100644 --- a/src/sage/categories/schemes.py +++ b/src/sage/categories/schemes.py @@ -139,9 +139,9 @@ def _call_(self, x): if is_SchemeMorphism(x): return x from sage.rings.morphism import is_RingHomomorphism - from sage.rings.commutative_ring import is_CommutativeRing + from sage.rings.ring import CommutativeRing from sage.schemes.generic.spec import Spec - if is_CommutativeRing(x): + if isinstance(x, CommutativeRing): return Spec(x) elif is_RingHomomorphism(x): A = Spec(x.codomain()) diff --git a/src/sage/geometry/polyhedron/parent.py b/src/sage/geometry/polyhedron/parent.py index 711c0f1a202..a7879ec5551 100644 --- a/src/sage/geometry/polyhedron/parent.py +++ b/src/sage/geometry/polyhedron/parent.py @@ -14,8 +14,7 @@ from sage.structure.unique_representation import UniqueRepresentation from sage.modules.free_module import is_FreeModule from sage.misc.cachefunc import cached_method -from sage.rings.commutative_ring import is_CommutativeRing -from sage.rings.all import ZZ, QQ, RDF +from sage.rings.all import ZZ, QQ, RDF, CommutativeRing from sage.categories.fields import Fields from sage.geometry.polyhedron.base import Polyhedron_base, is_Polyhedron @@ -637,7 +636,7 @@ def _get_action_(self, other, op, self_is_left): extended_self._internal_coerce_map_from(self).__copy__()) return action - if op is operator.mul and is_CommutativeRing(other): + if op is operator.mul and isinstance(other, CommutativeRing): ring = self._coerce_base_ring(other) if ring is self.base_ring(): return ActedUponAction(other, self, not self_is_left) diff --git a/src/sage/modular/abvar/homology.py b/src/sage/modular/abvar/homology.py index 3e797d83c1e..2fc731b88d8 100644 --- a/src/sage/modular/abvar/homology.py +++ b/src/sage/modular/abvar/homology.py @@ -40,16 +40,19 @@ Hecke operator T_7 on Submodule of rank 2 of Integral Homology of Abelian variety J0(43) of dimension 3 """ -########################################################################### -# Copyright (C) 2007 William Stein # -# Distributed under the terms of the GNU General Public License (GPL) # -# http://www.gnu.org/licenses/ # -########################################################################### +#***************************************************************************** +# Copyright (C) 2007 William Stein +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# http://www.gnu.org/licenses/ +#***************************************************************************** from sage.modular.hecke.all import HeckeModule_free_module -from sage.rings.all import Integer, ZZ, QQ -from sage.rings.commutative_ring import is_CommutativeRing +from sage.rings.all import Integer, ZZ, QQ, CommutativeRing import abvar @@ -109,7 +112,7 @@ def __init__(self, abvar, base): sage: loads(dumps(H)) == H True """ - if not is_CommutativeRing(base): + if not isinstance(base, CommutativeRing): raise TypeError("base ring must be a commutative ring") HeckeModule_free_module.__init__( self, base, abvar.level(), weight=2) diff --git a/src/sage/modular/hecke/module.py b/src/sage/modular/hecke/module.py index 5c86ae3b727..8f90e746ffa 100644 --- a/src/sage/modular/hecke/module.py +++ b/src/sage/modular/hecke/module.py @@ -2,23 +2,17 @@ Hecke modules """ -########################################################################################## +#***************************************************************************** # Copyright (C) 2004,2005,2006 William Stein # -# Distributed under the terms of the GNU General Public License (GPL) -# -# This code is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# The full text of the GPL is available at: -# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. # http://www.gnu.org/licenses/ -########################################################################################## +#***************************************************************************** import sage.rings.all -from sage.rings.commutative_ring import is_CommutativeRing import sage.arith.all as arith import sage.misc.misc as misc import sage.modules.module @@ -79,7 +73,7 @@ def __init__(self, base_ring, level, category=None): sage: ModularForms(3, 3).category() Category of Hecke modules over Rational Field """ - if not is_CommutativeRing(base_ring): + if not isinstance(base_ring, sage.rings.all.CommutativeRing): raise TypeError("base_ring must be commutative ring") from sage.categories.hecke_modules import HeckeModules diff --git a/src/sage/modular/modform/constructor.py b/src/sage/modular/modform/constructor.py index 44ec6faff0c..1bb40fff92b 100644 --- a/src/sage/modular/modform/constructor.py +++ b/src/sage/modular/modform/constructor.py @@ -19,13 +19,15 @@ """ -######################################################################### -# Copyright (C) 2004--2006 William Stein -# -# Distributed under the terms of the GNU General Public License (GPL) +#***************************************************************************** +# Copyright (C) 2004-2006 William Stein # +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. # http://www.gnu.org/licenses/ -######################################################################### +#***************************************************************************** import weakref import re @@ -34,8 +36,6 @@ import sage.modular.dirichlet as dirichlet import sage.rings.all as rings -from sage.rings.commutative_ring import is_CommutativeRing - import ambient_eps import ambient_g0 import ambient_g1 @@ -123,7 +123,7 @@ def canonical_parameters(group, level, weight, base_ring): raise ValueError("group and level do not match.") group = arithgroup.Gamma0(m) - if not is_CommutativeRing(base_ring): + if not isinstance(base_ring, rings.CommutativeRing): raise TypeError("base_ring (=%s) must be a commutative ring"%base_ring) # it is *very* important to include the level as part of the data diff --git a/src/sage/modular/modsym/modsym.py b/src/sage/modular/modsym/modsym.py index 3e59dc9e98b..4fbc03ceae2 100644 --- a/src/sage/modular/modsym/modsym.py +++ b/src/sage/modular/modsym/modsym.py @@ -86,7 +86,6 @@ import sage.modular.dirichlet as dirichlet import sage.rings.rational_field as rational_field import sage.rings.all as rings -from sage.rings.commutative_ring import is_CommutativeRing def canonical_parameters(group, weight, sign, base_ring): @@ -129,7 +128,7 @@ def canonical_parameters(group, weight, sign, base_ring): if base_ring is None: base_ring = rational_field.RationalField() - if not is_CommutativeRing(base_ring): + if not isinstance(base_ring, rings.CommutativeRing): raise TypeError("base_ring (=%s) must be a commutative ring"%base_ring) if not base_ring.is_field(): diff --git a/src/sage/modular/quatalg/brandt.py b/src/sage/modular/quatalg/brandt.py index 5e7f03e56fb..53e4c7b7a54 100644 --- a/src/sage/modular/quatalg/brandt.py +++ b/src/sage/modular/quatalg/brandt.py @@ -208,9 +208,7 @@ class if `I=aJ` for some `a \in A^*`. (Left `\mathcal{O}`-ideals are # imports from sage.misc.all import prod, verbose -from sage.rings.all import Integer, ZZ, QQ, PolynomialRing, GF - -from sage.rings.commutative_ring import is_CommutativeRing +from sage.rings.all import Integer, ZZ, QQ, PolynomialRing, GF, CommutativeRing from sage.algebras.quatalg.quaternion_algebra import QuaternionAlgebra, basis_for_quaternion_lattice from sage.algebras.quatalg.quaternion_algebra_cython import rational_matrix_from_rational_quaternions @@ -297,7 +295,7 @@ def BrandtModule(N, M=1, weight=2, base_ring=QQ, use_cache=True): raise ValueError("M must be coprime to N") if weight < 2: raise ValueError("weight must be at least 2") - if not is_CommutativeRing(base_ring): + if not isinstance(base_ring, CommutativeRing): raise TypeError("base_ring must be a commutative ring") key = (N, M, weight, base_ring) if use_cache: diff --git a/src/sage/modules/free_module.py b/src/sage/modules/free_module.py index 08dd7827c46..c32633334fc 100644 --- a/src/sage/modules/free_module.py +++ b/src/sage/modules/free_module.py @@ -168,7 +168,6 @@ from sage.modules.module import Module import sage.rings.finite_rings.finite_field_constructor as finite_field -import sage.rings.integral_domain as integral_domain import sage.rings.ring as ring import sage.rings.integer_ring import sage.rings.rational_field @@ -378,7 +377,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) - elif isinstance(base_ring, integral_domain.IntegralDomain) or base_ring.is_integral_domain(): + elif isinstance(base_ring, ring.IntegralDomain) or base_ring.is_integral_domain(): return FreeModule_ambient_domain(base_ring, rank, sparse=sparse) else: diff --git a/src/sage/modules/free_quadratic_module.py b/src/sage/modules/free_quadratic_module.py index fb856373160..ccc829f5149 100644 --- a/src/sage/modules/free_quadratic_module.py +++ b/src/sage/modules/free_quadratic_module.py @@ -58,30 +58,20 @@ """ #***************************************************************************** +# Copyright (C) 2008 David Kohel # -# Copyright (C) 2008 David Kohel -# -# Distributed under the terms of the GNU General Public License (GPL) -# -# http://www.gnu.org/licenses/ -# -# All rights granted to distribute under the GPL, version 2, -# or (at your option) any later version of the license. -# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# http://www.gnu.org/licenses/ #***************************************************************************** -# Python imports import weakref -# Sage imports - - import sage.matrix.matrix_space - import sage.misc.latex as latex - import sage.rings.ring as ring -import sage.rings.integral_domain as integral_domain import sage.rings.integer from sage.categories.principal_ideal_domains import PrincipalIdealDomains import free_module @@ -180,7 +170,7 @@ def FreeQuadraticModule( M = FreeQuadraticModule_ambient_pid( base_ring, rank, sparse=sparse, inner_product_matrix=inner_product_matrix) - elif isinstance(base_ring, integral_domain.IntegralDomain) or base_ring.is_integral_domain(): + elif isinstance(base_ring, ring.IntegralDomain) or base_ring.is_integral_domain(): M = FreeQuadraticModule_ambient_domain( base_ring, rank, sparse=sparse, inner_product_matrix=inner_product_matrix) else: diff --git a/src/sage/quadratic_forms/quadratic_form.py b/src/sage/quadratic_forms/quadratic_form.py index 94acaba2ffa..0bb110288bd 100644 --- a/src/sage/quadratic_forms/quadratic_form.py +++ b/src/sage/quadratic_forms/quadratic_form.py @@ -32,9 +32,8 @@ from sage.rings.ring import Ring from sage.misc.functional import denominator, is_even, is_field from sage.arith.all import GCD, LCM -from sage.rings.principal_ideal_domain import is_PrincipalIdealDomain from sage.rings.all import Ideal -from sage.rings.ring import is_Ring +from sage.rings.ring import is_Ring, PrincipalIdealDomain from sage.matrix.matrix import is_Matrix from sage.structure.sage_object import SageObject from sage.structure.element import is_Vector @@ -1436,7 +1435,7 @@ def level(self): except AttributeError: ## Check that the base ring is a PID - if not is_PrincipalIdealDomain(self.base_ring()): + if not isinstance(self.base_ring(), PrincipalIdealDomain): raise TypeError("Oops! The level (as a number) is only defined over a Principal Ideal Domain. Try using level_ideal().") diff --git a/src/sage/rings/all.py b/src/sage/rings/all.py index 4444fe55220..96e17b920c4 100644 --- a/src/sage/rings/all.py +++ b/src/sage/rings/all.py @@ -13,12 +13,8 @@ #***************************************************************************** # Ring base classes -from ring import Ring, Field -from commutative_ring import CommutativeRing -from integral_domain import IntegralDomain -from dedekind_domain import DedekindDomain -from principal_ideal_domain import PrincipalIdealDomain -from euclidean_domain import EuclideanDomain +from ring import (Ring, Field, CommutativeRing, IntegralDomain, + DedekindDomain, PrincipalIdealDomain, EuclideanDomain) # Ring element base classes from sage.structure.element import (CommutativeAlgebraElement, diff --git a/src/sage/rings/cfinite_sequence.py b/src/sage/rings/cfinite_sequence.py index de2b71fa056..14446d605a5 100644 --- a/src/sage/rings/cfinite_sequence.py +++ b/src/sage/rings/cfinite_sequence.py @@ -94,7 +94,7 @@ from sage.categories.fields import Fields from sage.misc.inherit_comparison import InheritComparisonClasscallMetaclass -from sage.rings.commutative_ring import CommutativeRing +from sage.rings.ring import CommutativeRing from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ from sage.rings.rational_field import QQ diff --git a/src/sage/rings/commutative_ring.py b/src/sage/rings/commutative_ring.py index 27017d5de31..bbd8e051de4 100644 --- a/src/sage/rings/commutative_ring.py +++ b/src/sage/rings/commutative_ring.py @@ -17,6 +17,9 @@ # http://www.gnu.org/licenses/ #***************************************************************************** +from sage.misc.superseded import deprecation +deprecation(20011, "the module sage.rings.commutative_ring is deprecated and will be removed") + from sage.rings.ring import CommutativeRing def is_CommutativeRing(R): @@ -25,6 +28,9 @@ def is_CommutativeRing(R): EXAMPLES:: + sage: import sage.rings.commutative_ring + doctest:...: DeprecationWarning: the module sage.rings.commutative_ring is deprecated and will be removed + See http://trac.sagemath.org/20011 for details. sage: sage.rings.commutative_ring.is_CommutativeRing(ZZ) True """ diff --git a/src/sage/rings/dedekind_domain.py b/src/sage/rings/dedekind_domain.py index 96c872b1283..fa0cc000d02 100644 --- a/src/sage/rings/dedekind_domain.py +++ b/src/sage/rings/dedekind_domain.py @@ -17,6 +17,9 @@ # http://www.gnu.org/licenses/ #***************************************************************************** +from sage.misc.superseded import deprecation +deprecation(20011, "the module sage.rings.dedekind_domain is deprecated and will be removed") + from sage.rings.ring import DedekindDomain def is_DedekindDomain(R): @@ -25,6 +28,9 @@ def is_DedekindDomain(R): EXAMPLES:: + sage: import sage.rings.dedekind_domain + doctest:...: DeprecationWarning: the module sage.rings.dedekind_domain is deprecated and will be removed + See http://trac.sagemath.org/20011 for details. sage: sage.rings.dedekind_domain.is_DedekindDomain(DedekindDomain(QQ)) True """ diff --git a/src/sage/rings/euclidean_domain.py b/src/sage/rings/euclidean_domain.py index 2b893d26159..3a6291146e1 100644 --- a/src/sage/rings/euclidean_domain.py +++ b/src/sage/rings/euclidean_domain.py @@ -17,6 +17,9 @@ # http://www.gnu.org/licenses/ #***************************************************************************** +from sage.misc.superseded import deprecation +deprecation(20011, "the module sage.rings.euclidean_domain is deprecated and will be removed") + from sage.rings.ring import EuclideanDomain def is_EuclideanDomain(R): @@ -25,6 +28,9 @@ def is_EuclideanDomain(R): EXAMPLES:: + sage: import sage.rings.euclidean_domain + doctest:...: DeprecationWarning: the module sage.rings.euclidean_domain is deprecated and will be removed + See http://trac.sagemath.org/20011 for details. sage: sage.rings.euclidean_domain.is_EuclideanDomain(EuclideanDomain(ZZ)) True """ diff --git a/src/sage/rings/finite_rings/integer_mod_ring.py b/src/sage/rings/finite_rings/integer_mod_ring.py index 8c8d59b0d02..5291a3d1644 100644 --- a/src/sage/rings/finite_rings/integer_mod_ring.py +++ b/src/sage/rings/finite_rings/integer_mod_ring.py @@ -62,7 +62,6 @@ import sage.misc.prandom as random from sage.arith.all import factor, primitive_root, CRT_basis -import sage.rings.commutative_ring as commutative_ring import sage.rings.ring as ring import integer_mod import sage.rings.integer as integer @@ -1506,8 +1505,8 @@ def random_element(self, bound=None): sage: R.random_element(2) in [R(16), R(17), R(0), R(1), R(2)] True """ - if not (bound is None): - return commutative_ring.CommutativeRing.random_element(self, bound) + if bound is not None: + return ring.CommutativeRing.random_element(self, bound) a = random.randint(0,self.order()-1) return self(a) diff --git a/src/sage/rings/ideal.py b/src/sage/rings/ideal.py index 36932590f97..98698e1af69 100644 --- a/src/sage/rings/ideal.py +++ b/src/sage/rings/ideal.py @@ -31,7 +31,6 @@ import sage.misc.latex as latex import sage.rings.ring -import commutative_ring from sage.structure.element import MonoidElement from sage.interfaces.singular import singular as singular_default import sage.rings.infinity @@ -189,7 +188,7 @@ def Ideal(*args, **kwds): R = first gens = args[1:] - if not commutative_ring.is_CommutativeRing(R): + if not isinstance(R, sage.rings.ring.CommutativeRing): raise TypeError("R must be a commutative ring") return R.ideal(*gens, **kwds) diff --git a/src/sage/rings/ideal_monoid.py b/src/sage/rings/ideal_monoid.py index df604b9721c..42a3fdf581e 100644 --- a/src/sage/rings/ideal_monoid.py +++ b/src/sage/rings/ideal_monoid.py @@ -2,7 +2,6 @@ Monoid of ideals in a commutative ring """ -from commutative_ring import is_CommutativeRing from sage.structure.parent import Parent import sage.rings.integer_ring import ideal diff --git a/src/sage/rings/integral_domain.py b/src/sage/rings/integral_domain.py index d7057b7f19a..716f94776c1 100644 --- a/src/sage/rings/integral_domain.py +++ b/src/sage/rings/integral_domain.py @@ -17,6 +17,9 @@ # http://www.gnu.org/licenses/ #***************************************************************************** +from sage.misc.superseded import deprecation +deprecation(20011, "the module sage.rings.integral_domain is deprecated and will be removed") + from sage.rings.ring import IntegralDomain def is_IntegralDomain(R): @@ -25,6 +28,9 @@ def is_IntegralDomain(R): EXAMPLES:: + sage: import sage.rings.integral_domain + doctest:...: DeprecationWarning: the module sage.rings.integral_domain is deprecated and will be removed + See http://trac.sagemath.org/20011 for details. sage: sage.rings.integral_domain.is_IntegralDomain(QQ) True sage: sage.rings.integral_domain.is_IntegralDomain(ZZ) diff --git a/src/sage/rings/laurent_series_ring.py b/src/sage/rings/laurent_series_ring.py index 620bd496916..5faa5b8fea1 100644 --- a/src/sage/rings/laurent_series_ring.py +++ b/src/sage/rings/laurent_series_ring.py @@ -23,9 +23,7 @@ import laurent_series_ring_element import power_series_ring import polynomial -import commutative_ring -import integral_domain -import ring +from . import ring from sage.libs.pari.all import pari_gen from sage.categories.fields import Fields @@ -110,9 +108,9 @@ def LaurentSeriesRing(base_ring, name=None, names=None, default_prec=None, spars if isinstance(base_ring, ring.Field): R = LaurentSeriesRing_field(base_ring, name, default_prec, sparse) - elif isinstance(base_ring, integral_domain.IntegralDomain): + elif isinstance(base_ring, ring.IntegralDomain): R = LaurentSeriesRing_domain(base_ring, name, default_prec, sparse) - elif isinstance(base_ring, commutative_ring.CommutativeRing): + elif isinstance(base_ring, ring.CommutativeRing): R = LaurentSeriesRing_generic(base_ring, name, default_prec, sparse) else: raise TypeError("base_ring must be a commutative ring") @@ -130,7 +128,7 @@ def is_LaurentSeriesRing(x): """ return isinstance(x, LaurentSeriesRing_generic) -class LaurentSeriesRing_generic(commutative_ring.CommutativeRing): +class LaurentSeriesRing_generic(ring.CommutativeRing): """ Univariate Laurent Series Ring @@ -168,7 +166,7 @@ def __init__(self, base_ring, name=None, default_prec=None, sparse=False, catego sage: 1 / (q-q^2) q^-1 + 1 + q + q^2 + O(q^3) """ - commutative_ring.CommutativeRing.__init__(self, base_ring, names=name, + ring.CommutativeRing.__init__(self, base_ring, names=name, category=getattr(self, '_default_category', Fields())) self._polynomial_ring = polynomial.polynomial_ring_constructor.PolynomialRing(self.base_ring(), self.variable_name(), @@ -592,13 +590,13 @@ def uniformizer(self): Return a uniformizer of this Laurent series field if it is a discrete valuation field (i.e. if the base ring is actually a field). Otherwise, an error is raised. - + EXAMPLES:: sage: R. = LaurentSeriesRing(QQ) sage: R.uniformizer() t - + sage: R. = LaurentSeriesRing(ZZ) sage: R.uniformizer() Traceback (most recent call last): @@ -666,7 +664,7 @@ def power_series_ring(self): """ return self._power_series_ring -class LaurentSeriesRing_domain(LaurentSeriesRing_generic, integral_domain.IntegralDomain): +class LaurentSeriesRing_domain(LaurentSeriesRing_generic, ring.IntegralDomain): def __init__(self, base_ring, name=None, default_prec=None, sparse=False): """ Initialization @@ -689,4 +687,3 @@ def __init__(self, base_ring, name=None, default_prec=None, sparse=False): sage: TestSuite(LaurentSeriesRing(QQ,'t')).run() """ LaurentSeriesRing_generic.__init__(self, base_ring, name, default_prec, sparse) - diff --git a/src/sage/rings/morphism.pyx b/src/sage/rings/morphism.pyx index d03e420ade3..6f209520938 100644 --- a/src/sage/rings/morphism.pyx +++ b/src/sage/rings/morphism.pyx @@ -1933,9 +1933,9 @@ cdef class FrobeniusEndomorphism_generic(RingHomomorphism): sage: FrobeniusEndomorphism_generic(K, 2) Frobenius endomorphism x |--> x^(5^2) of Power Series Ring in u over Finite Field of size 5 """ - from commutative_ring import is_CommutativeRing + from .ring import CommutativeRing from sage.categories.homset import Hom - if not is_CommutativeRing(domain): + if not isinstance(domain, CommutativeRing): raise TypeError("The base ring must be a commutative ring") self._p = domain.characteristic() if not self._p.is_prime(): diff --git a/src/sage/rings/multi_power_series_ring.py b/src/sage/rings/multi_power_series_ring.py index 360ea52ebb9..41e382710e8 100644 --- a/src/sage/rings/multi_power_series_ring.py +++ b/src/sage/rings/multi_power_series_ring.py @@ -193,16 +193,18 @@ """ - #***************************************************************************** # Copyright (C) 2010 Niles Johnson # -# Distributed under the terms of the GNU General Public License (GPL) +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. # http://www.gnu.org/licenses/ #***************************************************************************** -from sage.rings.commutative_ring import is_CommutativeRing, CommutativeRing +from sage.rings.ring import CommutativeRing from sage.rings.polynomial.all import PolynomialRing from sage.rings.polynomial.polynomial_element import is_Polynomial from sage.rings.polynomial.polynomial_ring import is_PolynomialRing @@ -682,7 +684,7 @@ def _is_valid_homomorphism_(self, codomain, im_gens): except NotImplementedError: B = all(v.valuation() > 0 for v in im_gens) return B - if is_CommutativeRing(codomain): + if isinstance(codomain, CommutativeRing): return all(v.is_nilpotent() for v in im_gens) diff --git a/src/sage/rings/polynomial/multi_polynomial_ring.py b/src/sage/rings/polynomial/multi_polynomial_ring.py index a7a2100d573..60146b8a43b 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring.py +++ b/src/sage/rings/polynomial/multi_polynomial_ring.py @@ -52,27 +52,17 @@ """ #***************************************************************************** -# -# Sage: System for Algebra and Geometry Experimentation -# # Copyright (C) 2005 William Stein # -# Distributed under the terms of the GNU General Public License (GPL) -# -# This code is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# The full text of the GPL is available at: -# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. # http://www.gnu.org/licenses/ #***************************************************************************** -# Changed: -# Kiran Kedlaya (2006-02-12): added Macaulay2 names to TermOrder -import sage.rings.integral_domain as integral_domain +from sage.rings.ring import IntegralDomain import sage.rings.fraction_field_element as fraction_field_element from sage.rings.integer_ring import is_IntegerRing @@ -531,7 +521,7 @@ def __call__(self, x, check=True): c = self.base_ring()(x) return MPolynomial_polydict(self, {self._zero_tuple:c}) -class MPolynomialRing_polydict_domain(integral_domain.IntegralDomain, +class MPolynomialRing_polydict_domain(IntegralDomain, MPolynomialRing_polydict): def __init__(self, base_ring, n, names, order): order = TermOrder(order,n) diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 5fc51e5ce59..4a06ddccd6d 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -86,7 +86,6 @@ from sage.rings.integer cimport smallInteger from sage.rings.fraction_field import is_FractionField from sage.rings.padics.generic_nodes import is_pAdicRing, is_pAdicField -from sage.rings.integral_domain import is_IntegralDomain from sage.structure.category_object cimport normalize_names from sage.misc.derivative import multi_derivative diff --git a/src/sage/rings/polynomial/polynomial_quotient_ring.py b/src/sage/rings/polynomial/polynomial_quotient_ring.py index 57414c4669a..77b2868d393 100644 --- a/src/sage/rings/polynomial/polynomial_quotient_ring.py +++ b/src/sage/rings/polynomial/polynomial_quotient_ring.py @@ -41,9 +41,7 @@ import sage.rings.rational_field import sage.rings.complex_field -import sage.rings.commutative_ring -import sage.rings.integral_domain -from sage.rings.ring import Field +from sage.rings.ring import Field, IntegralDomain, CommutativeRing from sage.misc.cachefunc import cached_method from sage.rings.polynomial.polynomial_quotient_ring_element import PolynomialQuotientRingElement @@ -181,7 +179,7 @@ def PolynomialQuotientRing(ring, polynomial, names=None): else: names = normalize_names(ring.ngens(), names) R = ring.base_ring() - if isinstance(R, sage.rings.integral_domain.IntegralDomain): + if isinstance(R, IntegralDomain): try: if polynomial.is_irreducible(): if isinstance(R, Field): @@ -197,7 +195,7 @@ def is_PolynomialQuotientRing(x): return isinstance(x, PolynomialQuotientRing_generic) -class PolynomialQuotientRing_generic(sage.rings.commutative_ring.CommutativeRing): +class PolynomialQuotientRing_generic(CommutativeRing): """ Quotient of a univariate polynomial ring by an ideal. @@ -331,7 +329,7 @@ def __init__(self, ring, polynomial, name=None, category=None): self.__ring = ring self.__polynomial = polynomial category = CommutativeAlgebras(ring.base_ring()).Quotients().or_subcategory(category) - sage.rings.commutative_ring.CommutativeRing.__init__(self, ring, names=name, category=category) + CommutativeRing.__init__(self, ring, names=name, category=category) def __reduce__(self): """ @@ -544,7 +542,7 @@ def _coerce_impl(self, x): ## retract = _coerce_impl - ambient = sage.rings.commutative_ring.CommutativeRing.base + ambient = CommutativeRing.base def lift(self, x): """ @@ -1419,7 +1417,7 @@ def selmer_group(self, S, m, proof=True): return gens -class PolynomialQuotientRing_domain(PolynomialQuotientRing_generic, sage.rings.integral_domain.IntegralDomain): +class PolynomialQuotientRing_domain(PolynomialQuotientRing_generic, IntegralDomain): """ EXAMPLES:: diff --git a/src/sage/rings/polynomial/polynomial_ring.py b/src/sage/rings/polynomial/polynomial_ring.py index 9c469c9eb46..cae2fbe7324 100644 --- a/src/sage/rings/polynomial/polynomial_ring.py +++ b/src/sage/rings/polynomial/polynomial_ring.py @@ -168,12 +168,9 @@ from sage.structure.category_object import check_default_category import sage.algebras.algebra import sage.categories.basic as categories -import sage.rings.commutative_ring as commutative_ring import sage.rings.commutative_algebra as commutative_algebra import sage.rings.ring as ring from sage.structure.element import is_RingElement -import sage.rings.integral_domain as integral_domain -import sage.rings.principal_ideal_domain as principal_ideal_domain import sage.rings.polynomial.polynomial_element_generic as polynomial_element_generic import sage.rings.rational_field as rational_field from sage.rings.integer_ring import is_IntegerRing, IntegerRing @@ -1508,7 +1505,7 @@ def weyl_algebra(self): from sage.algebras.weyl_algebra import DifferentialWeylAlgebra return DifferentialWeylAlgebra(self) -class PolynomialRing_integral_domain(PolynomialRing_commutative, integral_domain.IntegralDomain): +class PolynomialRing_integral_domain(PolynomialRing_commutative, ring.IntegralDomain): def __init__(self, base_ring, name="x", sparse=False, implementation=None, element_class=None): """ @@ -1558,8 +1555,7 @@ def _repr_(self): class PolynomialRing_field(PolynomialRing_integral_domain, PolynomialRing_singular_repr, - principal_ideal_domain.PrincipalIdealDomain, - ): + ring.PrincipalIdealDomain): def __init__(self, base_ring, name="x", sparse=False, element_class=None): """ TESTS:: diff --git a/src/sage/rings/polynomial/polynomial_ring_constructor.py b/src/sage/rings/polynomial/polynomial_ring_constructor.py index d4e641c9f24..a3a67ce453b 100644 --- a/src/sage/rings/polynomial/polynomial_ring_constructor.py +++ b/src/sage/rings/polynomial/polynomial_ring_constructor.py @@ -567,7 +567,7 @@ def _multi_variate(base_ring, names, n, sparse, order, implementation): return R from sage.rings.polynomial.multi_polynomial_libsingular import MPolynomialRing_libsingular - if m.integral_domain.is_IntegralDomain(base_ring): + if isinstance(base_ring, ring.IntegralDomain): if n < 1: R = m.MPolynomialRing_polydict_domain(base_ring, n, names, order) else: diff --git a/src/sage/rings/power_series_ring.py b/src/sage/rings/power_series_ring.py index 63640130e24..14d7545357f 100644 --- a/src/sage/rings/power_series_ring.py +++ b/src/sage/rings/power_series_ring.py @@ -122,9 +122,8 @@ from polynomial.polynomial_ring_constructor import PolynomialRing import laurent_series_ring import laurent_series_ring_element -import commutative_ring -import integral_domain import integer +from . import ring from infinity import infinity import sage.misc.latex as latex from sage.structure.nonexact import Nonexact @@ -443,7 +442,7 @@ def is_PowerSeriesRing(R): else: return False -class PowerSeriesRing_generic(UniqueRepresentation, commutative_ring.CommutativeRing, Nonexact): +class PowerSeriesRing_generic(UniqueRepresentation, ring.CommutativeRing, Nonexact): """ A power series ring. """ @@ -521,7 +520,7 @@ def __init__(self, base_ring, name=None, default_prec=None, sparse=False, self.__mpoly_ring = PolynomialRing(K.base_ring(), names=names) assert is_MPolynomialRing(self.__mpoly_ring) self.Element = power_series_mpoly.PowerSeries_mpoly - commutative_ring.CommutativeRing.__init__(self, base_ring, names=name, + ring.CommutativeRing.__init__(self, base_ring, names=name, category=getattr(self,'_default_category', _CommutativeRings)) Nonexact.__init__(self, default_prec) @@ -1220,7 +1219,7 @@ def laurent_series_ring(self): self.base_ring(), self.variable_name(), default_prec=self.default_prec(), sparse=self.is_sparse()) return self.__laurent_series_ring -class PowerSeriesRing_domain(PowerSeriesRing_generic, integral_domain.IntegralDomain): +class PowerSeriesRing_domain(PowerSeriesRing_generic, ring.IntegralDomain): pass class PowerSeriesRing_over_field(PowerSeriesRing_domain): diff --git a/src/sage/rings/principal_ideal_domain.py b/src/sage/rings/principal_ideal_domain.py index 39ae8ae7ced..17e21438d17 100644 --- a/src/sage/rings/principal_ideal_domain.py +++ b/src/sage/rings/principal_ideal_domain.py @@ -17,6 +17,9 @@ # http://www.gnu.org/licenses/ #***************************************************************************** +from sage.misc.superseded import deprecation +deprecation(20011, "the module sage.rings.principal_ideal_domain is deprecated and will be removed") + from sage.rings.ring import PrincipalIdealDomain def is_PrincipalIdealDomain(R): @@ -25,6 +28,9 @@ def is_PrincipalIdealDomain(R): EXAMPLES:: + sage: import sage.rings.principal_ideal_domain + doctest:...: DeprecationWarning: the module sage.rings.principal_ideal_domain is deprecated and will be removed + See http://trac.sagemath.org/20011 for details. sage: sage.rings.principal_ideal_domain.is_PrincipalIdealDomain(ZZ) True sage: R. = QQ[] diff --git a/src/sage/rings/quotient_ring.py b/src/sage/rings/quotient_ring.py index 133754e30ca..65d922940d1 100644 --- a/src/sage/rings/quotient_ring.py +++ b/src/sage/rings/quotient_ring.py @@ -110,10 +110,8 @@ #***************************************************************************** -import quotient_ring_element import sage.misc.latex as latex -import commutative_ring, ring -import ideal +from . import ring, ideal, quotient_ring_element import sage.rings.polynomial.multi_polynomial_ideal from sage.structure.category_object import normalize_names import sage.structure.parent_gens @@ -304,7 +302,7 @@ def QuotientRing(R, I, names=None): if S == ZZ: return Integers((I_lift+J).gen()) return R.__class__(S, I_lift + J, names=names) - if isinstance(R, sage.rings.commutative_ring.CommutativeRing): + if isinstance(R, ring.CommutativeRing): return QuotientRing_generic(R, I, names) return QuotientRing_nc(R, I, names) @@ -937,7 +935,7 @@ def ideal(self, *gens, **kwds): if not isinstance(self.__R, MPolynomialRing_libsingular) and \ (not hasattr(self.__R, '_has_singular') or not self.__R._has_singular): # pass through - return commutative_ring.CommutativeRing.ideal(self, gens, **kwds) + return ring.CommutativeRing.ideal(self, gens, **kwds) if is_SingularElement(gens): gens = list(gens) coerce = True @@ -1254,7 +1252,7 @@ def term_order(self): """ return self.__R.term_order() -class QuotientRing_generic(QuotientRing_nc, sage.rings.commutative_ring.CommutativeRing): +class QuotientRing_generic(QuotientRing_nc, ring.CommutativeRing): r""" Creates a quotient ring of a *commutative* ring `R` by the ideal `I`. @@ -1283,7 +1281,7 @@ def __init__(self, R, I, names, category=None): sage: isinstance(ZZ.quo(2), sage.rings.ring.CommutativeRing) # indirect doctest True """ - if not isinstance(R, sage.rings.commutative_ring.CommutativeRing): + if not isinstance(R, ring.CommutativeRing): raise TypeError("This class is for quotients of commutative rings only.\n For non-commutative rings, use ") if not self._is_category_initialized(): category = check_default_category(_CommutativeRingsQuotients,category) diff --git a/src/sage/schemes/generic/ambient_space.py b/src/sage/schemes/generic/ambient_space.py index 72cfdaa000d..1d5d6db492b 100644 --- a/src/sage/schemes/generic/ambient_space.py +++ b/src/sage/schemes/generic/ambient_space.py @@ -5,16 +5,17 @@ #***************************************************************************** # Copyright (C) 2006 William Stein # -# Distributed under the terms of the GNU General Public License (GPL) -# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. # http://www.gnu.org/licenses/ #***************************************************************************** -from sage.rings.all import Integer, ZZ -from sage.rings.commutative_ring import is_CommutativeRing - +from sage.rings.all import Integer, ZZ, CommutativeRing from sage.schemes.generic.scheme import Scheme + def is_AmbientSpace(x): """ Return True if `x` is an ambient space. @@ -51,7 +52,7 @@ def __init__(self, n, R=ZZ): sage: A = AmbientSpace(5, ZZ) sage: TestSuite(A).run() # not tested (abstract scheme with no elements?) """ - if not is_CommutativeRing(R): + if not isinstance(R, CommutativeRing): raise TypeError("R (=%s) must be a commutative ring"%R) n = Integer(n) if n < 0: @@ -252,7 +253,7 @@ def base_extend(self, R): ValueError: no natural map from the base ring (=Rational Field) to R (=Finite Field of size 5)! """ - if is_CommutativeRing(R): + if isinstance(R, CommutativeRing): if self.base_ring() == R: return self if not R.has_coerce_map_from(self.base_ring()): diff --git a/src/sage/schemes/generic/homset.py b/src/sage/schemes/generic/homset.py index c50b1d16345..e435a243bf9 100644 --- a/src/sage/schemes/generic/homset.py +++ b/src/sage/schemes/generic/homset.py @@ -40,13 +40,12 @@ from sage.categories.homset import HomsetWithBase from sage.structure.factory import UniqueFactory -from sage.rings.all import ZZ, QQ +from sage.rings.all import ZZ, QQ, CommutativeRing from sage.arith.all import gcd from sage.rings.morphism import is_RingHomomorphism from sage.rings.rational_field import is_RationalField from sage.rings.finite_rings.finite_field_constructor import is_FiniteField -from sage.rings.commutative_ring import is_CommutativeRing from sage.schemes.generic.scheme import AffineScheme, is_AffineScheme from sage.schemes.generic.morphism import ( @@ -154,14 +153,14 @@ def create_key_and_extra_args(self, X, Y, category=None, base=ZZ, 'base_ring': Integer Ring, 'check': False} """ - if is_CommutativeRing(X): + if isinstance(X, CommutativeRing): X = AffineScheme(X) - if is_CommutativeRing(Y): + if isinstance(Y, CommutativeRing): Y = AffineScheme(Y) if is_AffineScheme(base): base_spec = base base_ring = base.coordinate_ring() - elif is_CommutativeRing(base): + elif isinstance(base, CommutativeRing): base_spec = AffineScheme(base) base_ring = base else: diff --git a/src/sage/schemes/generic/morphism.py b/src/sage/schemes/generic/morphism.py index cb55100bca8..447a705326b 100644 --- a/src/sage/schemes/generic/morphism.py +++ b/src/sage/schemes/generic/morphism.py @@ -83,7 +83,6 @@ from sage.categories.homset import Homset, Hom, End from sage.categories.number_fields import NumberFields from sage.rings.all import Integer, CIF -from sage.rings.commutative_ring import is_CommutativeRing from sage.rings.fraction_field import FractionField from sage.rings.fraction_field_element import FractionFieldElement from sage.rings.morphism import is_RingHomomorphism diff --git a/src/sage/schemes/generic/scheme.py b/src/sage/schemes/generic/scheme.py index 8889deaa9d9..aa15ecaf8c6 100644 --- a/src/sage/schemes/generic/scheme.py +++ b/src/sage/schemes/generic/scheme.py @@ -25,9 +25,7 @@ from sage.misc.all import cached_method from sage.rings.all import (IntegerRing, ZZ, GF, PowerSeriesRing, - Rationals) - -from sage.rings.commutative_ring import is_CommutativeRing + Rationals, CommutativeRing) from sage.rings.ideal import is_Ideal from sage.rings.morphism import is_RingHomomorphism from sage.structure.unique_representation import UniqueRepresentation @@ -114,7 +112,7 @@ def __init__(self, X=None, category=None): self._base_scheme = X elif is_SchemeMorphism(X): self._base_morphism = X - elif is_CommutativeRing(X): + elif isinstance(X, CommutativeRing): self._base_ring = X elif is_RingHomomorphism(X): self._base_ring = X.codomain() @@ -257,7 +255,7 @@ def __call__(self, *args): if len(args) == 1: from sage.schemes.generic.morphism import SchemeMorphism_point S = args[0] - if is_CommutativeRing(S): + if isinstance(S, CommutativeRing): return self.point_homset(S) elif is_Scheme(S): return S.Hom(self) diff --git a/src/sage/schemes/hyperelliptic_curves/monsky_washnitzer.py b/src/sage/schemes/hyperelliptic_curves/monsky_washnitzer.py index b18325f07f9..d79f7e55151 100644 --- a/src/sage/schemes/hyperelliptic_curves/monsky_washnitzer.py +++ b/src/sage/schemes/hyperelliptic_curves/monsky_washnitzer.py @@ -1731,10 +1731,9 @@ def matrix_of_frobenius(Q, p, M, trace=None, compute_exact_forms=False): from sage.schemes.hyperelliptic_curves.constructor import HyperellipticCurve from sage.schemes.hyperelliptic_curves.hyperelliptic_generic import is_HyperellipticCurve from sage.rings.padics.all import pAdicField -from sage.rings.all import QQ +from sage.rings.all import QQ, IntegralDomain from sage.rings.laurent_series_ring import is_LaurentSeriesRing -from sage.rings.integral_domain import is_IntegralDomain from sage.modules.free_module import FreeModule from sage.modules.free_module_element import is_FreeModuleElement @@ -2911,7 +2910,7 @@ def helper_matrix(self): for i in range(n): L.append((y*x**i).diff().extract_pow_y(0)) A = matrix(L).transpose() - if not is_IntegralDomain(A.base_ring()): + if not isinstance(A.base_ring(), IntegralDomain): # must be using integer_mod or something to approximate self._helper_matrix = (~A.change_ring(QQ)).change_ring(A.base_ring()) else: diff --git a/src/sage/schemes/plane_conics/constructor.py b/src/sage/schemes/plane_conics/constructor.py index af27a507a1e..27d3f8005fb 100644 --- a/src/sage/schemes/plane_conics/constructor.py +++ b/src/sage/schemes/plane_conics/constructor.py @@ -30,7 +30,7 @@ from sage.rings.all import PolynomialRing from sage.rings.finite_rings.finite_field_constructor import is_PrimeFiniteField -from sage.rings.integral_domain import is_IntegralDomain +from sage.rings.ring import IntegralDomain from sage.rings.rational_field import is_RationalField from sage.rings.finite_rings.finite_field_constructor import is_FiniteField from sage.rings.polynomial.multi_polynomial_element import is_MPolynomial @@ -139,7 +139,7 @@ def Conic(base_field, F=None, names=None, unique=True): sage: Conic([a([x,x^2]) for x in range(5)]) Projective Conic Curve over Finite Field of size 13 defined by x^2 - y*z """ - if not (is_IntegralDomain(base_field) or base_field is None): + if not (base_field is None or isinstance(base_field, IntegralDomain)): if names is None: names = F F = base_field @@ -169,7 +169,7 @@ def Conic(base_field, F=None, names=None, unique=True): if len(C) != 3: raise TypeError("points in F (=%s) must be planar" % F) P = C.universe() - if not is_IntegralDomain(P): + if not isinstance(P, IntegralDomain): raise TypeError("coordinates of points in F (=%s) must " \ "be in an integral domain" % F) L.append(Sequence([C[0]**2, C[0]*C[1], C[0]*C[2], C[1]**2, @@ -209,7 +209,7 @@ def Conic(base_field, F=None, names=None, unique=True): if base_field is None: base_field = F.base_ring() - if not is_IntegralDomain(base_field): + if not isinstance(base_field, IntegralDomain): raise ValueError("Base field (=%s) must be a field" % base_field) base_field = base_field.fraction_field() if names is None: diff --git a/src/sage/schemes/product_projective/space.py b/src/sage/schemes/product_projective/space.py index 89924350714..b959a0de6e5 100644 --- a/src/sage/schemes/product_projective/space.py +++ b/src/sage/schemes/product_projective/space.py @@ -27,20 +27,22 @@ Defining x0, x1, x2, y0, y1, y2 """ #***************************************************************************** -# Copyright (C) 2014 Volker Braun -# Ben Hutz +# Copyright (C) 2014 Volker Braun +# Copyright (C) 2014 Ben Hutz # -# Distributed under the terms of the GNU General Public License (GPL) -# as published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# http://www.gnu.org/licenses/ +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# http://www.gnu.org/licenses/ #***************************************************************************** + import six from sage.misc.cachefunc import cached_method -from sage.rings.all import (PolynomialRing, ZZ, QQ, Integer) -from sage.rings.commutative_ring import is_CommutativeRing +from sage.rings.all import (PolynomialRing, ZZ, QQ, Integer, + CommutativeRing) from sage.rings.polynomial.polydict import ETuple from sage.schemes.generic.algebraic_scheme import AlgebraicScheme_subscheme_product_projective @@ -131,7 +133,7 @@ def ProductProjectiveSpaces(n, R=None, names='x'): n, R = R, n if not isinstance(n,(list,tuple)): raise ValueError("Need list or tuple of dimensions") - if not is_CommutativeRing(R): + if not isinstance(R, CommutativeRing): raise ValueError("Must be a commutative ring") from sage.structure.category_object import normalize_names n_vars=sum(d+1 for d in n) @@ -208,7 +210,7 @@ def __init__(self, N, R = QQ, names = None): """ assert isinstance(N, (tuple, list)) N = [Integer(n) for n in N] - assert is_CommutativeRing(R) + assert isinstance(R, CommutativeRing) if len(N) < 2: raise ValueError("Must be at least two components for a product") AmbientSpace.__init__(self, sum(N), R) diff --git a/src/sage/schemes/product_projective/wehlerK3.py b/src/sage/schemes/product_projective/wehlerK3.py index 9141d56655d..53d448cf3b0 100644 --- a/src/sage/schemes/product_projective/wehlerK3.py +++ b/src/sage/schemes/product_projective/wehlerK3.py @@ -29,6 +29,15 @@ """ +#***************************************************************************** +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# http://www.gnu.org/licenses/ +#***************************************************************************** + + import sys from sage.calculus.functions import jacobian from sage.categories.fields import Fields @@ -37,8 +46,7 @@ from sage.functions.all import sqrt from sage.misc.cachefunc import cached_method from sage.misc.mrange import xmrange -from sage.rings.all import Integer -from sage.rings.commutative_ring import is_CommutativeRing +from sage.rings.all import Integer, CommutativeRing from sage.rings.finite_rings.finite_field_constructor import GF from sage.rings.finite_rings.finite_field_base import is_FiniteField from sage.rings.fraction_field import FractionField @@ -87,7 +95,7 @@ def WehlerK3Surface(polys): return WehlerK3Surface_finite_field(polys) else: return WehlerK3Surface_field(polys) - elif is_CommutativeRing(R): + elif isinstance(R, CommutativeRing): return WehlerK3Surface_ring(polys) else: raise TypeError( "R ( = %s) must be a commutative ring"%R) diff --git a/src/sage/schemes/projective/projective_space.py b/src/sage/schemes/projective/projective_space.py index 8c14ed2365a..ff542f96c69 100644 --- a/src/sage/schemes/projective/projective_space.py +++ b/src/sage/schemes/projective/projective_space.py @@ -81,11 +81,10 @@ Integer, ZZ) -from sage.rings.ring import is_Ring +from sage.rings.ring import CommutativeRing from sage.rings.rational_field import is_RationalField from sage.rings.polynomial.multi_polynomial_ring import is_MPolynomialRing from sage.rings.finite_rings.finite_field_constructor import is_FiniteField -from sage.rings.commutative_ring import is_CommutativeRing from sage.categories.fields import Fields _Fields = Fields() @@ -208,7 +207,7 @@ def ProjectiveSpace(n, R=None, names='x'): return ProjectiveSpace_rational_field(n, R, names) else: return ProjectiveSpace_field(n, R, names) - elif is_CommutativeRing(R): + elif isinstance(R, CommutativeRing): return ProjectiveSpace_ring(n, R, names) else: raise TypeError("R (=%s) must be a commutative ring"%R) diff --git a/src/sage/structure/element.pyx b/src/sage/structure/element.pyx index aee57750bba..a64dd81de81 100644 --- a/src/sage/structure/element.pyx +++ b/src/sage/structure/element.pyx @@ -2486,12 +2486,12 @@ cdef class CommutativeRingElement(RingElement): #This code is very general, it works for all integral domains that have the #is_square(root = True) option - from sage.rings.integral_domain import is_IntegralDomain + from sage.rings.ring import IntegralDomain P=self._parent is_sqr, sq_rt = self.is_square( root = True ) if is_sqr: if all: - if not is_IntegralDomain(P): + if not isinstance(P, IntegralDomain): raise NotImplementedError('sqrt() with all=True is only implemented for integral domains, not for %s' % P) if P.characteristic()==2 or sq_rt==0: #0 has only one square root, and in charasteristic 2 everything also has only 1 root @@ -2499,7 +2499,7 @@ cdef class CommutativeRingElement(RingElement): return [ sq_rt, -sq_rt ] return sq_rt #from now on we know that self is not a square - if not is_IntegralDomain(P): + if not isinstance(P, IntegralDomain): raise NotImplementedError('sqrt() of non squares is only implemented for integral domains, not for %s' % P) if not extend: #all square roots of a non-square should be an empty list