From f5387f5651a7b69f562300c0a61ca594f0a954f7 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 9 Jun 2024 10:32:34 -0700 Subject: [PATCH 01/16] for a in "CLASS='FractionField';SUFFIX=_generic" "CLASS='FractionFieldElement|Integer|AlgebraicReal|AlgebraicNumber|ComplexDoubleElement|ComplexIntervalFieldElement|ComplexNumber|Rational|RationalField|RealDoubleElement|RealIntervalFieldElement|RealNumber';SUFFIX=" "CLASS='IntegerRing|RealIntervalField';SUFFIX=_class" "CLASS='IntegerMod';SUFFIX=_abstract"; do eval "$a"; git --no-pager grep -l -E 'is_('$CLASS')' src/sage | xargs sed -E -i.bak 's/import is_('$CLASS')/import \1'$SUFFIX'/;/^ +/s/is_('$CLASS')[(]([^()]*([(][^()]*[)])?[^()]*)[)]/isinstance(\2, \1'$SUFFIX')/g'; done --- .../algebras/quatalg/quaternion_algebra.py | 16 +++---- src/sage/arith/long.pxd | 6 +-- .../finite_state_machine_generators.py | 4 +- src/sage/combinat/sf/jack.py | 4 +- .../dynamics/arithmetic_dynamics/affine_ds.py | 4 +- .../arithmetic_dynamics/projective_ds.py | 18 +++---- .../dynamics/complex_dynamics/mandel_julia.py | 6 +-- .../complex_dynamics/mandel_julia_helper.pyx | 6 +-- src/sage/functions/transcendental.py | 4 +- src/sage/groups/affine_gps/affine_group.py | 4 +- src/sage/groups/matrix_gps/matrix_group.py | 4 +- src/sage/matrix/matrix0.pyx | 4 +- src/sage/matrix/matrix2.pyx | 10 ++-- src/sage/matrix/matrix_rational_dense.pyx | 2 +- src/sage/matrix/matrix_space.py | 4 +- src/sage/modular/dirichlet.py | 6 +-- .../modular/modform_hecketriangle/functors.py | 4 +- src/sage/modular/modsym/relation_matrix.py | 4 +- src/sage/modules/free_module.py | 6 +-- src/sage/plot/plot3d/plot3d.py | 6 +-- src/sage/probability/random_variable.py | 6 +-- ...otics_multivariate_generating_functions.py | 4 +- src/sage/rings/complex_double.pyx | 6 +-- src/sage/rings/complex_interval.pyx | 2 +- src/sage/rings/complex_mpfr.pyx | 10 ++-- .../rings/finite_rings/element_givaro.pyx | 2 +- .../rings/finite_rings/element_ntl_gf2e.pyx | 2 +- src/sage/rings/finite_rings/integer_mod.pyx | 12 ++--- src/sage/rings/finite_rings/residue_field.pyx | 6 +-- src/sage/rings/fraction_field.py | 6 +-- src/sage/rings/fraction_field_element.pyx | 8 ++-- src/sage/rings/integer.pyx | 10 ++-- src/sage/rings/integer_fake.pxd | 2 +- src/sage/rings/integer_ring.pyx | 10 ++-- src/sage/rings/laurent_series_ring.py | 4 +- .../rings/number_field/splitting_field.py | 2 +- src/sage/rings/padics/common_conversion.pyx | 6 +-- .../rings/padics/padic_ZZ_pX_CA_element.pyx | 4 +- .../rings/padics/padic_ZZ_pX_CR_element.pyx | 4 +- .../rings/padics/padic_ZZ_pX_FM_element.pyx | 4 +- src/sage/rings/padics/padic_ZZ_pX_element.pyx | 10 ++-- .../rings/padics/padic_template_element.pxi | 2 +- src/sage/rings/polynomial/flatten.py | 8 ++-- .../multi_polynomial_libsingular.pyx | 4 +- .../padics/polynomial_padic_flat.py | 2 +- src/sage/rings/polynomial/plural.pyx | 4 +- .../rings/polynomial/polynomial_element.pyx | 16 +++---- .../polynomial_singular_interface.py | 10 ++-- src/sage/rings/qqbar.py | 48 +++++++++---------- src/sage/rings/rational.pyx | 10 ++-- src/sage/rings/rational_field.py | 2 +- src/sage/rings/real_double.pyx | 6 +-- src/sage/rings/real_mpfi.pyx | 6 +-- src/sage/rings/real_mpfr.pyx | 10 ++-- src/sage/schemes/affine/affine_homset.py | 4 +- src/sage/schemes/affine/affine_space.py | 4 +- .../schemes/berkovich/berkovich_cp_element.py | 6 +-- src/sage/schemes/curves/affine_curve.py | 6 +-- src/sage/schemes/curves/projective_curve.py | 8 ++-- src/sage/schemes/generic/algebraic_scheme.py | 4 +- src/sage/schemes/generic/morphism.py | 4 +- .../hyperelliptic_curves/constructor.py | 2 +- .../hyperelliptic_curves/jacobian_homset.py | 8 ++-- .../schemes/plane_conics/con_number_field.py | 4 +- .../con_rational_function_field.py | 4 +- src/sage/schemes/plane_conics/constructor.py | 8 ++-- src/sage/schemes/product_projective/homset.py | 4 +- .../schemes/projective/projective_homset.py | 4 +- .../schemes/projective/projective_space.py | 4 +- .../projective/projective_subscheme.py | 4 +- src/sage/schemes/toric/fano_variety.py | 4 +- src/sage/sets/set.py | 4 +- src/sage/structure/coerce.pyx | 6 +-- src/sage/structure/parent.pyx | 2 +- src/sage/symbolic/ginac/numeric.cpp | 2 +- src/sage/symbolic/pynac.pxi | 4 +- src/sage/symbolic/ring.pyx | 4 +- 77 files changed, 237 insertions(+), 237 deletions(-) diff --git a/src/sage/algebras/quatalg/quaternion_algebra.py b/src/sage/algebras/quatalg/quaternion_algebra.py index 885ab854170..93e22abd6fd 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra.py +++ b/src/sage/algebras/quatalg/quaternion_algebra.py @@ -51,7 +51,7 @@ from sage.rings.rational import Rational from sage.rings.finite_rings.finite_field_constructor import GF from sage.rings.ideal import Ideal_fractional -from sage.rings.rational_field import is_RationalField, QQ +from sage.rings.rational_field import RationalField, QQ from sage.rings.infinity import infinity from sage.rings.number_field.number_field_base import NumberField from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing @@ -429,7 +429,7 @@ def is_division_algebra(self) -> bool: ... NotImplementedError: base field must be rational numbers """ - if not is_RationalField(self.base_ring()): + if not isinstance(self.base_ring(), RationalField): raise NotImplementedError("base field must be rational numbers") return self.discriminant() != 1 @@ -453,7 +453,7 @@ def is_matrix_ring(self) -> bool: NotImplementedError: base field must be rational numbers """ - if not is_RationalField(self.base_ring()): + if not isinstance(self.base_ring(), RationalField): raise NotImplementedError("base field must be rational numbers") return self.discriminant() == 1 @@ -678,7 +678,7 @@ def __init__(self, base_ring, a, b, names='i,j,k'): Parent.__init__(self, base=base_ring, names=names, category=cat) self._a = a self._b = b - if is_RationalField(base_ring) and a.denominator() == 1 == b.denominator(): + if isinstance(base_ring, RationalField) and a.denominator() == 1 == b.denominator(): self.Element = QuaternionAlgebraElement_rational_field elif (isinstance(base_ring, NumberField) and base_ring.degree() > 2 and base_ring.is_absolute() and a.denominator() == 1 == b.denominator() and base_ring.defining_polynomial().is_monic()): @@ -1066,7 +1066,7 @@ def is_definite(self): ... ValueError: base field must be rational numbers """ - if not is_RationalField(self.base_ring()): + if not isinstance(self.base_ring(), RationalField): raise ValueError("base field must be rational numbers") a, b = self.invariants() return a < 0 and b < 0 @@ -1218,7 +1218,7 @@ def discriminant(self): sage: QuaternionAlgebra(QQ[sqrt(2)], 3, 19).discriminant() # needs sage.symbolic Fractional ideal (1) """ - if not is_RationalField(self.base_ring()): + if not isinstance(self.base_ring(), RationalField): try: F = self.base_ring() return F.hilbert_conductor(self._a, self._b) @@ -1245,7 +1245,7 @@ def ramified_primes(self): sage: QuaternionAlgebra(QQ, -58, -69).ramified_primes() [3, 23, 29] """ - if not is_RationalField(self.base_ring()): + if not isinstance(self.base_ring(), RationalField): raise ValueError("base field must be the rational numbers") a, b = self._a, self._b @@ -2517,7 +2517,7 @@ def attempt_isomorphism(self, other): if other.quaternion_algebra() != Q: raise TypeError('not an order in the same quaternion algebra') - if not is_RationalField(Q.base_ring()): + if not isinstance(Q.base_ring(), RationalField): raise NotImplementedError('only implemented for orders in a rational quaternion algebra') if not Q.is_definite(): raise NotImplementedError('only implemented for definite quaternion orders') diff --git a/src/sage/arith/long.pxd b/src/sage/arith/long.pxd index 44923f802da..18d895bca86 100644 --- a/src/sage/arith/long.pxd +++ b/src/sage/arith/long.pxd @@ -24,7 +24,7 @@ from sage.cpython.pycore_long cimport ( ob_digit, _PyLong_IsNegative, _PyLong_DigitCount) from sage.libs.gmp.mpz cimport mpz_fits_slong_p, mpz_get_si -from sage.rings.integer_fake cimport is_Integer, Integer_AS_MPZ +from sage.rings.integer_fake cimport Integer, Integer_AS_MPZ cdef inline long pyobject_to_long(x) except? LONG_MIN: @@ -65,7 +65,7 @@ cdef inline long pyobject_to_long(x) except? LONG_MIN: if err: raise OverflowError("Python int too large to convert to C long") return value - if is_Integer(x): + if isinstance(x, Integer): z = Integer_AS_MPZ(x) if mpz_fits_slong_p(z): return mpz_get_si(z) @@ -198,7 +198,7 @@ cdef inline bint integer_check_long(x, long* value, int* err) except -1: cdef int c = integer_check_long_py(x, value, err) if c: return c - if is_Integer(x): + if isinstance(x, Integer): z = Integer_AS_MPZ(x) if mpz_fits_slong_p(z): value[0] = mpz_get_si(z) diff --git a/src/sage/combinat/finite_state_machine_generators.py b/src/sage/combinat/finite_state_machine_generators.py index 11cd2d1b3ab..ae708a195ca 100644 --- a/src/sage/combinat/finite_state_machine_generators.py +++ b/src/sage/combinat/finite_state_machine_generators.py @@ -268,8 +268,8 @@ def Word(self, word, input_alphabet=None): TESTS:: - sage: from sage.rings.integer import is_Integer - sage: all(is_Integer(s.label()) for s in A.states()) + sage: from sage.rings.integer import Integer + sage: all(isinstance(s.label(), Integer) for s in A.states()) True """ letters = list(word) diff --git a/src/sage/combinat/sf/jack.py b/src/sage/combinat/sf/jack.py index 8c62cfb08df..e70959f8dfc 100644 --- a/src/sage/combinat/sf/jack.py +++ b/src/sage/combinat/sf/jack.py @@ -36,7 +36,7 @@ from sage.rings.rational_field import QQ from sage.arith.misc import gcd from sage.arith.functions import lcm -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.misc.misc_c import prod from sage.categories.morphism import SetMorphism from sage.categories.homset import Hom, End @@ -481,7 +481,7 @@ def normalize_coefficients(self, c): 6/(t^2 + 3*t + 2) """ BR = self.base_ring() - if is_FractionField(BR) and BR.base_ring() == QQ: + if isinstance(BR, FractionField_generic) and BR.base_ring() == QQ: denom = c.denominator() numer = c.numerator() diff --git a/src/sage/dynamics/arithmetic_dynamics/affine_ds.py b/src/sage/dynamics/arithmetic_dynamics/affine_ds.py index a1e4bc1700d..2b9dd28b13b 100644 --- a/src/sage/dynamics/arithmetic_dynamics/affine_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/affine_ds.py @@ -45,7 +45,7 @@ class initialization directly. from sage.rings.integer import Integer from sage.rings.finite_rings.finite_field_base import FiniteField from sage.rings.fraction_field import FractionField -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.rings.quotient_ring import is_QuotientRing from sage.schemes.affine.affine_morphism import SchemeMorphism_polynomial_affine_space from sage.schemes.affine.affine_morphism import SchemeMorphism_polynomial_affine_space_field @@ -261,7 +261,7 @@ def __classcall_private__(cls, morphism_or_polys, domain=None): polys = [morphism_or_polys] PR = get_coercion_model().common_parent(*polys) - fraction_field = any(is_FractionField(poly.parent()) for poly in polys) + fraction_field = any(isinstance(poly.parent(), FractionField_generic) for poly in polys) if fraction_field: K = PR.base_ring().fraction_field() # Replace base ring with its fraction field diff --git a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py index 4b3ebd0d89a..a4eef361ee0 100644 --- a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py @@ -88,7 +88,7 @@ class initialization directly. from sage.rings.finite_rings.finite_field_constructor import GF from sage.rings.finite_rings.integer_mod_ring import Zmod from sage.rings.fraction_field import (FractionField, is_FractionField, FractionField_1poly_field) -from sage.rings.fraction_field_element import is_FractionFieldElement, FractionFieldElement +from sage.rings.fraction_field_element import FractionField_genericElement, FractionFieldElement from sage.rings.function_field.function_field import is_FunctionField from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ @@ -394,11 +394,11 @@ def __classcall_private__(cls, morphism_or_polys, domain=None, names=None): # homogenize! f = morphism_or_polys aff_CR = f.parent() - if (not is_PolynomialRing(aff_CR) and not is_FractionField(aff_CR) + if (not is_PolynomialRing(aff_CR) and not isinstance(aff_CR, FractionField_generic) and not (is_MPolynomialRing(aff_CR) and aff_CR.ngens() == 1)): msg = '{} is not a single variable polynomial or rational function' raise ValueError(msg.format(f)) - if is_FractionField(aff_CR): + if isinstance(aff_CR, FractionField_generic): polys = [f.numerator(),f.denominator()] else: polys = [f, aff_CR(1)] @@ -889,7 +889,7 @@ def dynatomic_polynomial(self, period): # do it again to divide out by denominators of coefficients PHI = QR2[0].sage() PHI = PHI.numerator()._maxima_().divide(PHI.denominator())[0].sage() - if not is_FractionFieldElement(PHI): + if not isinstance(PHI, FractionFieldElement): from sage.symbolic.expression_conversions import polynomial PHI = polynomial(PHI, ring=self.coordinate_ring()) except (TypeError, NotImplementedError): #something Maxima, or the conversion, can't handle @@ -3533,7 +3533,7 @@ def affine_preperiodic_model(self, m, n, return_conjugation=False): if hyperplane_found: break else: - if is_PolynomialRing(R) or is_MPolynomialRing(R) or is_FractionField(R): + if is_PolynomialRing(R) or is_MPolynomialRing(R) or isinstance(R, FractionField_generic): # for polynomial rings, we can get an infinite family of hyperplanes # by increasing the degree var = R.gen() @@ -3702,7 +3702,7 @@ def automorphism_group(self, **kwds): raise NotImplementedError("rational function of degree 1 not implemented") f = self.dehomogenize(1) R = PolynomialRing(f.base_ring(),'x') - if is_FractionFieldElement(f[0]): + if isinstance(f[0], FractionFieldElement): F = (f[0].numerator().univariate_polynomial(R))/f[0].denominator().univariate_polynomial(R) else: F = f[0].univariate_polynomial(R) @@ -4880,7 +4880,7 @@ def periodic_points(self, n, minimal=True, formal=False, R=None, algorithm='vari if isinstance(R, FractionField_1poly_field) or is_FunctionField(R): raise NotImplementedError('periodic points not implemented for fraction function fields; ' 'clear denominators and use the polynomial ring instead') - if is_FractionField(R): + if isinstance(R, FractionField_generic): if is_MPolynomialRing(R.ring()): raise NotImplementedError('periodic points not implemented for fraction function fields; ' 'clear denominators and use the polynomial ring instead') @@ -5784,7 +5784,7 @@ def sigma_invariants(self, n, formal=False, embedding=None, type='point', X = X.change_ring(F) else: F = base_ring - if is_FractionField(base_ring): + if isinstance(base_ring, FractionField_generic): if is_MPolynomialRing(base_ring.ring()) or is_PolynomialRing(base_ring.ring()): f.normalize_coordinates() f_ring = f.change_ring(base_ring.ring()) @@ -5886,7 +5886,7 @@ def sigma_invariants(self, n, formal=False, embedding=None, type='point', return sigmas base_ring = dom.base_ring() - if is_FractionField(base_ring): + if isinstance(base_ring, FractionField_generic): base_ring = base_ring.ring() if (is_PolynomialRing(base_ring) or is_MPolynomialRing(base_ring)): base_ring = base_ring.base_ring() diff --git a/src/sage/dynamics/complex_dynamics/mandel_julia.py b/src/sage/dynamics/complex_dynamics/mandel_julia.py index 00eb7d473eb..8ceb38d0cec 100644 --- a/src/sage/dynamics/complex_dynamics/mandel_julia.py +++ b/src/sage/dynamics/complex_dynamics/mandel_julia.py @@ -51,7 +51,7 @@ from sage.schemes.projective.projective_space import ProjectiveSpace from sage.misc.prandom import randint from sage.calculus.var import var -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.categories.function_fields import FunctionFields lazy_import('sage.dynamics.arithmetic_dynamics.generic_ds', 'DynamicalSystem') @@ -243,14 +243,14 @@ def mandelbrot_plot(f=None, **kwds): P = f.parent() if P.base_ring() is CC or P.base_ring() is CDF: - if is_FractionField(P): + if isinstance(P, FractionField_generic): raise NotImplementedError("coefficients must be polynomials in the parameter") gen_list = list(P.gens()) parameter = gen_list.pop(gen_list.index(parameter)) variable = gen_list.pop() elif P.base_ring().base_ring() is CC or P.base_ring().base_ring() is CDF: - if is_FractionField(P.base_ring()): + if isinstance(P.base_ring(), FractionField_generic): raise NotImplementedError("coefficients must be polynomials in the parameter") phi = P.flattening_morphism() f = phi(f) diff --git a/src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx b/src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx index 2cb446886e1..479589dc0e3 100644 --- a/src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx +++ b/src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx @@ -34,7 +34,7 @@ from sage.ext.fast_callable import fast_callable from sage.calculus.all import symbolic_expression from sage.symbolic.ring import SR from sage.calculus.var import var -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.categories.function_fields import FunctionFields from cypari2.handle_error import PariError from math import sqrt @@ -709,14 +709,14 @@ cpdef polynomial_mandelbrot(f, parameter=None, double x_center=0, P = f.parent() if P.base_ring() is CC: - if is_FractionField(P): + if isinstance(P, FractionField_generic): raise NotImplementedError("coefficients must be polynomials in the parameter") gen_list = list(P.gens()) parameter = gen_list.pop(gen_list.index(parameter)) variable = gen_list.pop() elif P.base_ring().base_ring() is CC: - if is_FractionField(P.base_ring()): + if isinstance(P.base_ring(), FractionField_generic): raise NotImplementedError("coefficients must be polynomials in the parameter") phi = P.flattening_morphism() f = phi(f) diff --git a/src/sage/functions/transcendental.py b/src/sage/functions/transcendental.py index 1c657f5b8b3..5033e16f9bb 100644 --- a/src/sage/functions/transcendental.py +++ b/src/sage/functions/transcendental.py @@ -452,7 +452,7 @@ def zeta_symmetric(s): - I copied the definition of xi from http://web.viu.ca/pughg/RiemannZeta/RiemannZetaLong.html """ - if not (is_ComplexNumber(s) or is_RealNumber(s)): + if not (isinstance(s, ComplexNumber) or isinstance(s, RealNumber)): s = ComplexField()(s) R = s.parent() @@ -544,7 +544,7 @@ def _eval_(self, x): sage: dickman_rho(0) # needs sage.symbolic 1.00000000000000 """ - if not is_RealNumber(x): + if not isinstance(x, RealNumber): try: x = RR(x) except (TypeError, ValueError): diff --git a/src/sage/groups/affine_gps/affine_group.py b/src/sage/groups/affine_gps/affine_group.py index 7d27488ec59..07b63d4a2bc 100644 --- a/src/sage/groups/affine_gps/affine_group.py +++ b/src/sage/groups/affine_gps/affine_group.py @@ -173,8 +173,8 @@ def __classcall__(cls, *args, **kwds): ring = V.base_ring() if len(args) == 2: degree, ring = args - from sage.rings.integer import is_Integer - if is_Integer(ring): + from sage.rings.integer import Integer + if isinstance(ring, Integer): from sage.rings.finite_rings.finite_field_constructor import FiniteField var = kwds.get('var', 'a') ring = FiniteField(ring, var) diff --git a/src/sage/groups/matrix_gps/matrix_group.py b/src/sage/groups/matrix_gps/matrix_group.py index ef05b55c190..f9135822de4 100644 --- a/src/sage/groups/matrix_gps/matrix_group.py +++ b/src/sage/groups/matrix_gps/matrix_group.py @@ -59,7 +59,7 @@ from sage.categories.groups import Groups from sage.categories.rings import Rings -from sage.rings.integer import is_Integer +from sage.rings.integer import Integer from sage.matrix.matrix_space import MatrixSpace from sage.misc.latex import latex from sage.structure.richcmp import (richcmp_not_equal, rich_to_bool, @@ -417,7 +417,7 @@ def __init__(self, degree, base_ring, category=None): True """ assert base_ring in Rings - assert is_Integer(degree) + assert isinstance(degree, Integer) self._deg = degree if self._deg <= 0: diff --git a/src/sage/matrix/matrix0.pyx b/src/sage/matrix/matrix0.pyx index c5280bbe578..ed8009caf31 100644 --- a/src/sage/matrix/matrix0.pyx +++ b/src/sage/matrix/matrix0.pyx @@ -42,7 +42,7 @@ from sage.categories.commutative_rings import CommutativeRings from sage.categories.rings import Rings import sage.rings.abc -from sage.rings.integer_ring import is_IntegerRing +from sage.rings.integer_ring import IntegerRing import sage.modules.free_module @@ -5975,7 +5975,7 @@ cdef class Matrix(sage.structure.element.Matrix): return (~self.lift_centered()).change_ring(R) except (TypeError, ZeroDivisionError): raise ZeroDivisionError("input matrix must be nonsingular") - elif algorithm is None and is_IntegerRing(R): + elif algorithm is None and isinstance(R, IntegerRing_class): try: return (~self).change_ring(R) except (TypeError, ZeroDivisionError): diff --git a/src/sage/matrix/matrix2.pyx b/src/sage/matrix/matrix2.pyx index c0f1d646340..1130f5b0968 100644 --- a/src/sage/matrix/matrix2.pyx +++ b/src/sage/matrix/matrix2.pyx @@ -4538,11 +4538,11 @@ cdef class Matrix(Matrix1): algorithm = 'default' elif algorithm not in ['default', 'generic', 'flint', 'pari', 'padic', 'pluq']: raise ValueError("matrix kernel algorithm '%s' not recognized" % algorithm) - elif algorithm == 'padic' and not (is_IntegerRing(R) or is_RationalField(R)): + elif algorithm == 'padic' and not (isinstance(R, IntegerRing_class) or isinstance(R, RationalField)): raise ValueError("'padic' matrix kernel algorithm only available over the rationals and the integers, not over %s" % R) - elif algorithm == 'flint' and not (is_IntegerRing(R) or is_RationalField(R)): + elif algorithm == 'flint' and not (isinstance(R, IntegerRing_class) or isinstance(R, RationalField)): raise ValueError("'flint' matrix kernel algorithm only available over the rationals and the integers, not over %s" % R) - elif algorithm == 'pari' and not (is_IntegerRing(R) or (isinstance(R, NumberField) and not is_RationalField(R))): + elif algorithm == 'pari' and not (isinstance(R, IntegerRing_class) or (isinstance(R, NumberField) and not isinstance(R, RationalField))): raise ValueError("'pari' matrix kernel algorithm only available over non-trivial number fields and the integers, not over %s" % R) elif algorithm == 'generic' and R not in _Fields: raise ValueError("'generic' matrix kernel algorithm only available over a field, not over %s" % R) @@ -4557,7 +4557,7 @@ cdef class Matrix(Matrix1): raise ValueError("matrix kernel basis format '%s' not recognized" % basis) elif basis == 'pivot' and R not in _Fields: raise ValueError('pivot basis only available over a field, not over %s' % R) - elif basis == 'LLL' and not is_IntegerRing(R): + elif basis == 'LLL' and not isinstance(R, IntegerRing_class): raise ValueError('LLL-reduced basis only available over the integers, not over %s' % R) if basis == 'default': basis = 'echelon' if R in _Fields else 'computed' @@ -4566,7 +4566,7 @@ cdef class Matrix(Matrix1): proof = kwds.pop('proof', None) if proof not in [None, True, False]: raise ValueError("'proof' must be one of True, False or None, not %s" % proof) - if not (proof is None or is_IntegerRing(R)): + if not (proof is None or isinstance(R, IntegerRing_class)): raise ValueError("'proof' flag only valid for matrices over the integers") # We could sanitize/process remaining (un-popped) keywords here and diff --git a/src/sage/matrix/matrix_rational_dense.pyx b/src/sage/matrix/matrix_rational_dense.pyx index 27650a74482..1b18a7d8821 100644 --- a/src/sage/matrix/matrix_rational_dense.pyx +++ b/src/sage/matrix/matrix_rational_dense.pyx @@ -1465,7 +1465,7 @@ cdef class Matrix_rational_dense(Matrix_dense): if self._is_immutable: return self return self.__copy__() - if is_IntegerRing(R): + if isinstance(R, IntegerRing_class): A, d = self._clear_denom() if not d.is_one(): raise TypeError("matrix has denominators so can't change to ZZ") diff --git a/src/sage/matrix/matrix_space.py b/src/sage/matrix/matrix_space.py index 473d961d090..603ba67395d 100644 --- a/src/sage/matrix/matrix_space.py +++ b/src/sage/matrix/matrix_space.py @@ -402,7 +402,7 @@ def get_matrix_class(R, nrows, ncols, sparse, implementation): if R.order() < matrix_modn_sparse.MAX_MODULUS: return matrix_modn_sparse.Matrix_modn_sparse - if sage.rings.rational_field.is_RationalField(R): + if sage.rings.rational_field.isinstance(R, RationalField): try: from . import matrix_rational_sparse except ImportError: @@ -410,7 +410,7 @@ def get_matrix_class(R, nrows, ncols, sparse, implementation): else: return matrix_rational_sparse.Matrix_rational_sparse - if sage.rings.integer_ring.is_IntegerRing(R): + if sage.rings.integer_ring.isinstance(R, IntegerRing_class): try: from . import matrix_integer_sparse except ImportError: diff --git a/src/sage/modular/dirichlet.py b/src/sage/modular/dirichlet.py index 86b7a8a29f2..aefe28dad34 100644 --- a/src/sage/modular/dirichlet.py +++ b/src/sage/modular/dirichlet.py @@ -1386,7 +1386,7 @@ def gauss_sum(self, a=1): elif isinstance(K, sage.rings.abc.AlgebraicField): L = K zeta = L.zeta(m) - elif isinstance(K, sage.rings.abc.NumberField_cyclotomic) or is_RationalField(K): + elif isinstance(K, sage.rings.abc.NumberField_cyclotomic) or isinstance(K, RationalField): chi = chi.minimize_base_ring() n = lcm(m, G.zeta_order()) L = CyclotomicField(n) @@ -1467,7 +1467,7 @@ def phi(t): from sage.rings.complex_mpfr import ComplexField CC = ComplexField(prec) phi = CC.coerce_map_from(K) - elif isinstance(K, sage.rings.abc.NumberField_cyclotomic) or is_RationalField(K): + elif isinstance(K, sage.rings.abc.NumberField_cyclotomic) or isinstance(K, RationalField): phi = K.complex_embedding(prec) CC = phi.codomain() else: @@ -1688,7 +1688,7 @@ def kloosterman_sum_numerical(self, prec=53, a=1, b=0): """ G = self.parent() K = G.base_ring() - if not (isinstance(K, sage.rings.abc.NumberField_cyclotomic) or is_RationalField(K)): + if not (isinstance(K, sage.rings.abc.NumberField_cyclotomic) or isinstance(K, RationalField)): raise NotImplementedError("Kloosterman sums only currently implemented when the base ring is a cyclotomic field or QQ.") phi = K.complex_embedding(prec) CC = phi.codomain() diff --git a/src/sage/modular/modform_hecketriangle/functors.py b/src/sage/modular/modform_hecketriangle/functors.py index aae555d250a..b0fdfcf5ac7 100644 --- a/src/sage/modular/modform_hecketriangle/functors.py +++ b/src/sage/modular/modform_hecketriangle/functors.py @@ -78,12 +78,12 @@ def _get_base_ring(ring, var_name="d"): True """ - # from sage.rings.fraction_field import is_FractionField + # from sage.rings.fraction_field import FractionField_generic from sage.rings.polynomial.polynomial_ring import is_PolynomialRing from sage.categories.pushout import FractionField as FractionFieldFunctor base_ring = ring - # if (is_FractionField(base_ring)): + # if (isinstance(base_ring, FractionField_generic)): # base_ring = base_ring.base() if (base_ring.construction() and base_ring.construction()[0] == FractionFieldFunctor()): base_ring = base_ring.construction()[1] diff --git a/src/sage/modular/modsym/relation_matrix.py b/src/sage/modular/modsym/relation_matrix.py index ef0e17eef6a..7d58bb62a48 100644 --- a/src/sage/modular/modsym/relation_matrix.py +++ b/src/sage/modular/modsym/relation_matrix.py @@ -27,7 +27,7 @@ from sage.misc.search import search from sage.misc.verbose import verbose from sage.modular.modsym.manin_symbol_list import ManinSymbolList -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.categories.rings import Rings @@ -498,7 +498,7 @@ def relation_matrix_wtk_g0(syms, sign, field, sparse): rels = sorted(rels) # required for stability of doctests with python3 - if syms._apply_S_only_0pm1() and is_RationalField(field): + if syms._apply_S_only_0pm1() and isinstance(field, RationalField): from . import relation_matrix_pyx mod = relation_matrix_pyx.sparse_2term_quotient_only_pm1(rels, len(syms)) else: diff --git a/src/sage/modules/free_module.py b/src/sage/modules/free_module.py index ad94efcc94b..ae97410a5df 100644 --- a/src/sage/modules/free_module.py +++ b/src/sage/modules/free_module.py @@ -3823,7 +3823,7 @@ def index_in(self, other): return sage.rings.infinity.infinity a = sage.matrix.matrix_space.MatrixSpace(self.base_field(), self.rank())(C).determinant() - if sage.rings.integer_ring.is_IntegerRing(self.base_ring()): + if sage.rings.integer_ring.isinstance(self.base_ring(), IntegerRing_class): return a.abs() elif isinstance(self.base_ring, sage.rings.abc.Order): return self.base_ring().ideal(a).norm() @@ -8266,10 +8266,10 @@ def element_class(R, is_sparse): """ import sage.rings.integer_ring - if sage.rings.integer_ring.is_IntegerRing(R) and not is_sparse: + if sage.rings.integer_ring.isinstance(R, IntegerRing_class) and not is_sparse: from sage.modules.vector_integer_dense import Vector_integer_dense return Vector_integer_dense - elif sage.rings.rational_field.is_RationalField(R) and not is_sparse: + elif sage.rings.rational_field.isinstance(R, RationalField) and not is_sparse: from sage.modules.vector_rational_dense import Vector_rational_dense return Vector_rational_dense elif isinstance(R, sage.rings.abc.IntegerModRing) and not is_sparse: diff --git a/src/sage/plot/plot3d/plot3d.py b/src/sage/plot/plot3d/plot3d.py index ad885744ba7..4e19284828a 100644 --- a/src/sage/plot/plot3d/plot3d.py +++ b/src/sage/plot/plot3d/plot3d.py @@ -318,9 +318,9 @@ def to_cartesian(self, func, params=None): """ from sage.structure.element import Expression - from sage.rings.real_mpfr import is_RealNumber - from sage.rings.integer import is_Integer - if params is not None and (isinstance(func, Expression) or is_RealNumber(func) or is_Integer(func)): + from sage.rings.real_mpfr import RealNumber + from sage.rings.integer import Integer + if params is not None and (isinstance(func, Expression) or isinstance(func, RealNumber) or isinstance(func, Integer)): return self.transform(**{ self.dep_var: func, self.indep_vars[0]: params[0], diff --git a/src/sage/probability/random_variable.py b/src/sage/probability/random_variable.py index 4a385e55150..a07af1220d6 100644 --- a/src/sage/probability/random_variable.py +++ b/src/sage/probability/random_variable.py @@ -19,7 +19,7 @@ from sage.structure.parent import Parent from sage.functions.log import log from sage.misc.functional import sqrt -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.sets.set import Set from pprint import pformat @@ -343,11 +343,11 @@ def __init__(self, X, P, codomain=None, check=False): if codomain is None: from sage.rings.real_mpfr import RealField codomain = RealField() - if not isinstance(codomain, sage.rings.abc.RealField) and not is_RationalField(codomain): + if not isinstance(codomain, sage.rings.abc.RealField) and not isinstance(codomain, RationalField): raise TypeError("Argument codomain (= %s) must be the reals or rationals" % codomain) if check: one = sum(P.values()) - if is_RationalField(codomain): + if isinstance(codomain, RationalField): if not one == 1: raise TypeError("Argument P (= %s) does not define a probability function") else: diff --git a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py index 1039ce81bbc..f5163d394a5 100644 --- a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py +++ b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py @@ -3289,8 +3289,8 @@ def _coerce_map_from_(self, P): if self.base().has_coerce_map_from(P.base()): return True - from sage.rings.fraction_field import is_FractionField - if is_FractionField(P): + from sage.rings.fraction_field import FractionField_generic + if isinstance(P, FractionField_generic): B = P.base() from sage.rings.polynomial.polynomial_ring import is_PolynomialRing from sage.rings.polynomial.multi_polynomial_ring_base import is_MPolynomialRing diff --git a/src/sage/rings/complex_double.pyx b/src/sage/rings/complex_double.pyx index 2f85cbd101a..9e2c27c9515 100644 --- a/src/sage/rings/complex_double.pyx +++ b/src/sage/rings/complex_double.pyx @@ -704,10 +704,10 @@ def is_ComplexDoubleElement(x): EXAMPLES:: - sage: from sage.rings.complex_double import is_ComplexDoubleElement - sage: is_ComplexDoubleElement(0) + sage: from sage.rings.complex_double import ComplexDoubleElement + sage: isinstance(0, ComplexDoubleElement) False - sage: is_ComplexDoubleElement(CDF(0)) + sage: isinstance(CDF(0), ComplexDoubleElement) True """ return isinstance(x, ComplexDoubleElement) diff --git a/src/sage/rings/complex_interval.pyx b/src/sage/rings/complex_interval.pyx index cd4ba7bb8e8..b6952062f84 100644 --- a/src/sage/rings/complex_interval.pyx +++ b/src/sage/rings/complex_interval.pyx @@ -80,7 +80,7 @@ def is_ComplexIntervalFieldElement(x): EXAMPLES:: - sage: from sage.rings.complex_interval import is_ComplexIntervalFieldElement as is_CIFE + sage: from sage.rings.complex_interval import ComplexIntervalFieldElement as is_CIFE sage: is_CIFE(CIF(2)) True sage: is_CIFE(CC(2)) diff --git a/src/sage/rings/complex_mpfr.pyx b/src/sage/rings/complex_mpfr.pyx index e1ce333d57d..e6205aeabfd 100644 --- a/src/sage/rings/complex_mpfr.pyx +++ b/src/sage/rings/complex_mpfr.pyx @@ -123,14 +123,14 @@ def is_ComplexNumber(x): EXAMPLES:: - sage: from sage.rings.complex_mpfr import is_ComplexNumber + sage: from sage.rings.complex_mpfr import ComplexNumber sage: a = ComplexNumber(1, 2); a 1.00000000000000 + 2.00000000000000*I - sage: is_ComplexNumber(a) + sage: isinstance(a, ComplexNumber) True sage: b = ComplexNumber(1); b 1.00000000000000 - sage: is_ComplexNumber(b) + sage: isinstance(b, ComplexNumber) True Note that the global element ``I`` is a number field element, of type @@ -140,10 +140,10 @@ def is_ComplexNumber(x): sage: # needs sage.symbolic sage: c = 1 + 2*I - sage: is_ComplexNumber(c) + sage: isinstance(c, ComplexNumber) False sage: d = CC(1 + 2*I) - sage: is_ComplexNumber(d) + sage: isinstance(d, ComplexNumber) True """ return isinstance(x, ComplexNumber) diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx index a4a0aa5cd68..b6831b9c034 100644 --- a/src/sage/rings/finite_rings/element_givaro.pyx +++ b/src/sage/rings/finite_rings/element_givaro.pyx @@ -361,7 +361,7 @@ cdef class Cache_givaro(Cache_base): else: raise TypeError("unable to coerce from a finite field other than the prime subfield") - elif isinstance(e, (int, Integer)) or is_IntegerMod(e): + elif isinstance(e, (int, Integer)) or isinstance(e, IntegerMod_abstract): try: e_int = e % self.characteristic() self.objectptr.initi(res, e_int) diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index 512ac4ec1d2..7774fc11669 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -275,7 +275,7 @@ cdef class Cache_ntl_gf2e(Cache_base): cdef FiniteField_ntl_gf2eElement g cdef Py_ssize_t i - if is_IntegerMod(e): + if isinstance(e, IntegerMod_abstract): e = e.lift() if isinstance(e, (int, Integer)): GF2E_conv_long(res.x,int(e&1)) diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index 097f8ac87d3..9beb7faeef3 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -211,10 +211,10 @@ def is_IntegerMod(x): EXAMPLES:: - sage: from sage.rings.finite_rings.integer_mod import is_IntegerMod - sage: is_IntegerMod(5) + sage: from sage.rings.finite_rings.integer_mod import IntegerMod + sage: isinstance(5, IntegerMod_abstract) False - sage: is_IntegerMod(Mod(5,10)) + sage: isinstance(Mod(5,10), IntegerMod_abstract) True """ return isinstance(x, IntegerMod_abstract) @@ -4213,18 +4213,18 @@ def lucas(k, P, Q=1, n=None): """ cdef IntegerMod_abstract p,q - if n is None and not is_IntegerMod(P): + if n is None and not isinstance(P, IntegerMod_abstract): raise ValueError if n is None: n = P.modulus() - if not is_IntegerMod(P): + if not isinstance(P, IntegerMod_abstract): p = Mod(P,n) else: p = P - if not is_IntegerMod(Q): + if not isinstance(Q, IntegerMod_abstract): q = Mod(Q,n) else: q = Q diff --git a/src/sage/rings/finite_rings/residue_field.pyx b/src/sage/rings/finite_rings/residue_field.pyx index 5e9d74844e3..7a7fa6dfc23 100644 --- a/src/sage/rings/finite_rings/residue_field.pyx +++ b/src/sage/rings/finite_rings/residue_field.pyx @@ -186,7 +186,7 @@ from sage.rings.ideal import is_Ideal from sage.rings.number_field.number_field_element_base import NumberFieldElement_base from sage.rings.number_field.number_field_ideal import NumberFieldIdeal -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.polynomial.polynomial_ring import is_PolynomialRing @@ -1138,7 +1138,7 @@ cdef class ReductionMap(Map): return FiniteField_prime_modn._element_constructor_(self._F, x) except ZeroDivisionError: raise ZeroDivisionError("Cannot reduce rational %s modulo %s: it has negative valuation" % (x, p.gen())) - elif is_FractionField(self._K): + elif isinstance(self._K, FractionField_generic): p = p.gen() if p.degree() == 1: return self._F((x.numerator() % p)[0] / (x.denominator() % p)[0]) @@ -1656,7 +1656,7 @@ cdef class LiftingMap(Section): """ if self._K is QQ or self._K is ZZ: return self._K(x.lift()) # x.lift() is in ZZ - elif is_FractionField(self._K): + elif isinstance(self._K, FractionField_generic): if self._F.p.degree() == 1: return self._K(self._K.ring_of_integers()(x)) else: diff --git a/src/sage/rings/fraction_field.py b/src/sage/rings/fraction_field.py index 742729981eb..8b0c8950baa 100644 --- a/src/sage/rings/fraction_field.py +++ b/src/sage/rings/fraction_field.py @@ -149,10 +149,10 @@ def is_FractionField(x) -> bool: EXAMPLES:: - sage: from sage.rings.fraction_field import is_FractionField - sage: is_FractionField(Frac(ZZ['x'])) + sage: from sage.rings.fraction_field import FractionField_generic + sage: isinstance(Frac(ZZ['x']), FractionField_generic) True - sage: is_FractionField(QQ) + sage: isinstance(QQ, FractionField_generic) False """ return isinstance(x, FractionField_generic) diff --git a/src/sage/rings/fraction_field_element.pyx b/src/sage/rings/fraction_field_element.pyx index a9c427c03bc..0b2632276c2 100644 --- a/src/sage/rings/fraction_field_element.pyx +++ b/src/sage/rings/fraction_field_element.pyx @@ -34,13 +34,13 @@ def is_FractionFieldElement(x): EXAMPLES:: - sage: from sage.rings.fraction_field_element import is_FractionFieldElement + sage: from sage.rings.fraction_field_element import FractionField_genericElement sage: R. = ZZ[] - sage: is_FractionFieldElement(x/2) + sage: isinstance(x/2, FractionFieldElement) False - sage: is_FractionFieldElement(2/x) + sage: isinstance(2/x, FractionFieldElement) True - sage: is_FractionFieldElement(1/3) + sage: isinstance(1/3, FractionFieldElement) False """ return isinstance(x, FractionFieldElement) diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index 6d9155b643f..4eda4fde13f 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -324,14 +324,14 @@ def is_Integer(x): EXAMPLES:: - sage: from sage.rings.integer import is_Integer - sage: is_Integer(2) + sage: from sage.rings.integer import Integer + sage: isinstance(2, Integer) True - sage: is_Integer(2/1) + sage: isinstance(2/1, Integer) False - sage: is_Integer(int(2)) + sage: isinstance(int(2), Integer) False - sage: is_Integer('5') + sage: isinstance('5', Integer) False """ return isinstance(x, Integer) diff --git a/src/sage/rings/integer_fake.pxd b/src/sage/rings/integer_fake.pxd index 73e9d802462..6fa5f82624b 100644 --- a/src/sage/rings/integer_fake.pxd +++ b/src/sage/rings/integer_fake.pxd @@ -23,7 +23,7 @@ TESTS:: ....: from sage.rings.integer_fake cimport Integer_AS_MPZ, is_Integer ....: from sage.rings.integer cimport Integer ....: cdef Integer x = Integer(123456789) - ....: assert is_Integer(x) + ....: assert isinstance(x, Integer) ....: assert Integer_AS_MPZ(x) is x.value ....: ''') """ diff --git a/src/sage/rings/integer_ring.pyx b/src/sage/rings/integer_ring.pyx index 12b522a8bd7..a4d1e35fa94 100644 --- a/src/sage/rings/integer_ring.pyx +++ b/src/sage/rings/integer_ring.pyx @@ -94,14 +94,14 @@ def is_IntegerRing(x): TESTS:: - sage: from sage.rings.integer_ring import is_IntegerRing - sage: is_IntegerRing(ZZ) + sage: from sage.rings.integer_ring import IntegerRing + sage: isinstance(ZZ, IntegerRing_class) True - sage: is_IntegerRing(QQ) + sage: isinstance(QQ, IntegerRing_class) False - sage: is_IntegerRing(parent(3)) + sage: isinstance(parent(3), IntegerRing_class) True - sage: is_IntegerRing(parent(1/3)) + sage: isinstance(parent(1/3), IntegerRing_class) False """ return isinstance(x, IntegerRing_class) diff --git a/src/sage/rings/laurent_series_ring.py b/src/sage/rings/laurent_series_ring.py index 8df962fe320..71052ed8dad 100644 --- a/src/sage/rings/laurent_series_ring.py +++ b/src/sage/rings/laurent_series_ring.py @@ -503,7 +503,7 @@ def _element_constructor_(self, x, n=0, prec=infinity): sage: P({-3: 1}) x^-3 """ - from sage.rings.fraction_field_element import is_FractionFieldElement + from sage.rings.fraction_field_element import FractionField_genericElement from sage.rings.lazy_series import LazyPowerSeries, LazyLaurentSeries from sage.rings.polynomial.multi_polynomial import MPolynomial from sage.rings.polynomial.polynomial_element import Polynomial @@ -536,7 +536,7 @@ def _element_constructor_(self, x, n=0, prec=infinity): return (x << n).add_bigoh(bigoh) else: # General case, pretend to be a polynomial return (self(self.polynomial_ring()(x)) << n).add_bigoh(prec) - elif (is_FractionFieldElement(x) + elif (isinstance(x, FractionFieldElement) and (x.base_ring() is self.base_ring() or x.base_ring() == self.base_ring()) and isinstance(x.numerator(), (Polynomial, MPolynomial))): x = self(x.numerator()) / self(x.denominator()) diff --git a/src/sage/rings/number_field/splitting_field.py b/src/sage/rings/number_field/splitting_field.py index ef26176664a..7240b437693 100644 --- a/src/sage/rings/number_field/splitting_field.py +++ b/src/sage/rings/number_field/splitting_field.py @@ -382,7 +382,7 @@ def splitting_field(poly, name, map=False, degree_multiple=None, abort_degree=No # Kpol = PARI polynomial in y defining the extension found so far F = poly.base_ring() - if is_RationalField(F): + if isinstance(F, RationalField): Kpol = pari("'y") else: Kpol = F.pari_polynomial("y") diff --git a/src/sage/rings/padics/common_conversion.pyx b/src/sage/rings/padics/common_conversion.pyx index 0afddcc30a4..e7994e47844 100644 --- a/src/sage/rings/padics/common_conversion.pyx +++ b/src/sage/rings/padics/common_conversion.pyx @@ -148,7 +148,7 @@ cdef long get_ordp(x, PowComputer_class prime_pow) except? -10000: k = valp(pari_tmp) else: # t_INT and t_FRAC were converted before this function raise TypeError("unsupported coercion from pari: only p-adics, integers and rationals allowed") - elif sage.rings.finite_rings.integer_mod.is_IntegerMod(x): + elif sage.rings.finite_rings.integer_mod.isinstance(x, IntegerMod_abstract): value = x.lift() if mpz_sgn(value.value) == 0: return maxordp @@ -221,7 +221,7 @@ cdef long get_preccap(x, PowComputer_class prime_pow) except? -10000: pari_tmp = (x).g # since get_ordp has been called typ(x.g) == t_PADIC k = valp(pari_tmp) + precp(pari_tmp) - elif sage.rings.finite_rings.integer_mod.is_IntegerMod(x): + elif sage.rings.finite_rings.integer_mod.isinstance(x, IntegerMod_abstract): k = mpz_remove(temp.value, (x.modulus()).value, prime_pow.prime.value) if mpz_cmp_ui(temp.value, 1) != 0: raise TypeError("cannot coerce from the given integer mod ring (not a power of the same prime)") @@ -411,7 +411,7 @@ cdef inline int cconv_shared(mpz_t out, x, long prec, long valshift, PowComputer x = x.sage() if isinstance(x, pAdicGenericElement) and x.parent().is_relaxed(): x = x.lift(valshift + prec) - elif isinstance(x, pAdicGenericElement) or sage.rings.finite_rings.integer_mod.is_IntegerMod(x): + elif isinstance(x, pAdicGenericElement) or sage.rings.finite_rings.integer_mod.isinstance(x, IntegerMod_abstract): x = x.lift() if isinstance(x, Integer): if valshift > 0: diff --git a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx index f10738d25d1..94c2277622b 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx @@ -185,7 +185,7 @@ from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.padics.padic_generic_element cimport pAdicGenericElement from sage.libs.pari.all import pari_gen from sage.interfaces.abc import GpElement -from sage.rings.finite_rings.integer_mod import is_IntegerMod +from sage.rings.finite_rings.integer_mod import IntegerMod from sage.rings.finite_rings.integer_mod_ring import IntegerModRing from sage.rings.padics.padic_ext_element cimport pAdicExtElement from sage.rings.padics.precision_error import PrecisionError @@ -339,7 +339,7 @@ cdef class pAdicZZpXCAElement(pAdicZZpXElement): x = L else: raise TypeError("unsupported coercion from pari: only p-adics, integers, rationals, polynomials and pol_mods allowed") - elif is_IntegerMod(x): + elif isinstance(x, IntegerMod_abstract): mpz_init(tmp) ctx_prec = mpz_remove(tmp, (x.modulus()).value, self.prime_pow.prime.value) if mpz_cmp_ui(tmp, 1) == 0: diff --git a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx index 8c29fa3ee73..ee2bf281228 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx @@ -203,7 +203,7 @@ from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.padics.padic_generic_element cimport pAdicGenericElement from sage.libs.pari.all import pari_gen from sage.interfaces.abc import GpElement -from sage.rings.finite_rings.integer_mod import is_IntegerMod +from sage.rings.finite_rings.integer_mod import IntegerMod from sage.rings.padics.padic_ext_element cimport pAdicExtElement from sage.rings.padics.precision_error import PrecisionError @@ -354,7 +354,7 @@ cdef class pAdicZZpXCRElement(pAdicZZpXElement): x = L else: raise TypeError("unsupported coercion from pari: only p-adics, integers, rationals, polynomials and pol_mods allowed") - elif is_IntegerMod(x): + elif isinstance(x, IntegerMod_abstract): mpz_init(tmp) ctx_prec = mpz_remove(tmp, (x.modulus()).value, self.prime_pow.prime.value) if mpz_cmp_ui(tmp, 1) == 0: diff --git a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx index 44d549847a9..72e771b38c2 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx @@ -145,7 +145,7 @@ from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.rational cimport Rational from sage.libs.pari.all import pari_gen from sage.interfaces.abc import GpElement -from sage.rings.finite_rings.integer_mod import is_IntegerMod +from sage.rings.finite_rings.integer_mod import IntegerMod from sage.rings.finite_rings.integer_mod_ring import IntegerModRing @@ -233,7 +233,7 @@ cdef class pAdicZZpXFMElement(pAdicZZpXElement): x = L else: raise TypeError("unsupported coercion from pari: only p-adics, integers, rationals, polynomials and pol_mods allowed") - elif is_IntegerMod(x): + elif isinstance(x, IntegerMod_abstract): if (x.modulus())._is_power_of(parent.prime()): x = x.lift() else: diff --git a/src/sage/rings/padics/padic_ZZ_pX_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_element.pyx index bf892956a16..968e2c4d857 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_element.pyx @@ -41,7 +41,7 @@ from sage.libs.ntl.ntl_ZZ_pContext import ntl_ZZ_pContext from sage.rings.integer cimport Integer from sage.rings.rational cimport Rational from sage.rings.padics.padic_generic_element cimport pAdicGenericElement -from sage.rings.finite_rings.integer_mod import is_IntegerMod +from sage.rings.finite_rings.integer_mod import IntegerMod from sage.rings.padics.padic_printing cimport pAdicPrinter_class from sage.rings.padics.pow_computer_ext cimport PowComputer_ext from sage.rings.rational_field import QQ @@ -664,7 +664,7 @@ cdef preprocess_list(pAdicZZpXElement elt, L): L[i] = ntl_ZZ_p(L[i]*pshift_m, ctx) elif isinstance(L[i], pAdicGenericElement) and L[i]._is_base_elt(elt.prime_pow.prime): L[i] = ntl_ZZ_p((L[i] >> min_val).lift(), ctx) - elif is_IntegerMod(L[i]): + elif isinstance(L[i], IntegerMod_abstract): L[i] = ntl_ZZ_p(L[i].lift()*pshift_m, ctx) elif (L[i].modulus_context() is not ctx) or min_val != zero: L[i] = ntl_ZZ_p(L[i].lift()*pshift_z, ctx) @@ -682,7 +682,7 @@ cdef preprocess_list(pAdicZZpXElement elt, L): L[i] = ntl_ZZ_p(L[i]//pshift_m, ctx) elif isinstance(L[i], pAdicGenericElement) and L[i]._is_base_elt(elt.prime_pow.prime): L[i] = ntl_ZZ_p((L[i] >> min_val).lift(), ctx) - elif is_IntegerMod(L[i]): + elif isinstance(L[i], IntegerMod_abstract): L[i] = ntl_ZZ_p(L[i].lift()//pshift_m, ctx) elif (L[i].modulus_context() is not ctx) or min_val != zero: ZZ_div(tmp, (L[i].lift()).x, pshift_z.x) @@ -693,7 +693,7 @@ cdef preprocess_list(pAdicZZpXElement elt, L): for i from 0 <= i < len(L): if isinstance(L[i], (ntl_ZZ, Integer, Rational, int)): L[i] = ntl_ZZ_p(L[i], ctx) - elif (isinstance(L[i], pAdicGenericElement) and L[i]._is_base_elt(elt.prime_pow.prime)) or is_IntegerMod(L[i]) or (L[i].modulus_context() is not ctx): + elif (isinstance(L[i], pAdicGenericElement) and L[i]._is_base_elt(elt.prime_pow.prime)) or isinstance(L[i], IntegerMod_abstract) or (L[i].modulus_context() is not ctx): L[i] = ntl_ZZ_p(L[i].lift(), ctx) return L, min_val, ctx @@ -889,7 +889,7 @@ cdef get_val_prec(PowComputer_ext pp, a): cdef mpz_t leftover cdef long long_val cdef Integer Integer_val - if is_IntegerMod(a): + if isinstance(a, IntegerMod_abstract): mpz_init(leftover) long_val = mpz_remove(leftover, (a.modulus()).value, pp.prime.value) if long_val > 0 and mpz_cmp_ui(leftover, 1) == 0: diff --git a/src/sage/rings/padics/padic_template_element.pxi b/src/sage/rings/padics/padic_template_element.pxi index 4b5b9c6dbe9..31b004b932c 100644 --- a/src/sage/rings/padics/padic_template_element.pxi +++ b/src/sage/rings/padics/padic_template_element.pxi @@ -145,7 +145,7 @@ cdef class pAdicTemplateElement(pAdicGenericElement): x = [] else: x = [x] - elif sage.rings.finite_rings.integer_mod.is_IntegerMod(x): + elif sage.rings.finite_rings.integer_mod.isinstance(x, IntegerMod_abstract): if not Integer(self.prime_pow.prime).divides(x.parent().order()): raise TypeError("p does not divide modulus %s" % x.parent().order()) elif isinstance(x, Element) and isinstance(x.parent(), FiniteField): diff --git a/src/sage/rings/polynomial/flatten.py b/src/sage/rings/polynomial/flatten.py index 64ab7ed99d5..ef71d2b13a6 100644 --- a/src/sage/rings/polynomial/flatten.py +++ b/src/sage/rings/polynomial/flatten.py @@ -40,7 +40,7 @@ from .polynomial_ring_constructor import PolynomialRing from .polynomial_ring import is_PolynomialRing from .multi_polynomial_ring_base import is_MPolynomialRing -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.rings.fraction_field_element import FractionFieldElement from sage.rings.polynomial.polydict import ETuple @@ -538,8 +538,8 @@ def __init__(self, domain, D): # Construct unflattened codomain R new_vars = [] R = domain - while is_PolynomialRing(R) or is_MPolynomialRing(R) or is_FractionField(R): - if is_FractionField(R): + while is_PolynomialRing(R) or is_MPolynomialRing(R) or isinstance(R, FractionField_generic): + if isinstance(R, FractionField_generic): # We've hit base_ring, so set _sub_specialization and exit the loop field_over = R.base() applicable_vars = {key: val for key, val in D.items() @@ -679,7 +679,7 @@ def __init__(self, domain, D): To: Fraction Field of Multivariate Polynomial Ring in x, y over Univariate Polynomial Ring in a over Rational Field """ - if not is_FractionField(domain): + if not isinstance(domain, FractionField_generic): raise TypeError("domain must be a fraction field") self._specialization = SpecializationMorphism(domain.base(), D) self._repr_type_str = 'Fraction Specialization' diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx index cc31da00b9f..86d50ce90f3 100644 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx @@ -226,7 +226,7 @@ import sage.structure.element from sage.rings.rational cimport Rational from sage.rings.rational_field import QQ -from sage.rings.integer_ring import is_IntegerRing, ZZ +from sage.rings.integer_ring import IntegerRing, ZZ from sage.rings.integer cimport Integer from sage.rings.number_field.number_field_base cimport NumberField @@ -5489,7 +5489,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): if n_GetChar(_ring.cf) > 1<<29: raise NotImplementedError("Resultants of multivariate polynomials over prime fields with characteristic > 2^29 is not implemented.") - if is_IntegerRing(self._parent._base): + if isinstance(self._parent._base, IntegerRing_class): ret = self.change_ring(QQ).resultant(other.change_ring(QQ), variable.change_ring(QQ)) return ret.change_ring(ZZ) diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py index 6d25e6a0a5f..248cb4d82e7 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py @@ -31,7 +31,7 @@ def __init__(self, parent, x=None, check=True, is_gen=False, construct=False, ab Polynomial_generic_dense.__init__(self, parent, x, check, is_gen, construct) return R = parent.base_ring() - if sage.rings.fraction_field_element.is_FractionFieldElement(x): + if sage.rings.fraction_field_element.isinstance(x, FractionFieldElement): if x.denominator() != 1: raise TypeError("denominator must be 1") else: diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx index 6a600f74f53..a0a5f3164af 100644 --- a/src/sage/rings/polynomial/plural.pyx +++ b/src/sage/rings/polynomial/plural.pyx @@ -120,7 +120,7 @@ import sage.libs.singular.ring from sage.rings.finite_rings.finite_field_prime_modn import FiniteField_prime_modn from sage.rings.integer cimport Integer -from sage.rings.integer_ring import is_IntegerRing +from sage.rings.integer_ring import IntegerRing from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomialRing_libsingular, MPolynomial_libsingular, new_MP from sage.rings.polynomial.multi_polynomial_ideal import NCPolynomialIdeal @@ -532,7 +532,7 @@ cdef class NCPolynomialRing_plural(Ring): _p = p_NSet(_n, _ring) # also accepting ZZ - elif is_IntegerRing(element.parent()): + elif isinstance(element.parent(), IntegerRing_class): if isinstance(base_ring, FiniteField_prime_modn): _p = p_ISet(int(element),_ring) else: diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 1270c42ce2a..0cc286a3c53 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -5026,7 +5026,7 @@ cdef class Polynomial(CommutativePolynomial): n = None - if isinstance(R, sage.rings.abc.IntegerModRing) or is_IntegerRing(R): + if isinstance(R, sage.rings.abc.IntegerModRing) or isinstance(R, IntegerRing_class): try: G = list(self._pari_with_name().factor()) except PariError: @@ -5840,7 +5840,7 @@ cdef class Polynomial(CommutativePolynomial): if self.degree() <= 1: return R.fraction_field() - if is_IntegerRing(R): + if isinstance(R, IntegerRing_class): from sage.rings.number_field.number_field import NumberField return NumberField(self, names) @@ -6411,7 +6411,7 @@ cdef class Polynomial(CommutativePolynomial): from sage.categories.number_fields import NumberFields K = self.base_ring() - if K in NumberFields() or isinstance(K, sage.rings.abc.Order) or is_IntegerRing(K): + if K in NumberFields() or isinstance(K, sage.rings.abc.Order) or isinstance(K, IntegerRing_class): from sage.schemes.projective.projective_space import ProjectiveSpace P = ProjectiveSpace(K, self.number_of_terms() - 1) return P.point(self.coefficients()).global_height(prec=prec) @@ -8931,7 +8931,7 @@ cdef class Polynomial(CommutativePolynomial): if L != K or isinstance(L, sage.rings.abc.AlgebraicField_common): # So far, the only "special" implementations are for real # and complex root isolation and for p-adic factorization - if (is_IntegerRing(K) or is_RationalField(K) + if (isinstance(K, IntegerRing_class) or isinstance(K, RationalField) or isinstance(K, sage.rings.abc.AlgebraicRealField)) and \ isinstance(L, (sage.rings.abc.AlgebraicRealField, sage.rings.abc.RealIntervalField)): @@ -8961,7 +8961,7 @@ cdef class Polynomial(CommutativePolynomial): else: return [rt for (rt, mult) in rts] - if (is_IntegerRing(K) or is_RationalField(K) + if (isinstance(K, IntegerRing_class) or isinstance(K, RationalField) or isinstance(K, sage.rings.abc.AlgebraicField_common) or input_gaussian) and \ isinstance(L, (sage.rings.abc.ComplexIntervalField, sage.rings.abc.AlgebraicField_common)): @@ -9992,8 +9992,8 @@ cdef class Polynomial(CommutativePolynomial): else: raise NotImplementedError else: - from sage.rings.fraction_field import is_FractionField - if is_FractionField(p.parent()) and self._parent.has_coerce_map_from(p.parent().ring()): + from sage.rings.fraction_field import FractionField_generic + if isinstance(p.parent(), FractionField_generic) and self._parent.has_coerce_map_from(p.parent().ring()): _p = self._parent.coerce(p.parent().ring()(p)) # here we require that p be integral. else: raise TypeError("The polynomial, p, must have the same parent as self.") @@ -11983,7 +11983,7 @@ cdef class Polynomial_generic_dense(Polynomial): self._coeffs = x return - if sage.rings.fraction_field_element.is_FractionFieldElement(x): + if sage.rings.fraction_field_element.isinstance(x, FractionFieldElement): if x.denominator() != 1: raise TypeError("denominator must be 1") else: diff --git a/src/sage/rings/polynomial/polynomial_singular_interface.py b/src/sage/rings/polynomial/polynomial_singular_interface.py index 3d066e68631..be2c7bbca3e 100644 --- a/src/sage/rings/polynomial/polynomial_singular_interface.py +++ b/src/sage/rings/polynomial/polynomial_singular_interface.py @@ -40,7 +40,7 @@ import sage.rings.abc import sage.rings.number_field as number_field -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.rings.function_field.function_field_rational import RationalFunctionField from sage.rings.finite_rings.finite_field_base import FiniteField from sage.rings.integer_ring import ZZ @@ -74,7 +74,7 @@ def _do_singular_init_(singular, base_ring, char, _vars, order): if base_ring is ZZ: return make_ring("(ZZ)"), None - if sage.rings.rational_field.is_RationalField(base_ring): + if sage.rings.rational_field.isinstance(base_ring, RationalField): return make_ring("(QQ)"), None elif isinstance(base_ring, sage.rings.abc.RealField): @@ -136,7 +136,7 @@ def _do_singular_init_(singular, base_ring, char, _vars, order): return R, minpoly - elif sage.rings.fraction_field.is_FractionField(base_ring): + elif sage.rings.fraction_field.isinstance(base_ring, FractionField_generic): if base_ring.ngens() == 1: gens = str(base_ring.gen()) else: @@ -430,7 +430,7 @@ def can_convert_to_singular(R): base_ring = R.base_ring() if (base_ring is ZZ - or is_RationalField(base_ring) + or isinstance(base_ring, RationalField) or isinstance(base_ring, (sage.rings.abc.IntegerModRing, sage.rings.abc.RealField, sage.rings.abc.ComplexField, sage.rings.abc.RealDoubleField, sage.rings.abc.ComplexDoubleField))): @@ -439,7 +439,7 @@ def can_convert_to_singular(R): return base_ring.characteristic() <= 2147483647 elif isinstance(base_ring, NumberField): return base_ring.is_absolute() - elif sage.rings.fraction_field.is_FractionField(base_ring): + elif sage.rings.fraction_field.isinstance(base_ring, FractionField_generic): B = base_ring.base_ring() return (B.is_prime_field() or B is ZZ or (isinstance(B, FiniteField) and B.characteristic() <= 2147483647)) diff --git a/src/sage/rings/qqbar.py b/src/sage/rings/qqbar.py index f6d391679a6..9b0d33a3b55 100644 --- a/src/sage/rings/qqbar.py +++ b/src/sage/rings/qqbar.py @@ -594,7 +594,7 @@ from sage.rings import infinity from sage.rings.cc import CC from sage.rings.cif import CIF -from sage.rings.complex_interval import is_ComplexIntervalFieldElement +from sage.rings.complex_interval import ComplexIntervalFieldElement from sage.rings.complex_interval_field import ComplexIntervalField from sage.rings.integer_ring import ZZ from sage.rings.number_field.number_field import ( @@ -1436,7 +1436,7 @@ def polynomial_root(self, poly, interval, multiplicity=1): sage: r = AA.polynomial_root(p, RIF(1, 2)); r^3 2.000000000000000? """ - if not is_RealIntervalFieldElement(interval): + if not isinstance(interval, RealIntervalFieldElement): raise ValueError("interval argument of .polynomial_root on algebraic real field must be real") return AlgebraicReal(ANRoot(poly, interval, multiplicity)) @@ -1572,7 +1572,7 @@ def is_AlgebraicRealField(F): EXAMPLES:: - sage: from sage.rings.qqbar import is_AlgebraicRealField + sage: from sage.rings.qqbar import AlgebraicRealField sage: [is_AlgebraicRealField(x) for x in [AA, QQbar, None, 0, "spam"]] doctest:warning... DeprecationWarning: is_AlgebraicRealField is deprecated; @@ -2489,7 +2489,7 @@ def conjugate_expand(v): sage: conjugate_expand(RIF(1, 2)).str(style='brackets') '[1.0000000000000000 .. 2.0000000000000000]' """ - if is_RealIntervalFieldElement(v): + if isinstance(v, RealIntervalFieldElement): return v im = v.imag() if not im.contains_zero(): @@ -2522,7 +2522,7 @@ def conjugate_shrink(v): sage: conjugate_shrink(CIF(RIF(1, 2), RIF(-1, 2))).str(style='brackets') '[1.0000000000000000 .. 2.0000000000000000]' """ - if is_RealIntervalFieldElement(v): + if isinstance(v, RealIntervalFieldElement): return v im = v.imag() if im.contains_zero(): @@ -4507,9 +4507,9 @@ def _set_descr(self, new_descr): """ self._descr = new_descr new_val = self._descr._interval_fast(self.parent().default_interval_prec()) - if is_RealIntervalFieldElement(new_val) and is_ComplexIntervalFieldElement(self._value): + if isinstance(new_val, RealIntervalFieldElement) and isinstance(self._value, ComplexIntervalFieldElement): self._value = self._value.real().intersection(new_val) - elif is_RealIntervalFieldElement(self._value) and is_ComplexIntervalFieldElement(new_val): + elif isinstance(self._value, RealIntervalFieldElement) and isinstance(new_val, ComplexIntervalFieldElement): self._value = self._value.intersection(new_val.real()) else: self._value = self._value.intersection(new_val) @@ -4757,7 +4757,7 @@ def interval(self, field): target = RR(1.0) >> field.prec() val = self.interval_diameter(target) if (isinstance(field, (RealIntervalField_class, RealBallField)) - and is_ComplexIntervalFieldElement(val)): + and isinstance(val, ComplexIntervalFieldElement)): if val.imag().is_zero(): return field(val.real()) elif self.imag().is_zero(): @@ -4826,7 +4826,7 @@ def radical_expression(self): # Adapted from NumberFieldElement._symbolic_() poly = self.minpoly() - if is_ComplexIntervalFieldElement(self._value): + if isinstance(self._value, ComplexIntervalFieldElement): interval_field = self._value.parent() else: interval_field = ComplexIntervalField(self._value.prec()) @@ -5484,7 +5484,7 @@ def _ensure_real(self): sage: type(b._value) """ - if is_ComplexIntervalFieldElement(self._value): + if isinstance(self._value, ComplexIntervalFieldElement): self._value = self._value.real() def _more_precision(self): @@ -6467,7 +6467,7 @@ def _act_(self, e, x): argument = argument - 2 * argument.parent().pi() else: val = x._interval_fast(prec) - if is_RealIntervalFieldElement(val) or not val.crosses_log_branch_cut(): + if isinstance(val, RealIntervalFieldElement) or not val.crosses_log_branch_cut(): argument = val.argument() if val.imag().is_zero() and val.real() < 0: argument_is_pi = True @@ -6747,12 +6747,12 @@ def is_AlgebraicReal(x): EXAMPLES:: - sage: from sage.rings.qqbar import is_AlgebraicReal + sage: from sage.rings.qqbar import AlgebraicReal sage: is_AlgebraicReal(AA(sqrt(2))) # needs sage.symbolic True sage: is_AlgebraicReal(QQbar(sqrt(2))) # needs sage.symbolic False - sage: is_AlgebraicReal("spam") + sage: isinstance("spam", AlgebraicReal) False """ return isinstance(x, AlgebraicReal) @@ -6764,12 +6764,12 @@ def is_AlgebraicNumber(x): EXAMPLES:: - sage: from sage.rings.qqbar import is_AlgebraicNumber + sage: from sage.rings.qqbar import AlgebraicNumber sage: is_AlgebraicNumber(AA(sqrt(2))) # needs sage.symbolic False sage: is_AlgebraicNumber(QQbar(sqrt(2))) # needs sage.symbolic True - sage: is_AlgebraicNumber("spam") + sage: isinstance("spam", AlgebraicNumber) False """ return isinstance(x, AlgebraicNumber) @@ -7052,7 +7052,7 @@ def __init__(self, poly, interval, multiplicity=1): poly = AlgebraicPolynomialTracker(poly) self._poly = poly self._multiplicity = multiplicity - self._complex = is_ComplexIntervalFieldElement(interval) + self._complex = isinstance(interval, ComplexIntervalFieldElement) self._complex_poly = poly.is_complex() self._interval = self.refine_interval(interval, 64) @@ -7138,7 +7138,7 @@ def handle_sage_input(self, sib, coerce, is_qqbar): intv = self._interval # Check whether a 53-bit interval actually isolates the root. # If so, use it, because 53-bit intervals print prettier. - if is_ComplexIntervalFieldElement(intv): + if isinstance(intv, ComplexIntervalFieldElement): loose_intv = CIF(intv) else: loose_intv = RIF(intv) @@ -7988,7 +7988,7 @@ def simplify(self, n): def _interval_fast(self, prec): gen_val = self._generator._interval_fast(prec) v = self._value.polynomial()(gen_val) - if self._exactly_real and is_ComplexIntervalFieldElement(v): + if self._exactly_real and isinstance(v, ComplexIntervalFieldElement): return v.real() return v @@ -8337,7 +8337,7 @@ def _interval_fast(self, prec): v = self._arg._interval_fast(prec) - if not is_ComplexIntervalFieldElement(v): + if not isinstance(v, ComplexIntervalFieldElement): self._complex = False if op == '-': @@ -8347,7 +8347,7 @@ def _interval_fast(self, prec): return ~v if op == 'conjugate': - if is_ComplexIntervalFieldElement(v): + if isinstance(v, ComplexIntervalFieldElement): return v.conjugate() else: return v @@ -8355,13 +8355,13 @@ def _interval_fast(self, prec): self._complex = False if op == 'real': - if is_ComplexIntervalFieldElement(v): + if isinstance(v, ComplexIntervalFieldElement): return v.real() else: return v if op == 'imag': - if is_ComplexIntervalFieldElement(v): + if isinstance(v, ComplexIntervalFieldElement): return v.imag() else: return RealIntervalField(prec)(0) @@ -8370,7 +8370,7 @@ def _interval_fast(self, prec): return abs(v) if op == 'norm': - if is_ComplexIntervalFieldElement(v): + if isinstance(v, ComplexIntervalFieldElement): return v.norm() else: return v.square() @@ -8611,7 +8611,7 @@ def _interval_fast(self, prec): lv = self._left._interval_fast(prec) rv = self._right._interval_fast(prec) - if not (is_ComplexIntervalFieldElement(lv) or is_ComplexIntervalFieldElement(rv)): + if not (isinstance(lv, ComplexIntervalFieldElement) or isinstance(rv, ComplexIntervalFieldElement)): self._complex = False return op(lv, rv) diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx index 1faece8f298..d1db930c2dd 100644 --- a/src/sage/rings/rational.pyx +++ b/src/sage/rings/rational.pyx @@ -391,14 +391,14 @@ def is_Rational(x): EXAMPLES:: - sage: from sage.rings.rational import is_Rational - sage: is_Rational(2) + sage: from sage.rings.rational import Rational + sage: isinstance(2, Rational) False - sage: is_Rational(2/1) + sage: isinstance(2/1, Rational) True - sage: is_Rational(int(2)) + sage: isinstance(int(2), Rational) False - sage: is_Rational('5') + sage: isinstance('5', Rational) False """ return isinstance(x, Rational) diff --git a/src/sage/rings/rational_field.py b/src/sage/rings/rational_field.py index 5234ea105e2..da668dd68e0 100644 --- a/src/sage/rings/rational_field.py +++ b/src/sage/rings/rational_field.py @@ -1699,7 +1699,7 @@ def is_RationalField(x) -> bool: EXAMPLES:: - sage: from sage.rings.rational_field import is_RationalField as is_RF + sage: from sage.rings.rational_field import RationalField as is_RF sage: is_RF(QQ) True sage: is_RF(ZZ) diff --git a/src/sage/rings/real_double.pyx b/src/sage/rings/real_double.pyx index de1f843ce87..ae785ea6965 100644 --- a/src/sage/rings/real_double.pyx +++ b/src/sage/rings/real_double.pyx @@ -2053,10 +2053,10 @@ def is_RealDoubleElement(x): EXAMPLES:: - sage: from sage.rings.real_double import is_RealDoubleElement - sage: is_RealDoubleElement(RDF(3)) + sage: from sage.rings.real_double import RealDoubleElement + sage: isinstance(RDF(3), RealDoubleElement) True - sage: is_RealDoubleElement(RIF(3)) # needs sage.rings.real_interval_field + sage: isinstance(RIF(3), RealDoubleElement) # needs sage.rings.real_interval_field False """ return isinstance(x, RealDoubleElement) diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx index 7007f1da8d7..b675a5fc4d0 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -5331,9 +5331,9 @@ def is_RealIntervalField(x): EXAMPLES:: - sage: sage.rings.real_mpfi.is_RealIntervalField(RIF) + sage: sage.rings.real_mpfi.isinstance(RIF, RealIntervalField_class) True - sage: sage.rings.real_mpfi.is_RealIntervalField(RealIntervalField(200)) + sage: sage.rings.real_mpfi.isinstance(RealIntervalField(200), RealIntervalField_class) True """ return isinstance(x, RealIntervalField_class) @@ -5345,7 +5345,7 @@ def is_RealIntervalFieldElement(x): EXAMPLES:: - sage: sage.rings.real_mpfi.is_RealIntervalFieldElement(RIF(2.2)) + sage: sage.rings.real_mpfi.isinstance(RIF(2.2), RealIntervalFieldElement) True sage: sage.rings.real_mpfi.is_RealIntervalFieldElement(RealIntervalField(200)(2.2)) True diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx index 885003ed7f8..8eae215d71e 100644 --- a/src/sage/rings/real_mpfr.pyx +++ b/src/sage/rings/real_mpfr.pyx @@ -5884,14 +5884,14 @@ def is_RealNumber(x): EXAMPLES:: - sage: from sage.rings.real_mpfr import is_RealNumber - sage: is_RealNumber(2.5) + sage: from sage.rings.real_mpfr import RealNumber + sage: isinstance(2.5, RealNumber) True - sage: is_RealNumber(float(2.3)) + sage: isinstance(float(2.3), RealNumber) False - sage: is_RealNumber(RDF(2)) + sage: isinstance(RDF(2), RealNumber) False - sage: is_RealNumber(pi) # needs sage.symbolic + sage: isinstance(pi, RealNumber) # needs sage.symbolic False """ return isinstance(x, RealNumber) diff --git a/src/sage/schemes/affine/affine_homset.py b/src/sage/schemes/affine/affine_homset.py index 1a5dd8477ab..f90bcfffec1 100644 --- a/src/sage/schemes/affine/affine_homset.py +++ b/src/sage/schemes/affine/affine_homset.py @@ -38,7 +38,7 @@ from sage.rings.integer_ring import ZZ from sage.rings.real_mpfr import RR from sage.rings.cc import CC -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.categories.fields import Fields from sage.categories.number_fields import NumberFields from sage.rings.finite_rings.finite_field_base import FiniteField @@ -349,7 +349,7 @@ def points(self, **kwds): B = kwds.pop('bound', 0) tol = kwds.pop('tolerance', 1e-2) prec = kwds.pop('precision', 53) - if is_RationalField(R) or R == ZZ: + if isinstance(R, RationalField) or R == ZZ: if not B > 0: raise TypeError("a positive bound B (= %s) must be specified" % B) from sage.schemes.affine.affine_rational_point import enum_affine_rational_field diff --git a/src/sage/schemes/affine/affine_space.py b/src/sage/schemes/affine/affine_space.py index 572d39bad51..889d9005ed6 100644 --- a/src/sage/schemes/affine/affine_space.py +++ b/src/sage/schemes/affine/affine_space.py @@ -14,7 +14,7 @@ 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.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.rings.polynomial.polynomial_ring import is_PolynomialRing from sage.rings.polynomial.multi_polynomial_ring import is_MPolynomialRing from sage.rings.finite_rings.finite_field_base import FiniteField @@ -1063,7 +1063,7 @@ def points_of_bounded_height(self, **kwds): sage: len(list(A.points_of_bounded_height(bound=2, tolerance=0.1))) # needs sage.rings.number_field 529 """ - if is_RationalField(self.base_ring()): + if isinstance(self.base_ring(), RationalField): ftype = False # stores whether field is a number field or the rational field elif self.base_ring() in NumberFields(): # true for rational field as well, so check is_RationalField first ftype = True diff --git a/src/sage/schemes/berkovich/berkovich_cp_element.py b/src/sage/schemes/berkovich/berkovich_cp_element.py index bd641bd05a2..35bfc8113f2 100644 --- a/src/sage/schemes/berkovich/berkovich_cp_element.py +++ b/src/sage/schemes/berkovich/berkovich_cp_element.py @@ -215,7 +215,7 @@ def __init__(self, parent, center, radius=None, power=None, prec=20, space_type= # since we are over a field, we can normalize coordinates. all code assumes normalized coordinates center.normalize_coordinates() # make sure the radius coerces into the reals - if not is_RealNumber(radius): + if not isinstance(radius, RealNumber): if isinstance(radius, Expression): radius = RR(radius) elif RR.has_coerce_map_from(radius.parent()): @@ -258,7 +258,7 @@ def __init__(self, parent, center, radius=None, power=None, prec=20, space_type= except (TypeError, ValueError): raise ValueError('could not convert %s to %s' % (center, self._base_space)) # make sure the radius coerces into the reals - if not is_RealNumber(radius): + if not isinstance(radius, RealNumber): if isinstance(radius, Expression): radius = RR(radius) elif RR.has_coerce_map_from(radius.parent()): @@ -388,7 +388,7 @@ def __init__(self, parent, center, radius=None, power=None, prec=20, space_type= raise ValueError('radius univariate function but center is constant. ' + 'this does not define a type IV point') raise TypeError("symbolic radius must be a real number") - if (not is_RealNumber(radius)) and power is None: + if (not isinstance(radius, RealNumber)) and power is None: if RR.has_coerce_map_from(radius.parent()): self._radius = RR(radius) else: diff --git a/src/sage/schemes/curves/affine_curve.py b/src/sage/schemes/curves/affine_curve.py index f8e5dc4bfbe..dbdb2dfa4cd 100644 --- a/src/sage/schemes/curves/affine_curve.py +++ b/src/sage/schemes/curves/affine_curve.py @@ -145,7 +145,7 @@ from sage.rings.polynomial.multi_polynomial_element import degree_lowest_rational_function from sage.rings.number_field.number_field import NumberField from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.rings.infinity import infinity from sage.schemes.affine.affine_space import AffineSpace, AffineSpace_generic @@ -1548,10 +1548,10 @@ def extension(self): pts = self.change_ring(F.embeddings(QQbar)[0]).rational_points() L = [t for pt in pts for t in pt] K = number_field_elements_from_algebraics(L)[0] - if is_RationalField(K): + if isinstance(K, RationalField): return F.embeddings(F)[0] else: - if is_RationalField(F): + if isinstance(F, RationalField): return F.embeddings(K)[0] else: # make sure the defining polynomial variable names are the same for K, N diff --git a/src/sage/schemes/curves/projective_curve.py b/src/sage/schemes/curves/projective_curve.py index cec2e08e96b..6045cc3ea70 100644 --- a/src/sage/schemes/curves/projective_curve.py +++ b/src/sage/schemes/curves/projective_curve.py @@ -154,7 +154,7 @@ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.qqbar import (number_field_elements_from_algebraics, QQbar) -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.rings.integer import Integer from sage.schemes.projective.projective_space import ProjectiveSpace, ProjectiveSpace_ring @@ -1458,10 +1458,10 @@ def extension(self): pts = self.change_ring(F.embeddings(QQbar)[0]).rational_points() L = [t for pt in pts for t in pt] K = number_field_elements_from_algebraics(L)[0] - if is_RationalField(K): + if isinstance(K, RationalField): return F.embeddings(F)[0] else: - if is_RationalField(F): + if isinstance(F, RationalField): return F.embeddings(K)[0] else: # make sure the defining polynomial variable names are the same for K, N @@ -1862,7 +1862,7 @@ def rational_parameterization(self): """ if self.genus(): raise TypeError("this curve must have geometric genus zero") - if not is_RationalField(self.base_ring()): + if not isinstance(self.base_ring(), RationalField): raise TypeError("this curve must be defined over the rational field") singular.lib("paraplanecurves.lib") R = singular.paraPlaneCurve(self.defining_polynomial()) diff --git a/src/sage/schemes/generic/algebraic_scheme.py b/src/sage/schemes/generic/algebraic_scheme.py index f442ff309b3..8cc0e544917 100644 --- a/src/sage/schemes/generic/algebraic_scheme.py +++ b/src/sage/schemes/generic/algebraic_scheme.py @@ -118,7 +118,7 @@ from sage.rings.ideal import is_Ideal from sage.rings.integer_ring import ZZ -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.rings.finite_rings.finite_field_base import FiniteField from sage.misc.latex import latex @@ -873,7 +873,7 @@ def rational_points(self, **kwds): F = self.base_ring() if bound == 0: - if is_RationalField(F): + if isinstance(F, RationalField): raise TypeError("A positive bound (= %s) must be specified." % bound) if not isinstance(F, FiniteField): raise TypeError("Argument F (= %s) must be a finite field." % F) diff --git a/src/sage/schemes/generic/morphism.py b/src/sage/schemes/generic/morphism.py index 9986dea97ff..8034d0b9b5a 100644 --- a/src/sage/schemes/generic/morphism.py +++ b/src/sage/schemes/generic/morphism.py @@ -82,7 +82,7 @@ from sage.structure.sequence import Sequence from sage.categories.homset import Homset, Hom, End from sage.rings.fraction_field_element import FractionFieldElement -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.categories.map import FormalCompositeMap, Map from sage.misc.constant_function import ConstantFunction from sage.misc.lazy_attribute import lazy_attribute @@ -1643,7 +1643,7 @@ def specialization(self, D=None, phi=None, homset=None): if phi is None: raise ValueError("either the dictionary or the specialization must be provided") else: - if is_FractionField(self[0].parent()): + if isinstance(self[0].parent(), FractionField_generic): from sage.rings.polynomial.flatten import FractionSpecializationMorphism phi = FractionSpecializationMorphism(self[0].parent(), D) else: diff --git a/src/sage/schemes/hyperelliptic_curves/constructor.py b/src/sage/schemes/hyperelliptic_curves/constructor.py index 16526fec853..3509797b89d 100644 --- a/src/sage/schemes/hyperelliptic_curves/constructor.py +++ b/src/sage/schemes/hyperelliptic_curves/constructor.py @@ -26,7 +26,7 @@ from sage.rings.finite_rings.finite_field_base import FiniteField from sage.rings.polynomial.polynomial_element import Polynomial -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.structure.dynamic_class import dynamic_class diff --git a/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py b/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py index 88b28a4b753..ad3df20e2ad 100644 --- a/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py +++ b/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py @@ -44,7 +44,7 @@ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.integer_ring import ZZ -from sage.rings.integer import is_Integer, Integer +from sage.rings.integer import Integer, Integer from sage.rings.polynomial.polynomial_element import Polynomial from sage.schemes.generic.homset import SchemeHomset_points @@ -124,16 +124,16 @@ def __call__(self, P): elif len(P) == 2: P1 = P[0] P2 = P[1] - if is_Integer(P1) and is_Integer(P2): + if isinstance(P1, Integer) and isinstance(P2, Integer): R = PolynomialRing(self.value_ring(), 'x') P1 = R(P1) P2 = R(P2) return JacobianMorphism_divisor_class_field(self, (P1, P2)) - if is_Integer(P1) and isinstance(P2, Polynomial): + if isinstance(P1, Integer) and isinstance(P2, Polynomial): R = PolynomialRing(self.value_ring(), 'x') P1 = R(P1) return JacobianMorphism_divisor_class_field(self, (P1, P2)) - if is_Integer(P2) and isinstance(P1, Polynomial): + if isinstance(P2, Integer) and isinstance(P1, Polynomial): R = PolynomialRing(self.value_ring(), 'x') P2 = R(P2) return JacobianMorphism_divisor_class_field(self, (P1, P2)) diff --git a/src/sage/schemes/plane_conics/con_number_field.py b/src/sage/schemes/plane_conics/con_number_field.py index f044b884932..393b77bc1ff 100644 --- a/src/sage/schemes/plane_conics/con_number_field.py +++ b/src/sage/schemes/plane_conics/con_number_field.py @@ -21,7 +21,7 @@ # https://www.gnu.org/licenses/ # **************************************************************************** -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from .con_field import ProjectiveConic_field @@ -305,7 +305,7 @@ def has_rational_point(self, point=False, obstruction=False, if point or obstruction: return True, pt return True - if is_RationalField(B): + if isinstance(B, RationalField): K = B [KtoB, BtoK] = [K.hom(K) for i in range(2)] else: diff --git a/src/sage/schemes/plane_conics/con_rational_function_field.py b/src/sage/schemes/plane_conics/con_rational_function_field.py index fec1a50fdbb..bc842415d8e 100644 --- a/src/sage/schemes/plane_conics/con_rational_function_field.py +++ b/src/sage/schemes/plane_conics/con_rational_function_field.py @@ -44,7 +44,7 @@ from sage.arith.functions import lcm from sage.arith.misc import GCD as gcd from sage.modules.free_module_element import vector -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic class ProjectiveConic_rational_function_field(ProjectiveConic_field): @@ -392,7 +392,7 @@ def _reduce_conic(self): # remove squares for i, x in enumerate(coeff): - if is_FractionField(x.parent()): + if isinstance(x.parent(), FractionField_generic): # go to base ring of fraction field x = self.base().base()(x) diff --git a/src/sage/schemes/plane_conics/constructor.py b/src/sage/schemes/plane_conics/constructor.py index 10e158514dc..308b56f6db0 100644 --- a/src/sage/schemes/plane_conics/constructor.py +++ b/src/sage/schemes/plane_conics/constructor.py @@ -26,9 +26,9 @@ from sage.matrix.constructor import matrix from sage.modules.free_module_element import vector from sage.categories.integral_domains import IntegralDomains -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.rings.finite_rings.finite_field_base import FiniteField -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.rings.number_field.number_field_base import NumberField from sage.rings.polynomial.multi_polynomial import MPolynomial @@ -238,11 +238,11 @@ def Conic(base_field, F=None, names=None, unique=True): P2 = ProjectiveSpace(2, base_field, names) if isinstance(base_field, FiniteField): return ProjectiveConic_finite_field(P2, F) - if is_RationalField(base_field): + if isinstance(base_field, RationalField): return ProjectiveConic_rational_field(P2, F) if isinstance(base_field, NumberField): return ProjectiveConic_number_field(P2, F) - if is_FractionField(base_field) and (is_PolynomialRing(base_field.ring()) or is_MPolynomialRing(base_field.ring())): + if isinstance(base_field, FractionField_generic) and (is_PolynomialRing(base_field.ring()) or is_MPolynomialRing(base_field.ring())): return ProjectiveConic_rational_function_field(P2, F) return ProjectiveConic_field(P2, F) diff --git a/src/sage/schemes/product_projective/homset.py b/src/sage/schemes/product_projective/homset.py index 590030762e1..ef135a2cd6b 100644 --- a/src/sage/schemes/product_projective/homset.py +++ b/src/sage/schemes/product_projective/homset.py @@ -23,7 +23,7 @@ from sage.misc.mrange import xmrange from sage.misc.misc_c import prod from sage.rings.finite_rings.finite_field_base import FiniteField -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.schemes.generic.algebraic_scheme import AlgebraicScheme_subscheme from sage.schemes.generic.homset import SchemeHomset_points @@ -199,7 +199,7 @@ def points(self, **kwds): return list(points) R = self.value_ring() points = [] - if is_RationalField(R): + if isinstance(R, RationalField): if not B > 0: raise TypeError("a positive bound B (= %s) must be specified" % B) alg = kwds.pop('algorithm', None) diff --git a/src/sage/schemes/projective/projective_homset.py b/src/sage/schemes/projective/projective_homset.py index a64ceabca4e..bc1a781c00b 100644 --- a/src/sage/schemes/projective/projective_homset.py +++ b/src/sage/schemes/projective/projective_homset.py @@ -44,7 +44,7 @@ from sage.misc.verbose import verbose -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.categories.fields import Fields from sage.categories.number_fields import NumberFields from sage.rings.finite_rings.finite_field_base import FiniteField @@ -274,7 +274,7 @@ def points(self, **kwds): B = kwds.pop('bound', 0) tol = kwds.pop('tolerance', 1e-2) prec = kwds.pop('precision', 53) - if is_RationalField(R): + if isinstance(R, RationalField): if not B > 0: raise TypeError("a positive bound B (= %s) must be specified" % B) if isinstance(X, AlgebraicScheme_subscheme): # sieve should only be called for subschemes diff --git a/src/sage/schemes/projective/projective_space.py b/src/sage/schemes/projective/projective_space.py index ded40bb85b5..f07f8fe568a 100644 --- a/src/sage/schemes/projective/projective_space.py +++ b/src/sage/schemes/projective/projective_space.py @@ -264,7 +264,7 @@ def ProjectiveSpace(n, R=None, names=None): if R in _Fields: if isinstance(R, FiniteField): return ProjectiveSpace_finite_field(n, R, names) - if is_RationalField(R): + if isinstance(R, RationalField): return ProjectiveSpace_rational_field(n, R, names) else: return ProjectiveSpace_field(n, R, names) @@ -1170,7 +1170,7 @@ def points_of_bounded_height(self, **kwds): # or the ring of integers is_ring_of_ints = False - if is_RationalField(R): + if isinstance(R, RationalField): field_type = False elif R in NumberFields(): # True for the rational field as well, so check is_RationalField first diff --git a/src/sage/schemes/projective/projective_subscheme.py b/src/sage/schemes/projective/projective_subscheme.py index f3e93cd65a5..6135a62b1cb 100644 --- a/src/sage/schemes/projective/projective_subscheme.py +++ b/src/sage/schemes/projective/projective_subscheme.py @@ -30,7 +30,7 @@ from sage.rings.integer_ring import ZZ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -from sage.rings.rational_field import is_RationalField +from sage.rings.rational_field import RationalField from sage.schemes.generic.algebraic_scheme import AlgebraicScheme_subscheme from sage.schemes.projective.projective_morphism import SchemeMorphism_polynomial_projective_subscheme_field @@ -975,7 +975,7 @@ def dual(self): from sage.libs.singular.function_factory import ff K = self.base_ring() - if not (is_RationalField(K) or K in Fields().Finite()): + if not (isinstance(K, RationalField) or K in Fields().Finite()): raise NotImplementedError("base ring must be QQ or a finite field") I = self.defining_ideal() m = I.ngens() diff --git a/src/sage/schemes/toric/fano_variety.py b/src/sage/schemes/toric/fano_variety.py index d7772aa2ca4..c17cf7c37d7 100644 --- a/src/sage/schemes/toric/fano_variety.py +++ b/src/sage/schemes/toric/fano_variety.py @@ -130,7 +130,7 @@ from sage.rings.polynomial.multi_polynomial_ring import is_MPolynomialRing from sage.rings.polynomial.polynomial_ring import is_PolynomialRing -from sage.rings.fraction_field import is_FractionField +from sage.rings.fraction_field import FractionField_generic from sage.schemes.toric.toric_subscheme import AlgebraicScheme_subscheme_toric from sage.schemes.toric.variety import ( @@ -1590,7 +1590,7 @@ def add_variables(field, variables): """ if not variables: return field - if is_FractionField(field): + if isinstance(field, FractionField_generic): # Q(a) ---> Q(a, b) rather than Q(a)(b) R = field.ring() if is_PolynomialRing(R) or is_MPolynomialRing(R): diff --git a/src/sage/sets/set.py b/src/sage/sets/set.py index 00c604a07d8..2a5c8c86f23 100644 --- a/src/sage/sets/set.py +++ b/src/sage/sets/set.py @@ -491,8 +491,8 @@ def __init__(self, X, category=None): '' and 'Integer Ring' """ - from sage.rings.integer import is_Integer - if isinstance(X, int) or is_Integer(X): + from sage.rings.integer import Integer + if isinstance(X, int) or isinstance(X, Integer): # The coercion model will try to call Set_object(0) raise ValueError('underlying object cannot be an integer') diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx index dfbd5ff82fa..cec7131acee 100644 --- a/src/sage/structure/coerce.pyx +++ b/src/sage/structure/coerce.pyx @@ -90,7 +90,7 @@ from sage.structure.sage_object cimport SageObject from sage.structure.parent cimport Parent_richcmp_element_without_coercion from sage.structure.element cimport bin_op_exception, parent, Element from sage.structure.coerce_exceptions import CoercionException -from sage.rings.integer_fake cimport is_Integer +from sage.rings.integer_fake cimport Integer from sage.categories.map cimport Map from sage.categories.morphism import IdentityMorphism from sage.categories.action cimport Action, PrecomposedAction @@ -1411,13 +1411,13 @@ cdef class CoercionModel: return self.canonical_coercion(x, y) # Allow coercion of 0 even if no coercion from Z - if (x_numeric or is_Integer(x)) and not x and type(yp) is not type: + if (x_numeric or isinstance(x, Integer)) and not x and type(yp) is not type: try: return yp(0), y except Exception: self._record_exception() - if (y_numeric or is_Integer(y)) and not y and type(xp) is not type: + if (y_numeric or isinstance(y, Integer)) and not y and type(xp) is not type: try: return x, xp(0) except Exception: diff --git a/src/sage/structure/parent.pyx b/src/sage/structure/parent.pyx index 0d667075ff6..1ace5a4fa4d 100644 --- a/src/sage/structure/parent.pyx +++ b/src/sage/structure/parent.pyx @@ -1220,7 +1220,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): return x mor = self._internal_coerce_map_from(R) if mor is None: - if is_Integer(x) and not x: + if isinstance(x, Integer) and not x: try: return self(0) except Exception: diff --git a/src/sage/symbolic/ginac/numeric.cpp b/src/sage/symbolic/ginac/numeric.cpp index 4bcf45e8793..52e37811e13 100644 --- a/src/sage/symbolic/ginac/numeric.cpp +++ b/src/sage/symbolic/ginac/numeric.cpp @@ -813,7 +813,7 @@ numeric::numeric(PyObject* o, bool force_py) : basic(&numeric::tinfo_static) { | status_flags::expanded); return; } - if (py_funcs.py_is_Rational(o) != 0) { + if (py_funcs.py_isinstance(o, Rational) != 0) { mpq_ptr mpq = py_funcs.py_mpq_from_rational(o); set_from(t, v, hash, mpq); Py_DECREF(o); diff --git a/src/sage/symbolic/pynac.pxi b/src/sage/symbolic/pynac.pxi index 4bdbcd99526..e169cbc54a8 100644 --- a/src/sage/symbolic/pynac.pxi +++ b/src/sage/symbolic/pynac.pxi @@ -491,8 +491,8 @@ cdef extern from "pynac_wrap.h": py_integer_from_python_obj(x) py_integer_from_mpz(mpz_t) py_rational_from_mpq(mpq_t) - bint py_is_Integer(x) - bint py_is_Rational(x) + bint py_isinstance(x, Integer) + bint py_isinstance(x, Rational) mpz_ptr py_mpz_from_integer(x) mpq_ptr py_mpq_from_rational(x) diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx index e7a28be127a..501b0920898 100644 --- a/src/sage/symbolic/ring.pyx +++ b/src/sage/symbolic/ring.pyx @@ -207,7 +207,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): return False else: - from sage.rings.fraction_field import is_FractionField + from sage.rings.fraction_field import FractionField_generic from sage.rings.polynomial.polynomial_ring import is_PolynomialRing from sage.rings.polynomial.multi_polynomial_ring import is_MPolynomialRing from sage.rings.polynomial.laurent_polynomial_ring_base import LaurentPolynomialRing_generic @@ -220,7 +220,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): if R._is_numerical(): # Almost anything with a coercion into any precision of CC return R not in (RLF, CLF) - elif is_PolynomialRing(R) or is_MPolynomialRing(R) or is_FractionField(R) or isinstance(R, LaurentPolynomialRing_generic): + elif is_PolynomialRing(R) or is_MPolynomialRing(R) or isinstance(R, FractionField_generic) or isinstance(R, LaurentPolynomialRing_generic): base = R.base_ring() return base is not self and self.has_coerce_map_from(base) elif (R is InfinityRing or R is UnsignedInfinityRing From 75573b9e4e305e910c3a8156d4ed4a7a6cb4b151 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 31 May 2024 23:45:11 -0700 Subject: [PATCH 02/16] src/sage/rings/real_mpfi.pyx: Deprecations --- src/sage/rings/real_mpfi.pyx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx index b675a5fc4d0..a487f86cfc2 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -5331,11 +5331,15 @@ def is_RealIntervalField(x): EXAMPLES:: - sage: sage.rings.real_mpfi.isinstance(RIF, RealIntervalField_class) + sage: sage.rings.real_mpfi.is_RealIntervalField(RIF) True - sage: sage.rings.real_mpfi.isinstance(RealIntervalField(200), RealIntervalField_class) + sage: sage.rings.real_mpfi.is_RealIntervalField(RealIntervalField(200)) True """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_RealIntervalField is deprecated; " + "use 'isinstance(..., RealIntervalField_class)' instead.") return isinstance(x, RealIntervalField_class) @@ -5345,11 +5349,15 @@ def is_RealIntervalFieldElement(x): EXAMPLES:: - sage: sage.rings.real_mpfi.isinstance(RIF(2.2), RealIntervalFieldElement) + sage: sage.rings.real_mpfi.is_RealIntervalFieldElement(RIF(2.2)) True sage: sage.rings.real_mpfi.is_RealIntervalFieldElement(RealIntervalField(200)(2.2)) True """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_RealIntervalFieldElement is deprecated; " + "use 'isinstance(..., RealIntervalFieldElement)' instead.") return isinstance(x, RealIntervalFieldElement) From d263891142cfe3696b482b61d9d7ee6204adbecd Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 31 May 2024 23:49:29 -0700 Subject: [PATCH 03/16] Fixups --- src/sage/matrix/matrix_space.py | 4 ++-- src/sage/modules/free_module.py | 6 +++--- src/sage/rings/padics/common_conversion.pyx | 6 +++--- src/sage/rings/padics/padic_template_element.pxi | 2 +- src/sage/rings/polynomial/padics/polynomial_padic_flat.py | 2 +- src/sage/rings/polynomial/polynomial_element.pyx | 2 +- src/sage/rings/polynomial/polynomial_singular_interface.py | 6 +++--- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/sage/matrix/matrix_space.py b/src/sage/matrix/matrix_space.py index 603ba67395d..71eb305c2be 100644 --- a/src/sage/matrix/matrix_space.py +++ b/src/sage/matrix/matrix_space.py @@ -402,7 +402,7 @@ def get_matrix_class(R, nrows, ncols, sparse, implementation): if R.order() < matrix_modn_sparse.MAX_MODULUS: return matrix_modn_sparse.Matrix_modn_sparse - if sage.rings.rational_field.isinstance(R, RationalField): + if isinstance(R, sage.rings.rational_field.RationalField): try: from . import matrix_rational_sparse except ImportError: @@ -410,7 +410,7 @@ def get_matrix_class(R, nrows, ncols, sparse, implementation): else: return matrix_rational_sparse.Matrix_rational_sparse - if sage.rings.integer_ring.isinstance(R, IntegerRing_class): + if isinstance(R, sage.rings.integer_ring.IntegerRing_class): try: from . import matrix_integer_sparse except ImportError: diff --git a/src/sage/modules/free_module.py b/src/sage/modules/free_module.py index ae97410a5df..f1c7c7cdbaa 100644 --- a/src/sage/modules/free_module.py +++ b/src/sage/modules/free_module.py @@ -3823,7 +3823,7 @@ def index_in(self, other): return sage.rings.infinity.infinity a = sage.matrix.matrix_space.MatrixSpace(self.base_field(), self.rank())(C).determinant() - if sage.rings.integer_ring.isinstance(self.base_ring(), IntegerRing_class): + if isinstance(self.base_ring(), sage.rings.integer_ring.IntegerRing_class): return a.abs() elif isinstance(self.base_ring, sage.rings.abc.Order): return self.base_ring().ideal(a).norm() @@ -8266,10 +8266,10 @@ def element_class(R, is_sparse): """ import sage.rings.integer_ring - if sage.rings.integer_ring.isinstance(R, IntegerRing_class) and not is_sparse: + if isinstance(R, sage.rings.integer_ring.IntegerRing_class) and not is_sparse: from sage.modules.vector_integer_dense import Vector_integer_dense return Vector_integer_dense - elif sage.rings.rational_field.isinstance(R, RationalField) and not is_sparse: + elif isinstance(R, sage.rings.rational_field.RationalField) and not is_sparse: from sage.modules.vector_rational_dense import Vector_rational_dense return Vector_rational_dense elif isinstance(R, sage.rings.abc.IntegerModRing) and not is_sparse: diff --git a/src/sage/rings/padics/common_conversion.pyx b/src/sage/rings/padics/common_conversion.pyx index e7994e47844..2a143e6d99e 100644 --- a/src/sage/rings/padics/common_conversion.pyx +++ b/src/sage/rings/padics/common_conversion.pyx @@ -148,7 +148,7 @@ cdef long get_ordp(x, PowComputer_class prime_pow) except? -10000: k = valp(pari_tmp) else: # t_INT and t_FRAC were converted before this function raise TypeError("unsupported coercion from pari: only p-adics, integers and rationals allowed") - elif sage.rings.finite_rings.integer_mod.isinstance(x, IntegerMod_abstract): + elif isinstance(x, sage.rings.finite_rings.integer_mod.IntegerMod_abstract): value = x.lift() if mpz_sgn(value.value) == 0: return maxordp @@ -221,7 +221,7 @@ cdef long get_preccap(x, PowComputer_class prime_pow) except? -10000: pari_tmp = (x).g # since get_ordp has been called typ(x.g) == t_PADIC k = valp(pari_tmp) + precp(pari_tmp) - elif sage.rings.finite_rings.integer_mod.isinstance(x, IntegerMod_abstract): + elif isinstance(x, sage.rings.finite_rings.integer_mod.IntegerMod_abstract): k = mpz_remove(temp.value, (x.modulus()).value, prime_pow.prime.value) if mpz_cmp_ui(temp.value, 1) != 0: raise TypeError("cannot coerce from the given integer mod ring (not a power of the same prime)") @@ -411,7 +411,7 @@ cdef inline int cconv_shared(mpz_t out, x, long prec, long valshift, PowComputer x = x.sage() if isinstance(x, pAdicGenericElement) and x.parent().is_relaxed(): x = x.lift(valshift + prec) - elif isinstance(x, pAdicGenericElement) or sage.rings.finite_rings.integer_mod.isinstance(x, IntegerMod_abstract): + elif isinstance(x, pAdicGenericElement) or isinstance(x, sage.rings.finite_rings.integer_mod.IntegerMod_abstract): x = x.lift() if isinstance(x, Integer): if valshift > 0: diff --git a/src/sage/rings/padics/padic_template_element.pxi b/src/sage/rings/padics/padic_template_element.pxi index 31b004b932c..a3b203845b5 100644 --- a/src/sage/rings/padics/padic_template_element.pxi +++ b/src/sage/rings/padics/padic_template_element.pxi @@ -145,7 +145,7 @@ cdef class pAdicTemplateElement(pAdicGenericElement): x = [] else: x = [x] - elif sage.rings.finite_rings.integer_mod.isinstance(x, IntegerMod_abstract): + elif isinstance(x, sage.rings.finite_rings.integer_mod.IntegerMod_abstract): if not Integer(self.prime_pow.prime).divides(x.parent().order()): raise TypeError("p does not divide modulus %s" % x.parent().order()) elif isinstance(x, Element) and isinstance(x.parent(), FiniteField): diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py index 248cb4d82e7..46ef0c0a9b9 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py @@ -31,7 +31,7 @@ def __init__(self, parent, x=None, check=True, is_gen=False, construct=False, ab Polynomial_generic_dense.__init__(self, parent, x, check, is_gen, construct) return R = parent.base_ring() - if sage.rings.fraction_field_element.isinstance(x, FractionFieldElement): + if isinstance(x, sage.rings.fraction_field_element.FractionFieldElement): if x.denominator() != 1: raise TypeError("denominator must be 1") else: diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 0cc286a3c53..47f549130b4 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -11983,7 +11983,7 @@ cdef class Polynomial_generic_dense(Polynomial): self._coeffs = x return - if sage.rings.fraction_field_element.isinstance(x, FractionFieldElement): + if isinstance(x, sage.rings.fraction_field_element.FractionFieldElement): if x.denominator() != 1: raise TypeError("denominator must be 1") else: diff --git a/src/sage/rings/polynomial/polynomial_singular_interface.py b/src/sage/rings/polynomial/polynomial_singular_interface.py index be2c7bbca3e..ee7c243087f 100644 --- a/src/sage/rings/polynomial/polynomial_singular_interface.py +++ b/src/sage/rings/polynomial/polynomial_singular_interface.py @@ -74,7 +74,7 @@ def _do_singular_init_(singular, base_ring, char, _vars, order): if base_ring is ZZ: return make_ring("(ZZ)"), None - if sage.rings.rational_field.isinstance(base_ring, RationalField): + if isinstance(base_ring, sage.rings.rational_field.RationalField): return make_ring("(QQ)"), None elif isinstance(base_ring, sage.rings.abc.RealField): @@ -136,7 +136,7 @@ def _do_singular_init_(singular, base_ring, char, _vars, order): return R, minpoly - elif sage.rings.fraction_field.isinstance(base_ring, FractionField_generic): + elif isinstance(base_ring, sage.rings.fraction_field.FractionField_generic): if base_ring.ngens() == 1: gens = str(base_ring.gen()) else: @@ -439,7 +439,7 @@ def can_convert_to_singular(R): return base_ring.characteristic() <= 2147483647 elif isinstance(base_ring, NumberField): return base_ring.is_absolute() - elif sage.rings.fraction_field.isinstance(base_ring, FractionField_generic): + elif isinstance(base_ring, sage.rings.fraction_field.FractionField_generic): B = base_ring.base_ring() return (B.is_prime_field() or B is ZZ or (isinstance(B, FiniteField) and B.characteristic() <= 2147483647)) From 5df455363f061993d6bba5791d30633329e9b985 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 16:37:22 -0700 Subject: [PATCH 04/16] fixups --- .../dynamics/arithmetic_dynamics/projective_ds.py | 2 +- src/sage/functions/transcendental.py | 4 ++-- src/sage/matrix/matrix0.pyx | 2 +- src/sage/matrix/matrix2.pyx | 4 ++-- src/sage/matrix/matrix_rational_dense.pyx | 2 +- src/sage/modular/dirichlet.py | 2 +- src/sage/rings/complex_double.pyx | 6 +++--- src/sage/rings/complex_interval.pyx | 2 +- src/sage/rings/complex_mpfr.pyx | 10 +++++----- src/sage/rings/finite_rings/element_givaro.pyx | 8 ++++---- src/sage/rings/finite_rings/element_ntl_gf2e.pyx | 6 +++--- src/sage/rings/finite_rings/integer_mod.pyx | 6 +++--- src/sage/rings/fraction_field.py | 6 +++--- src/sage/rings/fraction_field_element.pyx | 8 ++++---- src/sage/rings/integer.pyx | 10 +++++----- src/sage/rings/integer_fake.pxd | 2 +- src/sage/rings/integer_ring.pyx | 10 +++++----- src/sage/rings/laurent_series_ring.py | 2 +- src/sage/rings/number_field/splitting_field.py | 2 +- src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx | 2 +- src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx | 2 +- src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx | 2 +- src/sage/rings/padics/padic_ZZ_pX_element.pyx | 2 +- .../polynomial/multi_polynomial_libsingular.pyx | 2 +- src/sage/rings/polynomial/plural.pyx | 2 +- src/sage/rings/polynomial/polynomial_element.pyx | 2 +- src/sage/rings/qqbar.py | 12 ++++++------ src/sage/rings/rational.pyx | 10 +++++----- src/sage/rings/rational_field.py | 2 +- src/sage/rings/real_double.pyx | 6 +++--- src/sage/rings/real_mpfr.pyx | 10 +++++----- .../schemes/hyperelliptic_curves/jacobian_homset.py | 2 +- src/sage/schemes/projective/projective_space.py | 4 ++-- src/sage/structure/coerce.pyx | 6 +++--- src/sage/structure/parent.pyx | 2 +- src/sage/symbolic/ginac/numeric.cpp | 2 +- src/sage/symbolic/pynac.pxi | 4 ++-- 37 files changed, 84 insertions(+), 84 deletions(-) diff --git a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py index a4eef361ee0..a880a38d341 100644 --- a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py @@ -88,7 +88,7 @@ class initialization directly. from sage.rings.finite_rings.finite_field_constructor import GF from sage.rings.finite_rings.integer_mod_ring import Zmod from sage.rings.fraction_field import (FractionField, is_FractionField, FractionField_1poly_field) -from sage.rings.fraction_field_element import FractionField_genericElement, FractionFieldElement +from sage.rings.fraction_field_element import FractionFieldElement from sage.rings.function_field.function_field import is_FunctionField from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ diff --git a/src/sage/functions/transcendental.py b/src/sage/functions/transcendental.py index 5033e16f9bb..3dcb446e706 100644 --- a/src/sage/functions/transcendental.py +++ b/src/sage/functions/transcendental.py @@ -28,10 +28,10 @@ lazy_import('sage.combinat.combinat', 'bernoulli_polynomial') lazy_import('sage.rings.cc', 'CC') -lazy_import('sage.rings.complex_mpfr', ['ComplexField', 'is_ComplexNumber']) +lazy_import('sage.rings.complex_mpfr', ['ComplexField', 'ComplexNumber']) lazy_import('sage.rings.polynomial.polynomial_real_mpfr_dense', 'PolynomialRealDense') lazy_import('sage.rings.real_double', 'RDF') -lazy_import('sage.rings.real_mpfr', ['RR', 'RealField', 'is_RealNumber']) +lazy_import('sage.rings.real_mpfr', ['RR', 'RealField', 'RealNumber']) lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') lazy_import('mpmath', 'zeta', as_='_mpmath_zeta') diff --git a/src/sage/matrix/matrix0.pyx b/src/sage/matrix/matrix0.pyx index ed8009caf31..83edc74c16d 100644 --- a/src/sage/matrix/matrix0.pyx +++ b/src/sage/matrix/matrix0.pyx @@ -42,7 +42,7 @@ from sage.categories.commutative_rings import CommutativeRings from sage.categories.rings import Rings import sage.rings.abc -from sage.rings.integer_ring import IntegerRing +from sage.rings.integer_ring import IntegerRing_class import sage.modules.free_module diff --git a/src/sage/matrix/matrix2.pyx b/src/sage/matrix/matrix2.pyx index 1130f5b0968..af5058ae67c 100644 --- a/src/sage/matrix/matrix2.pyx +++ b/src/sage/matrix/matrix2.pyx @@ -93,8 +93,8 @@ from sage.structure.element import Vector from sage.structure.element cimport have_same_parent from sage.misc.verbose import verbose from sage.rings.number_field.number_field_base import NumberField -from sage.rings.integer_ring import ZZ, is_IntegerRing -from sage.rings.rational_field import QQ, is_RationalField +from sage.rings.integer_ring import ZZ, IntegerRing_class +from sage.rings.rational_field import QQ, RationalField import sage.rings.abc from sage.arith.numerical_approx cimport digits_to_bits diff --git a/src/sage/matrix/matrix_rational_dense.pyx b/src/sage/matrix/matrix_rational_dense.pyx index 1b18a7d8821..60ef434904a 100644 --- a/src/sage/matrix/matrix_rational_dense.pyx +++ b/src/sage/matrix/matrix_rational_dense.pyx @@ -110,7 +110,7 @@ from sage.matrix.args cimport SparseEntry, MatrixArgs_init from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense, _lift_crt from sage.structure.element cimport Element, Vector from sage.rings.integer cimport Integer -from sage.rings.integer_ring import ZZ, is_IntegerRing +from sage.rings.integer_ring import ZZ, IntegerRing_class import sage.rings.abc from sage.rings.rational_field import QQ diff --git a/src/sage/modular/dirichlet.py b/src/sage/modular/dirichlet.py index aefe28dad34..4d0436bad22 100644 --- a/src/sage/modular/dirichlet.py +++ b/src/sage/modular/dirichlet.py @@ -77,7 +77,7 @@ from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ from sage.rings.power_series_ring import PowerSeriesRing -from sage.rings.rational_field import QQ, is_RationalField +from sage.rings.rational_field import QQ, RationalField from sage.structure.element import MultiplicativeGroupElement from sage.structure.factory import UniqueFactory from sage.structure.gens_py import multiplicative_iterator diff --git a/src/sage/rings/complex_double.pyx b/src/sage/rings/complex_double.pyx index 9e2c27c9515..2f85cbd101a 100644 --- a/src/sage/rings/complex_double.pyx +++ b/src/sage/rings/complex_double.pyx @@ -704,10 +704,10 @@ def is_ComplexDoubleElement(x): EXAMPLES:: - sage: from sage.rings.complex_double import ComplexDoubleElement - sage: isinstance(0, ComplexDoubleElement) + sage: from sage.rings.complex_double import is_ComplexDoubleElement + sage: is_ComplexDoubleElement(0) False - sage: isinstance(CDF(0), ComplexDoubleElement) + sage: is_ComplexDoubleElement(CDF(0)) True """ return isinstance(x, ComplexDoubleElement) diff --git a/src/sage/rings/complex_interval.pyx b/src/sage/rings/complex_interval.pyx index b6952062f84..cd4ba7bb8e8 100644 --- a/src/sage/rings/complex_interval.pyx +++ b/src/sage/rings/complex_interval.pyx @@ -80,7 +80,7 @@ def is_ComplexIntervalFieldElement(x): EXAMPLES:: - sage: from sage.rings.complex_interval import ComplexIntervalFieldElement as is_CIFE + sage: from sage.rings.complex_interval import is_ComplexIntervalFieldElement as is_CIFE sage: is_CIFE(CIF(2)) True sage: is_CIFE(CC(2)) diff --git a/src/sage/rings/complex_mpfr.pyx b/src/sage/rings/complex_mpfr.pyx index e6205aeabfd..e1ce333d57d 100644 --- a/src/sage/rings/complex_mpfr.pyx +++ b/src/sage/rings/complex_mpfr.pyx @@ -123,14 +123,14 @@ def is_ComplexNumber(x): EXAMPLES:: - sage: from sage.rings.complex_mpfr import ComplexNumber + sage: from sage.rings.complex_mpfr import is_ComplexNumber sage: a = ComplexNumber(1, 2); a 1.00000000000000 + 2.00000000000000*I - sage: isinstance(a, ComplexNumber) + sage: is_ComplexNumber(a) True sage: b = ComplexNumber(1); b 1.00000000000000 - sage: isinstance(b, ComplexNumber) + sage: is_ComplexNumber(b) True Note that the global element ``I`` is a number field element, of type @@ -140,10 +140,10 @@ def is_ComplexNumber(x): sage: # needs sage.symbolic sage: c = 1 + 2*I - sage: isinstance(c, ComplexNumber) + sage: is_ComplexNumber(c) False sage: d = CC(1 + 2*I) - sage: isinstance(d, ComplexNumber) + sage: is_ComplexNumber(d) True """ return isinstance(x, ComplexNumber) diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx index b6831b9c034..401f398ddee 100644 --- a/src/sage/rings/finite_rings/element_givaro.pyx +++ b/src/sage/rings/finite_rings/element_givaro.pyx @@ -69,7 +69,7 @@ from sage.structure.element cimport Vector from sage.interfaces.abc import GapElement -cdef object is_IntegerMod +cdef object IntegerMod_abstract cdef object Integer cdef object Rational cdef object MPolynomial @@ -80,17 +80,17 @@ cdef void late_import() noexcept: """ Late import of modules """ - global is_IntegerMod, \ + global IntegerMod_abstract, \ Integer, \ Rational, \ MPolynomial, \ Polynomial - if is_IntegerMod is not None: + if IntegerMod_abstract is not None: return import sage.rings.finite_rings.integer_mod - is_IntegerMod = sage.rings.finite_rings.integer_mod.is_IntegerMod + IntegerMod_abstract = sage.rings.finite_rings.integer_mod.IntegerMod_abstract import sage.rings.integer Integer = sage.rings.integer.Integer diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index 7774fc11669..976163efdce 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -50,7 +50,7 @@ from sage.rings.finite_rings.finite_field_ntl_gf2e import FiniteField_ntl_gf2e from sage.interfaces.abc import GapElement -cdef object is_IntegerMod +cdef object IntegerMod_abstract cdef object Integer cdef object Rational cdef object MPolynomial @@ -64,7 +64,7 @@ cdef int late_import() except -1: i.e. after the module was loaded. This is needed to avoid circular imports. """ - global is_IntegerMod, \ + global IntegerMod_abstract, \ Integer, \ Rational, \ MPolynomial, \ @@ -76,7 +76,7 @@ cdef int late_import() except -1: return 0 import sage.rings.finite_rings.integer_mod - is_IntegerMod = sage.rings.finite_rings.integer_mod.is_IntegerMod + IntegerMod_abstract = sage.rings.finite_rings.integer_mod.IntegerMod_abstract import sage.rings.rational Rational = sage.rings.rational.Rational diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index 9beb7faeef3..fa3c78e29b2 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -211,10 +211,10 @@ def is_IntegerMod(x): EXAMPLES:: - sage: from sage.rings.finite_rings.integer_mod import IntegerMod - sage: isinstance(5, IntegerMod_abstract) + sage: from sage.rings.finite_rings.integer_mod import is_IntegerMod + sage: is_IntegerMod(5) False - sage: isinstance(Mod(5,10), IntegerMod_abstract) + sage: is_IntegerMod(Mod(5,10)) True """ return isinstance(x, IntegerMod_abstract) diff --git a/src/sage/rings/fraction_field.py b/src/sage/rings/fraction_field.py index 8b0c8950baa..742729981eb 100644 --- a/src/sage/rings/fraction_field.py +++ b/src/sage/rings/fraction_field.py @@ -149,10 +149,10 @@ def is_FractionField(x) -> bool: EXAMPLES:: - sage: from sage.rings.fraction_field import FractionField_generic - sage: isinstance(Frac(ZZ['x']), FractionField_generic) + sage: from sage.rings.fraction_field import is_FractionField + sage: is_FractionField(Frac(ZZ['x'])) True - sage: isinstance(QQ, FractionField_generic) + sage: is_FractionField(QQ) False """ return isinstance(x, FractionField_generic) diff --git a/src/sage/rings/fraction_field_element.pyx b/src/sage/rings/fraction_field_element.pyx index 0b2632276c2..a9c427c03bc 100644 --- a/src/sage/rings/fraction_field_element.pyx +++ b/src/sage/rings/fraction_field_element.pyx @@ -34,13 +34,13 @@ def is_FractionFieldElement(x): EXAMPLES:: - sage: from sage.rings.fraction_field_element import FractionField_genericElement + sage: from sage.rings.fraction_field_element import is_FractionFieldElement sage: R. = ZZ[] - sage: isinstance(x/2, FractionFieldElement) + sage: is_FractionFieldElement(x/2) False - sage: isinstance(2/x, FractionFieldElement) + sage: is_FractionFieldElement(2/x) True - sage: isinstance(1/3, FractionFieldElement) + sage: is_FractionFieldElement(1/3) False """ return isinstance(x, FractionFieldElement) diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index 4eda4fde13f..6d9155b643f 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -324,14 +324,14 @@ def is_Integer(x): EXAMPLES:: - sage: from sage.rings.integer import Integer - sage: isinstance(2, Integer) + sage: from sage.rings.integer import is_Integer + sage: is_Integer(2) True - sage: isinstance(2/1, Integer) + sage: is_Integer(2/1) False - sage: isinstance(int(2), Integer) + sage: is_Integer(int(2)) False - sage: isinstance('5', Integer) + sage: is_Integer('5') False """ return isinstance(x, Integer) diff --git a/src/sage/rings/integer_fake.pxd b/src/sage/rings/integer_fake.pxd index 6fa5f82624b..73e9d802462 100644 --- a/src/sage/rings/integer_fake.pxd +++ b/src/sage/rings/integer_fake.pxd @@ -23,7 +23,7 @@ TESTS:: ....: from sage.rings.integer_fake cimport Integer_AS_MPZ, is_Integer ....: from sage.rings.integer cimport Integer ....: cdef Integer x = Integer(123456789) - ....: assert isinstance(x, Integer) + ....: assert is_Integer(x) ....: assert Integer_AS_MPZ(x) is x.value ....: ''') """ diff --git a/src/sage/rings/integer_ring.pyx b/src/sage/rings/integer_ring.pyx index a4d1e35fa94..12b522a8bd7 100644 --- a/src/sage/rings/integer_ring.pyx +++ b/src/sage/rings/integer_ring.pyx @@ -94,14 +94,14 @@ def is_IntegerRing(x): TESTS:: - sage: from sage.rings.integer_ring import IntegerRing - sage: isinstance(ZZ, IntegerRing_class) + sage: from sage.rings.integer_ring import is_IntegerRing + sage: is_IntegerRing(ZZ) True - sage: isinstance(QQ, IntegerRing_class) + sage: is_IntegerRing(QQ) False - sage: isinstance(parent(3), IntegerRing_class) + sage: is_IntegerRing(parent(3)) True - sage: isinstance(parent(1/3), IntegerRing_class) + sage: is_IntegerRing(parent(1/3)) False """ return isinstance(x, IntegerRing_class) diff --git a/src/sage/rings/laurent_series_ring.py b/src/sage/rings/laurent_series_ring.py index 71052ed8dad..e2b03bcca58 100644 --- a/src/sage/rings/laurent_series_ring.py +++ b/src/sage/rings/laurent_series_ring.py @@ -503,7 +503,7 @@ def _element_constructor_(self, x, n=0, prec=infinity): sage: P({-3: 1}) x^-3 """ - from sage.rings.fraction_field_element import FractionField_genericElement + from sage.rings.fraction_field_element import FractionFieldElement from sage.rings.lazy_series import LazyPowerSeries, LazyLaurentSeries from sage.rings.polynomial.multi_polynomial import MPolynomial from sage.rings.polynomial.polynomial_element import Polynomial diff --git a/src/sage/rings/number_field/splitting_field.py b/src/sage/rings/number_field/splitting_field.py index 7240b437693..7fefcd02ce5 100644 --- a/src/sage/rings/number_field/splitting_field.py +++ b/src/sage/rings/number_field/splitting_field.py @@ -21,7 +21,7 @@ from sage.arith.misc import factorial from sage.rings.number_field.number_field import NumberField from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -from sage.rings.rational_field import RationalField, is_RationalField +from sage.rings.rational_field import RationalField from sage.libs.pari.all import pari, PariError diff --git a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx index 94c2277622b..09062475876 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx @@ -185,7 +185,7 @@ from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.padics.padic_generic_element cimport pAdicGenericElement from sage.libs.pari.all import pari_gen from sage.interfaces.abc import GpElement -from sage.rings.finite_rings.integer_mod import IntegerMod +from sage.rings.finite_rings.integer_mod import IntegerMod_abstract from sage.rings.finite_rings.integer_mod_ring import IntegerModRing from sage.rings.padics.padic_ext_element cimport pAdicExtElement from sage.rings.padics.precision_error import PrecisionError diff --git a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx index ee2bf281228..3081c3f3d7a 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx @@ -203,7 +203,7 @@ from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.padics.padic_generic_element cimport pAdicGenericElement from sage.libs.pari.all import pari_gen from sage.interfaces.abc import GpElement -from sage.rings.finite_rings.integer_mod import IntegerMod +from sage.rings.finite_rings.integer_mod import IntegerMod_abstract from sage.rings.padics.padic_ext_element cimport pAdicExtElement from sage.rings.padics.precision_error import PrecisionError diff --git a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx index 72e771b38c2..f85c6b7f3b4 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx @@ -145,7 +145,7 @@ from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.rational cimport Rational from sage.libs.pari.all import pari_gen from sage.interfaces.abc import GpElement -from sage.rings.finite_rings.integer_mod import IntegerMod +from sage.rings.finite_rings.integer_mod import IntegerMod_abstract from sage.rings.finite_rings.integer_mod_ring import IntegerModRing diff --git a/src/sage/rings/padics/padic_ZZ_pX_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_element.pyx index 968e2c4d857..f6ed8fe4706 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_element.pyx @@ -41,7 +41,7 @@ from sage.libs.ntl.ntl_ZZ_pContext import ntl_ZZ_pContext from sage.rings.integer cimport Integer from sage.rings.rational cimport Rational from sage.rings.padics.padic_generic_element cimport pAdicGenericElement -from sage.rings.finite_rings.integer_mod import IntegerMod +from sage.rings.finite_rings.integer_mod import IntegerMod_abstract from sage.rings.padics.padic_printing cimport pAdicPrinter_class from sage.rings.padics.pow_computer_ext cimport PowComputer_ext from sage.rings.rational_field import QQ diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx index 86d50ce90f3..6b838190c52 100644 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx @@ -226,7 +226,7 @@ import sage.structure.element from sage.rings.rational cimport Rational from sage.rings.rational_field import QQ -from sage.rings.integer_ring import IntegerRing, ZZ +from sage.rings.integer_ring import IntegerRing_class, ZZ from sage.rings.integer cimport Integer from sage.rings.number_field.number_field_base cimport NumberField diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx index a0a5f3164af..d78464e1deb 100644 --- a/src/sage/rings/polynomial/plural.pyx +++ b/src/sage/rings/polynomial/plural.pyx @@ -120,7 +120,7 @@ import sage.libs.singular.ring from sage.rings.finite_rings.finite_field_prime_modn import FiniteField_prime_modn from sage.rings.integer cimport Integer -from sage.rings.integer_ring import IntegerRing +from sage.rings.integer_ring import IntegerRing_class from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomialRing_libsingular, MPolynomial_libsingular, new_MP from sage.rings.polynomial.multi_polynomial_ideal import NCPolynomialIdeal diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 47f549130b4..4d7da25ee8a 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -104,7 +104,7 @@ from sage.structure.element cimport (parent, have_same_parent, Element, RingElement) from sage.rings.rational_field import QQ, is_RationalField -from sage.rings.integer_ring import ZZ, is_IntegerRing +from sage.rings.integer_ring import ZZ, IntegerRing_class from sage.rings.integer cimport Integer, smallInteger from sage.libs.gmp.mpz cimport * from sage.rings.fraction_field import FractionField, is_FractionField diff --git a/src/sage/rings/qqbar.py b/src/sage/rings/qqbar.py index 9b0d33a3b55..77a7ad94675 100644 --- a/src/sage/rings/qqbar.py +++ b/src/sage/rings/qqbar.py @@ -613,7 +613,7 @@ RIF, RealIntervalField, RealIntervalField_class, - is_RealIntervalFieldElement, + RealIntervalFieldElement, ) from sage.rings.real_mpfr import RR from sage.structure.coerce import parent_is_numerical, parent_is_real_numerical @@ -1572,7 +1572,7 @@ def is_AlgebraicRealField(F): EXAMPLES:: - sage: from sage.rings.qqbar import AlgebraicRealField + sage: from sage.rings.qqbar import is_AlgebraicRealField sage: [is_AlgebraicRealField(x) for x in [AA, QQbar, None, 0, "spam"]] doctest:warning... DeprecationWarning: is_AlgebraicRealField is deprecated; @@ -6747,12 +6747,12 @@ def is_AlgebraicReal(x): EXAMPLES:: - sage: from sage.rings.qqbar import AlgebraicReal + sage: from sage.rings.qqbar import is_AlgebraicReal sage: is_AlgebraicReal(AA(sqrt(2))) # needs sage.symbolic True sage: is_AlgebraicReal(QQbar(sqrt(2))) # needs sage.symbolic False - sage: isinstance("spam", AlgebraicReal) + sage: is_AlgebraicReal("spam") False """ return isinstance(x, AlgebraicReal) @@ -6764,12 +6764,12 @@ def is_AlgebraicNumber(x): EXAMPLES:: - sage: from sage.rings.qqbar import AlgebraicNumber + sage: from sage.rings.qqbar import is_AlgebraicNumber sage: is_AlgebraicNumber(AA(sqrt(2))) # needs sage.symbolic False sage: is_AlgebraicNumber(QQbar(sqrt(2))) # needs sage.symbolic True - sage: isinstance("spam", AlgebraicNumber) + sage: is_AlgebraicNumber("spam") False """ return isinstance(x, AlgebraicNumber) diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx index d1db930c2dd..1faece8f298 100644 --- a/src/sage/rings/rational.pyx +++ b/src/sage/rings/rational.pyx @@ -391,14 +391,14 @@ def is_Rational(x): EXAMPLES:: - sage: from sage.rings.rational import Rational - sage: isinstance(2, Rational) + sage: from sage.rings.rational import is_Rational + sage: is_Rational(2) False - sage: isinstance(2/1, Rational) + sage: is_Rational(2/1) True - sage: isinstance(int(2), Rational) + sage: is_Rational(int(2)) False - sage: isinstance('5', Rational) + sage: is_Rational('5') False """ return isinstance(x, Rational) diff --git a/src/sage/rings/rational_field.py b/src/sage/rings/rational_field.py index da668dd68e0..5234ea105e2 100644 --- a/src/sage/rings/rational_field.py +++ b/src/sage/rings/rational_field.py @@ -1699,7 +1699,7 @@ def is_RationalField(x) -> bool: EXAMPLES:: - sage: from sage.rings.rational_field import RationalField as is_RF + sage: from sage.rings.rational_field import is_RationalField as is_RF sage: is_RF(QQ) True sage: is_RF(ZZ) diff --git a/src/sage/rings/real_double.pyx b/src/sage/rings/real_double.pyx index ae785ea6965..de1f843ce87 100644 --- a/src/sage/rings/real_double.pyx +++ b/src/sage/rings/real_double.pyx @@ -2053,10 +2053,10 @@ def is_RealDoubleElement(x): EXAMPLES:: - sage: from sage.rings.real_double import RealDoubleElement - sage: isinstance(RDF(3), RealDoubleElement) + sage: from sage.rings.real_double import is_RealDoubleElement + sage: is_RealDoubleElement(RDF(3)) True - sage: isinstance(RIF(3), RealDoubleElement) # needs sage.rings.real_interval_field + sage: is_RealDoubleElement(RIF(3)) # needs sage.rings.real_interval_field False """ return isinstance(x, RealDoubleElement) diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx index 8eae215d71e..885003ed7f8 100644 --- a/src/sage/rings/real_mpfr.pyx +++ b/src/sage/rings/real_mpfr.pyx @@ -5884,14 +5884,14 @@ def is_RealNumber(x): EXAMPLES:: - sage: from sage.rings.real_mpfr import RealNumber - sage: isinstance(2.5, RealNumber) + sage: from sage.rings.real_mpfr import is_RealNumber + sage: is_RealNumber(2.5) True - sage: isinstance(float(2.3), RealNumber) + sage: is_RealNumber(float(2.3)) False - sage: isinstance(RDF(2), RealNumber) + sage: is_RealNumber(RDF(2)) False - sage: isinstance(pi, RealNumber) # needs sage.symbolic + sage: is_RealNumber(pi) # needs sage.symbolic False """ return isinstance(x, RealNumber) diff --git a/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py b/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py index ad3df20e2ad..2a192248180 100644 --- a/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py +++ b/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py @@ -44,7 +44,7 @@ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.integer_ring import ZZ -from sage.rings.integer import Integer, Integer +from sage.rings.integer import Integer from sage.rings.polynomial.polynomial_element import Polynomial from sage.schemes.generic.homset import SchemeHomset_points diff --git a/src/sage/schemes/projective/projective_space.py b/src/sage/schemes/projective/projective_space.py index f07f8fe568a..c05588f4698 100644 --- a/src/sage/schemes/projective/projective_space.py +++ b/src/sage/schemes/projective/projective_space.py @@ -88,7 +88,7 @@ from sage.rings.polynomial.multi_polynomial_ring import is_MPolynomialRing from sage.rings.polynomial.polynomial_ring import is_PolynomialRing from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -from sage.rings.rational_field import QQ, is_RationalField +from sage.rings.rational_field import QQ, RationalField from sage.rings.fraction_field import FractionField from sage.rings.number_field.order import Order @@ -1173,7 +1173,7 @@ def points_of_bounded_height(self, **kwds): if isinstance(R, RationalField): field_type = False elif R in NumberFields(): - # True for the rational field as well, so check is_RationalField first + # True for the rational field as well, so check RationalField first field_type = True elif (R is ZZ) or (isinstance(R, Order) and R.is_integrally_closed()): # Ensure ring of integers / maximal order is_ring_of_ints = True diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx index cec7131acee..dfbd5ff82fa 100644 --- a/src/sage/structure/coerce.pyx +++ b/src/sage/structure/coerce.pyx @@ -90,7 +90,7 @@ from sage.structure.sage_object cimport SageObject from sage.structure.parent cimport Parent_richcmp_element_without_coercion from sage.structure.element cimport bin_op_exception, parent, Element from sage.structure.coerce_exceptions import CoercionException -from sage.rings.integer_fake cimport Integer +from sage.rings.integer_fake cimport is_Integer from sage.categories.map cimport Map from sage.categories.morphism import IdentityMorphism from sage.categories.action cimport Action, PrecomposedAction @@ -1411,13 +1411,13 @@ cdef class CoercionModel: return self.canonical_coercion(x, y) # Allow coercion of 0 even if no coercion from Z - if (x_numeric or isinstance(x, Integer)) and not x and type(yp) is not type: + if (x_numeric or is_Integer(x)) and not x and type(yp) is not type: try: return yp(0), y except Exception: self._record_exception() - if (y_numeric or isinstance(y, Integer)) and not y and type(xp) is not type: + if (y_numeric or is_Integer(y)) and not y and type(xp) is not type: try: return x, xp(0) except Exception: diff --git a/src/sage/structure/parent.pyx b/src/sage/structure/parent.pyx index 1ace5a4fa4d..0d667075ff6 100644 --- a/src/sage/structure/parent.pyx +++ b/src/sage/structure/parent.pyx @@ -1220,7 +1220,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): return x mor = self._internal_coerce_map_from(R) if mor is None: - if isinstance(x, Integer) and not x: + if is_Integer(x) and not x: try: return self(0) except Exception: diff --git a/src/sage/symbolic/ginac/numeric.cpp b/src/sage/symbolic/ginac/numeric.cpp index 52e37811e13..4bcf45e8793 100644 --- a/src/sage/symbolic/ginac/numeric.cpp +++ b/src/sage/symbolic/ginac/numeric.cpp @@ -813,7 +813,7 @@ numeric::numeric(PyObject* o, bool force_py) : basic(&numeric::tinfo_static) { | status_flags::expanded); return; } - if (py_funcs.py_isinstance(o, Rational) != 0) { + if (py_funcs.py_is_Rational(o) != 0) { mpq_ptr mpq = py_funcs.py_mpq_from_rational(o); set_from(t, v, hash, mpq); Py_DECREF(o); diff --git a/src/sage/symbolic/pynac.pxi b/src/sage/symbolic/pynac.pxi index e169cbc54a8..4bdbcd99526 100644 --- a/src/sage/symbolic/pynac.pxi +++ b/src/sage/symbolic/pynac.pxi @@ -491,8 +491,8 @@ cdef extern from "pynac_wrap.h": py_integer_from_python_obj(x) py_integer_from_mpz(mpz_t) py_rational_from_mpq(mpq_t) - bint py_isinstance(x, Integer) - bint py_isinstance(x, Rational) + bint py_is_Integer(x) + bint py_is_Rational(x) mpz_ptr py_mpz_from_integer(x) mpq_ptr py_mpq_from_rational(x) From aa68e2047e37b3ae0470e209d2b6f84061c004bd Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 10:52:41 -0700 Subject: [PATCH 05/16] fixups --- src/sage/arith/long.pxd | 6 +++--- src/sage/rings/finite_rings/element_ntl_gf2e.pyx | 2 +- src/sage/rings/polynomial/polynomial_element.pyx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/sage/arith/long.pxd b/src/sage/arith/long.pxd index 18d895bca86..44923f802da 100644 --- a/src/sage/arith/long.pxd +++ b/src/sage/arith/long.pxd @@ -24,7 +24,7 @@ from sage.cpython.pycore_long cimport ( ob_digit, _PyLong_IsNegative, _PyLong_DigitCount) from sage.libs.gmp.mpz cimport mpz_fits_slong_p, mpz_get_si -from sage.rings.integer_fake cimport Integer, Integer_AS_MPZ +from sage.rings.integer_fake cimport is_Integer, Integer_AS_MPZ cdef inline long pyobject_to_long(x) except? LONG_MIN: @@ -65,7 +65,7 @@ cdef inline long pyobject_to_long(x) except? LONG_MIN: if err: raise OverflowError("Python int too large to convert to C long") return value - if isinstance(x, Integer): + if is_Integer(x): z = Integer_AS_MPZ(x) if mpz_fits_slong_p(z): return mpz_get_si(z) @@ -198,7 +198,7 @@ cdef inline bint integer_check_long(x, long* value, int* err) except -1: cdef int c = integer_check_long_py(x, value, err) if c: return c - if isinstance(x, Integer): + if is_Integer(x): z = Integer_AS_MPZ(x) if mpz_fits_slong_p(z): value[0] = mpz_get_si(z) diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index 976163efdce..32ffd192353 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -72,7 +72,7 @@ cdef int late_import() except -1: GF, \ GF2, GF2_0, GF2_1 - if is_IntegerMod is not None: + if IntegerMod_abstract is not None: return 0 import sage.rings.finite_rings.integer_mod diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 4d7da25ee8a..d4ab05c50bf 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -103,7 +103,7 @@ from sage.structure.element import coerce_binop from sage.structure.element cimport (parent, have_same_parent, Element, RingElement) -from sage.rings.rational_field import QQ, is_RationalField +from sage.rings.rational_field import QQ, RationalField from sage.rings.integer_ring import ZZ, IntegerRing_class from sage.rings.integer cimport Integer, smallInteger from sage.libs.gmp.mpz cimport * From 61b64173dca9fdd3eb4c0f9d5659fd600f00e082 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 11:01:59 -0700 Subject: [PATCH 06/16] src/sage/rings/real_mpfi.pyx: Deprecate is_RealIntervalField, is_RealIntervalFieldElement --- src/sage/rings/real_mpfi.pyx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx index a487f86cfc2..95b472e912c 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -5332,6 +5332,10 @@ def is_RealIntervalField(x): EXAMPLES:: sage: sage.rings.real_mpfi.is_RealIntervalField(RIF) + doctest:warning... + DeprecationWarning: The function is_RealIntervalField is deprecated; + use 'isinstance(..., RealIntervalField_class)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: sage.rings.real_mpfi.is_RealIntervalField(RealIntervalField(200)) True @@ -5350,6 +5354,10 @@ def is_RealIntervalFieldElement(x): EXAMPLES:: sage: sage.rings.real_mpfi.is_RealIntervalFieldElement(RIF(2.2)) + doctest:warning... + DeprecationWarning: The function is_RealIntervalFieldElement is deprecated; + use 'isinstance(..., RealIntervalFieldElement)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: sage.rings.real_mpfi.is_RealIntervalFieldElement(RealIntervalField(200)(2.2)) True From 27c06305bbcea993769517016e52b7008afeae50 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 11:06:33 -0700 Subject: [PATCH 07/16] src/sage/schemes/hyperelliptic_curves/constructor.py: Use isinstance --- .../schemes/hyperelliptic_curves/constructor.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/sage/schemes/hyperelliptic_curves/constructor.py b/src/sage/schemes/hyperelliptic_curves/constructor.py index 3509797b89d..46d01cfd2cb 100644 --- a/src/sage/schemes/hyperelliptic_curves/constructor.py +++ b/src/sage/schemes/hyperelliptic_curves/constructor.py @@ -269,20 +269,14 @@ def HyperellipticCurve(f, h=0, names=None, PP=None, check_squarefree=True): # For certain base fields, we specialise to subclasses # with special case methods - def is_FiniteField(x): - return isinstance(x, FiniteField) - - def is_pAdicField(x): - return isinstance(x, sage.rings.abc.pAdicField) - fields = [ - ("FiniteField", is_FiniteField, HyperellipticCurve_finite_field), - ("RationalField", is_RationalField, HyperellipticCurve_rational_field), - ("pAdicField", is_pAdicField, HyperellipticCurve_padic_field), + ("FiniteField", FiniteField, HyperellipticCurve_finite_field), + ("RationalField", RationalField, HyperellipticCurve_rational_field), + ("pAdicField", sage.rings.abc.pAdicField, HyperellipticCurve_padic_field), ] - for name, test, cls in fields: - if test(R): + for name, base_ring_cls, cls in fields: + if isinstance(R, base_ring_cls): bases.append(cls) cls_name.append(name) break From ce498747620b3fabc3376dad8ac87dfe45aa3f18 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 11:16:48 -0700 Subject: [PATCH 08/16] src/sage/rings/finite_rings/integer_mod.pyx: Deprecate is_IntegerMod --- src/sage/rings/finite_rings/integer_mod.pyx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index fa3c78e29b2..b2238689afb 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -213,10 +213,18 @@ def is_IntegerMod(x): sage: from sage.rings.finite_rings.integer_mod import is_IntegerMod sage: is_IntegerMod(5) + doctest:warning... + DeprecationWarning: The function is_IntegerMod is deprecated; + use 'isinstance(..., IntegerMod_abstract)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. False sage: is_IntegerMod(Mod(5,10)) True """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_IntegerMod is deprecated; " + "use 'isinstance(..., IntegerMod_abstract)' instead.") return isinstance(x, IntegerMod_abstract) From ed42c30f6373da12b54a6b711cd0347a4aa147f3 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 11:28:51 -0700 Subject: [PATCH 09/16] Deprecate is_Integer, is_IntegerRing, is_Rational, is_RationalField --- src/sage/rings/integer.pyx | 8 ++++++++ src/sage/rings/integer_ring.pyx | 8 ++++++++ src/sage/rings/rational.pyx | 8 ++++++++ src/sage/rings/rational_field.py | 8 ++++++++ 4 files changed, 32 insertions(+) diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index 6d9155b643f..b4a1fa5039b 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -326,6 +326,10 @@ def is_Integer(x): sage: from sage.rings.integer import is_Integer sage: is_Integer(2) + doctest:warning... + DeprecationWarning: The function is_Integer is deprecated; + use 'isinstance(..., Integer)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: is_Integer(2/1) False @@ -334,6 +338,10 @@ def is_Integer(x): sage: is_Integer('5') False """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_Integer is deprecated; " + "use 'isinstance(..., Integer)' instead.") return isinstance(x, Integer) diff --git a/src/sage/rings/integer_ring.pyx b/src/sage/rings/integer_ring.pyx index 12b522a8bd7..a1574d00756 100644 --- a/src/sage/rings/integer_ring.pyx +++ b/src/sage/rings/integer_ring.pyx @@ -96,6 +96,10 @@ def is_IntegerRing(x): sage: from sage.rings.integer_ring import is_IntegerRing sage: is_IntegerRing(ZZ) + doctest:warning... + DeprecationWarning: The function is_IntegerRing is deprecated; + use 'isinstance(..., IntegerRing_class)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: is_IntegerRing(QQ) False @@ -104,6 +108,10 @@ def is_IntegerRing(x): sage: is_IntegerRing(parent(1/3)) False """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_IntegerRing is deprecated; " + "use 'isinstance(..., IntegerRing_class)' instead.") return isinstance(x, IntegerRing_class) diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx index 1faece8f298..819a85dbc35 100644 --- a/src/sage/rings/rational.pyx +++ b/src/sage/rings/rational.pyx @@ -393,6 +393,10 @@ def is_Rational(x): sage: from sage.rings.rational import is_Rational sage: is_Rational(2) + doctest:warning... + DeprecationWarning: The function is_Rational is deprecated; + use 'isinstance(..., Rational)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. False sage: is_Rational(2/1) True @@ -401,6 +405,10 @@ def is_Rational(x): sage: is_Rational('5') False """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_Rational is deprecated; " + "use 'isinstance(..., Rational)' instead.") return isinstance(x, Rational) diff --git a/src/sage/rings/rational_field.py b/src/sage/rings/rational_field.py index 5234ea105e2..62d85cf3380 100644 --- a/src/sage/rings/rational_field.py +++ b/src/sage/rings/rational_field.py @@ -1701,10 +1701,18 @@ def is_RationalField(x) -> bool: sage: from sage.rings.rational_field import is_RationalField as is_RF sage: is_RF(QQ) + doctest:warning... + DeprecationWarning: The function is_RationalField is deprecated; + use 'isinstance(..., RationalField)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: is_RF(ZZ) False """ + from sage.misc.superseded import deprecation + deprecation(38128, + "The function is_RationalField is deprecated; " + "use 'isinstance(..., RationalField)' instead.") return isinstance(x, RationalField) From 29f9cba81335f908e3853fb88da6ea5951a966fa Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 12:01:25 -0700 Subject: [PATCH 10/16] Deprecate is_ComplexDoubleElement, is_ComplexIntervalFieldElement, is_ComplexNumber, is_RealDoubleElement, is_RealNumber --- src/sage/rings/complex_double.pyx | 8 ++++++++ src/sage/rings/complex_interval.pyx | 8 ++++++++ src/sage/rings/complex_mpfr.pyx | 8 ++++++++ src/sage/rings/real_double.pyx | 8 ++++++++ src/sage/rings/real_mpfr.pyx | 8 ++++++++ 5 files changed, 40 insertions(+) diff --git a/src/sage/rings/complex_double.pyx b/src/sage/rings/complex_double.pyx index 2f85cbd101a..c59a2b46d6f 100644 --- a/src/sage/rings/complex_double.pyx +++ b/src/sage/rings/complex_double.pyx @@ -706,10 +706,18 @@ def is_ComplexDoubleElement(x): sage: from sage.rings.complex_double import is_ComplexDoubleElement sage: is_ComplexDoubleElement(0) + doctest:warning... + DeprecationWarning: The function is_ComplexDoubleElement is deprecated; + use 'isinstance(..., ComplexDoubleElement)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. False sage: is_ComplexDoubleElement(CDF(0)) True """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_ComplexDoubleElement is deprecated; " + "use 'isinstance(..., ComplexDoubleElement)' instead.") return isinstance(x, ComplexDoubleElement) diff --git a/src/sage/rings/complex_interval.pyx b/src/sage/rings/complex_interval.pyx index cd4ba7bb8e8..dd830421dd9 100644 --- a/src/sage/rings/complex_interval.pyx +++ b/src/sage/rings/complex_interval.pyx @@ -82,10 +82,18 @@ def is_ComplexIntervalFieldElement(x): sage: from sage.rings.complex_interval import is_ComplexIntervalFieldElement as is_CIFE sage: is_CIFE(CIF(2)) + doctest:warning... + DeprecationWarning: The function is_ComplexIntervalFieldElement is deprecated; + use 'isinstance(..., ComplexIntervalFieldElement)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: is_CIFE(CC(2)) False """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_ComplexIntervalFieldElement is deprecated; " + "use 'isinstance(..., ComplexIntervalFieldElement)' instead.") return isinstance(x, ComplexIntervalFieldElement) diff --git a/src/sage/rings/complex_mpfr.pyx b/src/sage/rings/complex_mpfr.pyx index e1ce333d57d..79c06af06d5 100644 --- a/src/sage/rings/complex_mpfr.pyx +++ b/src/sage/rings/complex_mpfr.pyx @@ -127,6 +127,10 @@ def is_ComplexNumber(x): sage: a = ComplexNumber(1, 2); a 1.00000000000000 + 2.00000000000000*I sage: is_ComplexNumber(a) + doctest:warning... + DeprecationWarning: The function is_ComplexNumber is deprecated; + use 'isinstance(..., ComplexNumber)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: b = ComplexNumber(1); b 1.00000000000000 @@ -146,6 +150,10 @@ def is_ComplexNumber(x): sage: is_ComplexNumber(d) True """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_ComplexNumber is deprecated; " + "use 'isinstance(..., ComplexNumber)' instead.") return isinstance(x, ComplexNumber) diff --git a/src/sage/rings/real_double.pyx b/src/sage/rings/real_double.pyx index de1f843ce87..d0ef9a4bb62 100644 --- a/src/sage/rings/real_double.pyx +++ b/src/sage/rings/real_double.pyx @@ -2055,10 +2055,18 @@ def is_RealDoubleElement(x): sage: from sage.rings.real_double import is_RealDoubleElement sage: is_RealDoubleElement(RDF(3)) + doctest:warning... + DeprecationWarning: The function is_RealDoubleElement is deprecated; + use 'isinstance(..., RealDoubleElement)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: is_RealDoubleElement(RIF(3)) # needs sage.rings.real_interval_field False """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_RealDoubleElement is deprecated; " + "use 'isinstance(..., RealDoubleElement)' instead.") return isinstance(x, RealDoubleElement) diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx index 885003ed7f8..9e905c9c721 100644 --- a/src/sage/rings/real_mpfr.pyx +++ b/src/sage/rings/real_mpfr.pyx @@ -5886,6 +5886,10 @@ def is_RealNumber(x): sage: from sage.rings.real_mpfr import is_RealNumber sage: is_RealNumber(2.5) + doctest:warning... + DeprecationWarning: The function is_RealNumber is deprecated; + use 'isinstance(..., RealNumber)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: is_RealNumber(float(2.3)) False @@ -5894,6 +5898,10 @@ def is_RealNumber(x): sage: is_RealNumber(pi) # needs sage.symbolic False """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_RealNumber is deprecated; " + "use 'isinstance(..., RealNumber)' instead.") return isinstance(x, RealNumber) From 008b71b8825ca0882c024efc382a6e35efdab662 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 12:27:02 -0700 Subject: [PATCH 11/16] Deprecate is_FractionField, is_FractionFieldElement --- src/sage/rings/fraction_field.py | 8 ++++++++ src/sage/rings/fraction_field_element.pyx | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/sage/rings/fraction_field.py b/src/sage/rings/fraction_field.py index 742729981eb..756cbbc9efc 100644 --- a/src/sage/rings/fraction_field.py +++ b/src/sage/rings/fraction_field.py @@ -151,10 +151,18 @@ def is_FractionField(x) -> bool: sage: from sage.rings.fraction_field import is_FractionField sage: is_FractionField(Frac(ZZ['x'])) + doctest:warning... + DeprecationWarning: The function is_FractionField is deprecated; + use 'isinstance(..., FractionField_generic)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: is_FractionField(QQ) False """ + from sage.misc.superseded import deprecation + deprecation(38128, + "The function is_FractionField is deprecated; " + "use 'isinstance(..., FractionField_generic)' instead.") return isinstance(x, FractionField_generic) diff --git a/src/sage/rings/fraction_field_element.pyx b/src/sage/rings/fraction_field_element.pyx index a9c427c03bc..e651a0bf560 100644 --- a/src/sage/rings/fraction_field_element.pyx +++ b/src/sage/rings/fraction_field_element.pyx @@ -37,12 +37,20 @@ def is_FractionFieldElement(x): sage: from sage.rings.fraction_field_element import is_FractionFieldElement sage: R. = ZZ[] sage: is_FractionFieldElement(x/2) + doctest:warning... + DeprecationWarning: The function is_FractionFieldElement is deprecated; + use 'isinstance(..., FractionFieldElement)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. False sage: is_FractionFieldElement(2/x) True sage: is_FractionFieldElement(1/3) False """ + from sage.misc.superseded import deprecation_cython + deprecation_cython(38128, + "The function is_FractionFieldElement is deprecated; " + "use 'isinstance(..., FractionFieldElement)' instead.") return isinstance(x, FractionFieldElement) From 7718e813382ea2cfdbf1ffe8a8d3f84cd16d64b1 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 12:30:32 -0700 Subject: [PATCH 12/16] Deprecate is_AlgebraicNumber, is_AlgebraicReal --- src/sage/rings/qqbar.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/sage/rings/qqbar.py b/src/sage/rings/qqbar.py index 77a7ad94675..17b8559e34c 100644 --- a/src/sage/rings/qqbar.py +++ b/src/sage/rings/qqbar.py @@ -6749,12 +6749,20 @@ def is_AlgebraicReal(x): sage: from sage.rings.qqbar import is_AlgebraicReal sage: is_AlgebraicReal(AA(sqrt(2))) # needs sage.symbolic + doctest:warning... + DeprecationWarning: The function is_AlgebraicReal is deprecated; + use 'isinstance(..., AlgebraicReal)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. True sage: is_AlgebraicReal(QQbar(sqrt(2))) # needs sage.symbolic False sage: is_AlgebraicReal("spam") False """ + from sage.misc.superseded import deprecation + deprecation(38128, + "The function is_AlgebraicReal is deprecated; " + "use 'isinstance(..., AlgebraicReal)' instead.") return isinstance(x, AlgebraicReal) @@ -6766,12 +6774,20 @@ def is_AlgebraicNumber(x): sage: from sage.rings.qqbar import is_AlgebraicNumber sage: is_AlgebraicNumber(AA(sqrt(2))) # needs sage.symbolic + doctest:warning... + DeprecationWarning: The function is_AlgebraicNumber is deprecated; + use 'isinstance(..., AlgebraicNumber)' instead. + See https://github.com/sagemath/sage/issues/38128 for details. False sage: is_AlgebraicNumber(QQbar(sqrt(2))) # needs sage.symbolic True sage: is_AlgebraicNumber("spam") False """ + from sage.misc.superseded import deprecation + deprecation(38128, + "The function is_AlgebraicNumber is deprecated; " + "use 'isinstance(..., AlgebraicNumber)' instead.") return isinstance(x, AlgebraicNumber) From 8acc55fd186a23e7f54b6ffff8e90056331fbcd0 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 12:59:02 -0700 Subject: [PATCH 13/16] src/sage/dynamics/arithmetic_dynamics/projective_ds.py: Fix up --- src/sage/dynamics/arithmetic_dynamics/projective_ds.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py index a880a38d341..a04cf57a28d 100644 --- a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py @@ -87,7 +87,7 @@ class initialization directly. from sage.rings.finite_rings.finite_field_base import FiniteField from sage.rings.finite_rings.finite_field_constructor import GF from sage.rings.finite_rings.integer_mod_ring import Zmod -from sage.rings.fraction_field import (FractionField, is_FractionField, FractionField_1poly_field) +from sage.rings.fraction_field import FractionField, FractionField_generic, FractionField_1poly_field from sage.rings.fraction_field_element import FractionFieldElement from sage.rings.function_field.function_field import is_FunctionField from sage.rings.integer import Integer From c867cfc93e7e2bf3286a833238d0477a4b212cce Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 1 Jun 2024 13:11:16 -0700 Subject: [PATCH 14/16] src/sage/schemes/berkovich/berkovich_cp_element.py: Fix up --- src/sage/schemes/berkovich/berkovich_cp_element.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/schemes/berkovich/berkovich_cp_element.py b/src/sage/schemes/berkovich/berkovich_cp_element.py index 35bfc8113f2..a9299e4e732 100644 --- a/src/sage/schemes/berkovich/berkovich_cp_element.py +++ b/src/sage/schemes/berkovich/berkovich_cp_element.py @@ -36,7 +36,7 @@ from sage.structure.element import Element from sage.structure.element import Expression import sage.rings.abc -from sage.rings.real_mpfr import RR, is_RealNumber +from sage.rings.real_mpfr import RR, RealNumber from sage.rings.padics.padic_generic_element import pAdicGenericElement from sage.rings.padics.padic_base_generic import pAdicBaseGeneric from sage.schemes.projective.projective_space import ProjectiveSpace From 65946f4db6d0bdcd292173592aad6df67c045b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20K=C3=B6ppe?= Date: Thu, 6 Jun 2024 11:02:09 -0700 Subject: [PATCH 15/16] src/sage/rings/polynomial/polynomial_element.pyx: Remove unused import Co-authored-by: gmou3 <32706872+gmou3@users.noreply.github.com> --- src/sage/rings/polynomial/polynomial_element.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index d4ab05c50bf..08f789e87cd 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -107,7 +107,7 @@ from sage.rings.rational_field import QQ, RationalField from sage.rings.integer_ring import ZZ, IntegerRing_class from sage.rings.integer cimport Integer, smallInteger from sage.libs.gmp.mpz cimport * -from sage.rings.fraction_field import FractionField, is_FractionField +from sage.rings.fraction_field import FractionField from sage.rings.padics.padic_generic import pAdicGeneric from sage.structure.category_object cimport normalize_names From e88d4352bdaa5a2fe2ba36a35b84d243339924a8 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 6 Jun 2024 11:03:19 -0700 Subject: [PATCH 16/16] src/sage/rings/polynomial/polynomial_element.pyx: Remove unused cdef --- src/sage/rings/polynomial/polynomial_element.pyx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 08f789e87cd..370f864c2fb 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -54,7 +54,6 @@ AUTHORS: # https://www.gnu.org/licenses/ # **************************************************************************** -cdef is_FractionField cdef ZZ, QQ, RR, CC, RDF, CDF cimport cython