From 1eb9e08b6f0554a83048e5a2089ef539ed517d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Thu, 17 Nov 2016 17:13:28 +0100 Subject: [PATCH 1/5] making __nonzero__ an alias for __bool__ in rings folder --- src/sage/rings/asymptotic/asymptotic_ring.py | 3 ++- src/sage/rings/complex_arb.pyx | 4 +++- src/sage/rings/complex_interval.pyx | 16 ++++++++-------- src/sage/rings/complex_mpc.pyx | 4 +++- src/sage/rings/complex_number.pyx | 4 +++- src/sage/rings/continued_fraction.py | 4 +++- src/sage/rings/finite_rings/element_givaro.pyx | 4 +++- src/sage/rings/finite_rings/element_ntl_gf2e.pyx | 4 +++- .../rings/finite_rings/element_pari_ffelt.pyx | 3 ++- src/sage/rings/finite_rings/integer_mod.pyx | 12 +++++++++--- src/sage/rings/fraction_field_element.pyx | 8 +++++--- .../function_field/function_field_element.pyx | 6 ++++-- src/sage/rings/ideal.py | 4 +++- src/sage/rings/integer.pyx | 4 +++- src/sage/rings/laurent_series_ring_element.pyx | 4 +++- src/sage/rings/morphism.pyx | 4 +++- .../rings/multi_power_series_ring_element.py | 2 +- .../rings/number_field/number_field_element.pyx | 12 ++++++------ .../number_field_element_quadratic.pyx | 4 +++- src/sage/rings/padics/CA_template.pxi | 4 +++- src/sage/rings/padics/CR_template.pxi | 4 +++- src/sage/rings/padics/FM_template.pxi | 4 +++- src/sage/rings/polynomial/laurent_polynomial.pyx | 4 +++- .../rings/polynomial/multi_polynomial_element.py | 4 +++- .../polynomial/multi_polynomial_libsingular.pyx | 4 +++- src/sage/rings/polynomial/pbori.pyx | 4 +++- src/sage/rings/polynomial/plural.pyx | 4 +++- src/sage/rings/polynomial/polynomial_element.pyx | 8 +++++--- .../polynomial_integer_dense_flint.pyx | 10 ++++++---- .../polynomial/polynomial_modn_dense_ntl.pyx | 6 ++++-- .../polynomial/polynomial_rational_flint.pyx | 4 +++- .../rings/polynomial/polynomial_template.pxi | 4 +++- .../rings/polynomial/skew_polynomial_element.pyx | 8 +++++--- src/sage/rings/power_series_poly.pyx | 10 ++++++---- src/sage/rings/power_series_ring_element.pyx | 4 +++- src/sage/rings/qqbar.py | 10 ++++++---- src/sage/rings/quotient_ring_element.py | 8 ++++---- src/sage/rings/rational.pyx | 10 +++++----- src/sage/rings/real_arb.pyx | 4 +++- src/sage/rings/real_interval_absolute.pyx | 4 +++- src/sage/rings/real_lazy.pyx | 4 +++- src/sage/rings/real_mpfi.pyx | 14 ++++++++------ src/sage/rings/real_mpfr.pyx | 12 +++++++----- src/sage/rings/universal_cyclotomic_field.py | 4 +++- 44 files changed, 171 insertions(+), 91 deletions(-) diff --git a/src/sage/rings/asymptotic/asymptotic_ring.py b/src/sage/rings/asymptotic/asymptotic_ring.py index 1c4158d92d4..fd25735f6a0 100644 --- a/src/sage/rings/asymptotic/asymptotic_ring.py +++ b/src/sage/rings/asymptotic/asymptotic_ring.py @@ -779,7 +779,7 @@ def __hash__(self): return hash(str(self)) - def __nonzero__(self): + def __bool__(self): r""" Return whether this asymptotic expansion is not identically zero. @@ -803,6 +803,7 @@ def __nonzero__(self): """ return bool(self._summands_) + __nonzero__ =__bool__ def __eq__(self, other): r""" diff --git a/src/sage/rings/complex_arb.pyx b/src/sage/rings/complex_arb.pyx index a43dbf63c97..6828eab8c16 100644 --- a/src/sage/rings/complex_arb.pyx +++ b/src/sage/rings/complex_arb.pyx @@ -1402,7 +1402,7 @@ cdef class ComplexBall(RingElement): return (arb_is_nonzero(acb_realref(self.value)) or arb_is_nonzero(acb_imagref(self.value))) - def __nonzero__(self): + def __bool__(self): """ Return ``True`` iff this complex ball is not the zero ball, i.e. if the midpoint and radius of its real and imaginary parts are not all zero. @@ -1427,6 +1427,8 @@ cdef class ComplexBall(RingElement): """ return not acb_is_zero(self.value) + __nonzero__ =__bool__ + def is_exact(self): """ Return ``True`` iff the radius of this ball is zero. diff --git a/src/sage/rings/complex_interval.pyx b/src/sage/rings/complex_interval.pyx index 0a65cd58f2e..61828eef54d 100644 --- a/src/sage/rings/complex_interval.pyx +++ b/src/sage/rings/complex_interval.pyx @@ -1389,26 +1389,26 @@ cdef class ComplexIntervalFieldElement(sage.structure.element.FieldElement): """ raise TypeError("can't convert complex interval to complex") - def __nonzero__(self): + def __bool__(self): """ Return ``True`` if ``self`` is not known to be exactly zero. EXAMPLES:: - sage: CIF(RIF(0, 0), RIF(0, 0)).__nonzero__() - False sage: bool(CIF(RIF(0, 0), RIF(0, 0))) False - sage: CIF(RIF(1), RIF(0)).__nonzero__() + sage: bool(CIF(RIF(1), RIF(0))) True - sage: CIF(RIF(0), RIF(1)).__nonzero__() + sage: bool(CIF(RIF(0), RIF(1))) True - sage: CIF(RIF(1, 2), RIF(0)).__nonzero__() + sage: bool(CIF(RIF(1, 2), RIF(0))) True - sage: CIF(RIF(-1, 1), RIF(-1, 1)).__nonzero__() + sage: bool(CIF(RIF(-1, 1), RIF(-1, 1))) True """ - return self.real().__nonzero__() or self.imag().__nonzero__() + return self.real().__bool__() or self.imag().__bool__() + + __nonzero__ =__bool__ cpdef _richcmp_(left, right, int op): r""" diff --git a/src/sage/rings/complex_mpc.pyx b/src/sage/rings/complex_mpc.pyx index 92e6ad9f700..aa9c88195a7 100644 --- a/src/sage/rings/complex_mpc.pyx +++ b/src/sage/rings/complex_mpc.pyx @@ -1243,7 +1243,7 @@ cdef class MPComplexNumber(sage.structure.element.FieldElement): elif cim<0: return -1 else: return 0 - def __nonzero__(self): + def __bool__(self): """ Return ``True`` if ``self`` is not zero. @@ -1258,6 +1258,8 @@ cdef class MPComplexNumber(sage.structure.element.FieldElement): """ return not (mpfr_zero_p(self.value.re) and mpfr_zero_p(self.value.im)) + __nonzero__ =__bool__ + def is_square(self): r""" This function always returns true as `\CC` is algebraically closed. diff --git a/src/sage/rings/complex_number.pyx b/src/sage/rings/complex_number.pyx index beadf16b075..cb68ef7e34d 100644 --- a/src/sage/rings/complex_number.pyx +++ b/src/sage/rings/complex_number.pyx @@ -859,7 +859,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): real_string, digit_precision_bound, imag_string, digit_precision_bound) - def __nonzero__(self): + def __bool__(self): """ Return ``True`` if ``self`` is not zero. This is an internal function; use :meth:`is_zero()` instead. @@ -872,6 +872,8 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): """ return not (mpfr_zero_p(self.__re) and mpfr_zero_p(self.__im)) + __nonzero__ =__bool__ + def prec(self): """ Return precision of this complex number. diff --git a/src/sage/rings/continued_fraction.py b/src/sage/rings/continued_fraction.py index 4ce33c8f294..f3317a03188 100644 --- a/src/sage/rings/continued_fraction.py +++ b/src/sage/rings/continued_fraction.py @@ -986,7 +986,7 @@ def ceil(self): return self.quotient(0) return self.quotient(0)+1 - def __nonzero__(self): + def __bool__(self): """ Return False if self is zero. @@ -1003,6 +1003,8 @@ def __nonzero__(self): """ return bool(self.quotient(0)) or self.quotient(1) is not Infinity + __nonzero__ =__bool__ + def is_zero(self): r""" Test whether ``self`` is zero. diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx index 7e077bc6e97..dafd3c8e624 100644 --- a/src/sage/rings/finite_rings/element_givaro.pyx +++ b/src/sage/rings/finite_rings/element_givaro.pyx @@ -926,7 +926,7 @@ cdef class FiniteField_givaroElement(FinitePolyExtElement): """ return self.element - def __nonzero__(FiniteField_givaroElement self): + def __bool__(FiniteField_givaroElement self): r""" Return ``True`` if ``self != k(0)``. @@ -941,6 +941,8 @@ cdef class FiniteField_givaroElement(FinitePolyExtElement): """ return not self._cache.objectptr.isZero(self.element) + __nonzero__ =__bool__ + def is_one(FiniteField_givaroElement self): r""" Return ``True`` if ``self == k(1)``. diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index b1ffd765c1e..19bad4bc1a6 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -574,7 +574,7 @@ cdef class FiniteField_ntl_gf2eElement(FinitePolyExtElement): return " + ".join(reversed(_repr)) - def __nonzero__(FiniteField_ntl_gf2eElement self): + def __bool__(FiniteField_ntl_gf2eElement self): r""" Return ``True`` if ``self != k(0)``. @@ -591,6 +591,8 @@ cdef class FiniteField_ntl_gf2eElement(FinitePolyExtElement): (self._parent._cache).F.restore() return not bool(GF2E_IsZero(self.x)) + __nonzero__ =__bool__ + def is_one(FiniteField_ntl_gf2eElement self): r""" Return ``True`` if ``self == k(1)``. diff --git a/src/sage/rings/finite_rings/element_pari_ffelt.pyx b/src/sage/rings/finite_rings/element_pari_ffelt.pyx index a61d3e0b26d..55dc48f9b10 100644 --- a/src/sage/rings/finite_rings/element_pari_ffelt.pyx +++ b/src/sage/rings/finite_rings/element_pari_ffelt.pyx @@ -560,7 +560,8 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement): """ return not bool(FF_equal0(self.val)) - __nonzero__ = is_unit + __bool__ = is_unit + __nonzero__ =__bool__ def __pos__(FiniteFieldElement_pari_ffelt self): """ diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index 1b1d38852ae..6e6b479c109 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -1901,7 +1901,7 @@ cdef class IntegerMod_gmp(IntegerMod_abstract): """ return mpz_cmp_si(self.value, 1) == 0 - def __nonzero__(IntegerMod_gmp self): + def __bool__(IntegerMod_gmp self): """ Returns ``True`` if this is not `0`, otherwise ``False``. @@ -1915,6 +1915,8 @@ cdef class IntegerMod_gmp(IntegerMod_abstract): """ return mpz_cmp_si(self.value, 0) != 0 + __nonzero__ =__bool__ + cpdef bint is_unit(self): """ Return True iff this element is a unit. @@ -2297,7 +2299,7 @@ cdef class IntegerMod_int(IntegerMod_abstract): """ return self.ivalue == 1 - def __nonzero__(IntegerMod_int self): + def __bool__(IntegerMod_int self): """ Returns ``True`` if this is not `0`, otherwise ``False``. @@ -2311,6 +2313,8 @@ cdef class IntegerMod_int(IntegerMod_abstract): """ return self.ivalue != 0 + __nonzero__ =__bool__ + cpdef bint is_unit(IntegerMod_int self): """ Return True iff this element is a unit @@ -3114,7 +3118,7 @@ cdef class IntegerMod_int64(IntegerMod_abstract): """ return self.ivalue == 1 - def __nonzero__(IntegerMod_int64 self): + def __bool__(IntegerMod_int64 self): """ Returns ``True`` if this is not `0`, otherwise ``False``. @@ -3128,6 +3132,8 @@ cdef class IntegerMod_int64(IntegerMod_abstract): """ return self.ivalue != 0 + __nonzero__ =__bool__ + cpdef bint is_unit(IntegerMod_int64 self): """ Return True iff this element is a unit. diff --git a/src/sage/rings/fraction_field_element.pyx b/src/sage/rings/fraction_field_element.pyx index e2368fa0c3e..a8a0d395c63 100644 --- a/src/sage/rings/fraction_field_element.pyx +++ b/src/sage/rings/fraction_field_element.pyx @@ -869,7 +869,7 @@ cdef class FractionFieldElement(FieldElement): """ return self.__numerator.valuation(v) - self.__denominator.valuation(v) - def __nonzero__(self): + def __bool__(self): """ Return ``True`` if this element is nonzero. @@ -878,16 +878,18 @@ cdef class FractionFieldElement(FieldElement): sage: F = ZZ['x,y'].fraction_field() sage: x,y = F.gens() sage: t = F(0)/x - sage: t.__nonzero__() + sage: bool(t) False :: - sage: (1/x).__nonzero__() + sage: bool(1/x) True """ return not self.__numerator.is_zero() + __nonzero__ =__bool__ + def is_zero(self): """ Return ``True`` if this element is equal to zero. diff --git a/src/sage/rings/function_field/function_field_element.pyx b/src/sage/rings/function_field/function_field_element.pyx index 21eb0ca74b7..b4c17de2df0 100644 --- a/src/sage/rings/function_field/function_field_element.pyx +++ b/src/sage/rings/function_field/function_field_element.pyx @@ -346,7 +346,7 @@ cdef class FunctionFieldElement_polymod(FunctionFieldElement): """ return self._x._repr(name=self.parent().variable_name()) - def __nonzero__(self): + def __bool__(self): """ EXAMPLES:: @@ -361,6 +361,8 @@ cdef class FunctionFieldElement_polymod(FunctionFieldElement): """ return not not self._x + __nonzero__ =__bool__ + def __hash__(self): """ TESTS:: @@ -560,7 +562,7 @@ cdef class FunctionFieldElement_rational(FunctionFieldElement): """ return repr(self._x) - def __nonzero__(self): + def __bool__(self): """ EXAMPLES:: diff --git a/src/sage/rings/ideal.py b/src/sage/rings/ideal.py index a4e100b7c8e..e8815a1718a 100644 --- a/src/sage/rings/ideal.py +++ b/src/sage/rings/ideal.py @@ -386,7 +386,7 @@ def _contains_(self, x): """ raise NotImplementedError - def __nonzero__(self): + def __bool__(self): r""" Return ``True`` if this ideal is not `(0)`. @@ -419,6 +419,8 @@ def __nonzero__(self): return True return False + __nonzero__ =__bool__ + def base_ring(self): r""" Returns the base ring of this ideal. diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index d7369cf3d66..9fc26138ce2 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -4293,7 +4293,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): """ return mpz_cmp_si(self.value, 1) == 0 - def __nonzero__(self): + def __bool__(self): r""" Returns ``True`` if the integer is not `0`, otherwise ``False``. @@ -4306,6 +4306,8 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): """ return mpz_sgn(self.value) != 0 + __nonzero__ =__bool__ + def is_integral(self): """ Return ``True`` since integers are integral, i.e., diff --git a/src/sage/rings/laurent_series_ring_element.pyx b/src/sage/rings/laurent_series_ring_element.pyx index 6c57351295e..e3ceded54cf 100644 --- a/src/sage/rings/laurent_series_ring_element.pyx +++ b/src/sage/rings/laurent_series_ring_element.pyx @@ -221,9 +221,11 @@ cdef class LaurentSeries(AlgebraElement): return self.__u.is_monomial() - def __nonzero__(self): + def __bool__(self): return not not self.__u + __nonzero__ =__bool__ + def _im_gens_(self, codomain, im_gens): return codomain(self(im_gens[0])) diff --git a/src/sage/rings/morphism.pyx b/src/sage/rings/morphism.pyx index 851408e69ad..7e25e0dfcfc 100644 --- a/src/sage/rings/morphism.pyx +++ b/src/sage/rings/morphism.pyx @@ -602,7 +602,7 @@ cdef class RingHomomorphism(RingMap): raise TypeError("parent must be a ring homset") RingMap.__init__(self, parent) - def __nonzero__(self): + def __bool__(self): """ Every ring map is nonzero unless the domain or codomain is the 0 ring, since there is no zero map between rings, since 1 goes @@ -626,6 +626,8 @@ cdef class RingHomomorphism(RingMap): """ return bool(self.codomain().one()) + __nonzero__ =__bool__ + def _repr_type(self): """ Used internally in printing this morphism. diff --git a/src/sage/rings/multi_power_series_ring_element.py b/src/sage/rings/multi_power_series_ring_element.py index 142f38b6d0a..4c4ef193f86 100644 --- a/src/sage/rings/multi_power_series_ring_element.py +++ b/src/sage/rings/multi_power_series_ring_element.py @@ -220,7 +220,7 @@ class MPowerSeries(PowerSeries): # # _mul_prec : works just fine # - # __nonzero__ : works just fine + # __bool__ : works just fine # """ Multivariate power series; these are the elements of Multivariate Power diff --git a/src/sage/rings/number_field/number_field_element.pyx b/src/sage/rings/number_field/number_field_element.pyx index a03cce2d7c6..7bfad4cbf14 100644 --- a/src/sage/rings/number_field/number_field_element.pyx +++ b/src/sage/rings/number_field/number_field_element.pyx @@ -2265,27 +2265,27 @@ cdef class NumberFieldElement(FieldElement): """ return self._mul_(~right) - def __nonzero__(self): + def __bool__(self): """ Return True if this number field element is nonzero. EXAMPLES:: sage: m. = CyclotomicField(17) - sage: m(0).__nonzero__() + sage: bool(m(0)) False - sage: b.__nonzero__() + sage: bool(b) True - Nonzero is used by the bool command:: + ``__bool__`` is used by the bool command:: sage: bool(b + 1) True - sage: bool(m(0)) - False """ return not IsZero_ZZX(self.__numerator) + __nonzero__ =__bool__ + cpdef _neg_(self): r""" EXAMPLE:: diff --git a/src/sage/rings/number_field/number_field_element_quadratic.pyx b/src/sage/rings/number_field/number_field_element_quadratic.pyx index efdcec9b6fc..0a5950ce158 100644 --- a/src/sage/rings/number_field/number_field_element_quadratic.pyx +++ b/src/sage/rings/number_field/number_field_element_quadratic.pyx @@ -1317,7 +1317,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): h += 42082631 * mpz_pythonhash(self.b) return h - def __nonzero__(self): + def __bool__(self): """ Check whether this element is not zero. @@ -1331,6 +1331,8 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): """ return mpz_cmp_ui(self.a, 0) != 0 or mpz_cmp_ui(self.b, 0) != 0 + __nonzero__ =__bool__ + def _integer_(self, Z=None): """ EXAMPLES: diff --git a/src/sage/rings/padics/CA_template.pxi b/src/sage/rings/padics/CA_template.pxi index 5a23eb2e96e..c87b7fd9351 100644 --- a/src/sage/rings/padics/CA_template.pxi +++ b/src/sage/rings/padics/CA_template.pxi @@ -605,7 +605,7 @@ cdef class CAElement(pAdicTemplateElement): return True return mpz_cmp_si((absprec).value, val) <= 0 - def __nonzero__(self): + def __bool__(self): """ Whether this element should be considered true in a boolean context. @@ -621,6 +621,8 @@ cdef class CAElement(pAdicTemplateElement): """ return not ciszero(self.value, self.prime_pow) + __nonzero__ =__bool__ + def is_equal_to(self, _right, absprec=None): r""" Determines whether the inputs are equal modulo diff --git a/src/sage/rings/padics/CR_template.pxi b/src/sage/rings/padics/CR_template.pxi index 2415d28e7d9..cb307c21ad3 100644 --- a/src/sage/rings/padics/CR_template.pxi +++ b/src/sage/rings/padics/CR_template.pxi @@ -959,7 +959,7 @@ cdef class CRElement(pAdicTemplateElement): return True return mpz_cmp_si((absprec).value, self.ordp) <= 0 - def __nonzero__(self): + def __bool__(self): """ Returns True if self is distinguishable from zero. @@ -975,6 +975,8 @@ cdef class CRElement(pAdicTemplateElement): """ return self.relprec != 0 + __nonzero__ =__bool__ + def is_equal_to(self, _right, absprec=None): r""" Returns whether self is equal to right modulo diff --git a/src/sage/rings/padics/FM_template.pxi b/src/sage/rings/padics/FM_template.pxi index 6a44d5cd491..22d644513e6 100644 --- a/src/sage/rings/padics/FM_template.pxi +++ b/src/sage/rings/padics/FM_template.pxi @@ -481,7 +481,7 @@ cdef class FMElement(pAdicTemplateElement): cdef long val = self.valuation_c() return mpz_cmp_si((absprec).value, val) <= 0 - def __nonzero__(self): + def __bool__(self): """ Returns True if this element is distinguishable from zero. @@ -497,6 +497,8 @@ cdef class FMElement(pAdicTemplateElement): """ return not ciszero(self.value, self.prime_pow) + __nonzero__ =__bool__ + def is_equal_to(self, _right, absprec=None): r""" Returns whether this element is equal to ``right`` modulo `p^{\mbox{absprec}}`. diff --git a/src/sage/rings/polynomial/laurent_polynomial.pyx b/src/sage/rings/polynomial/laurent_polynomial.pyx index 8e4ffc2e2c7..b6ffd69fbf7 100644 --- a/src/sage/rings/polynomial/laurent_polynomial.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial.pyx @@ -161,7 +161,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial_generic): """ return self.__u.is_zero() - def __nonzero__(self): + def __bool__(self): """ Check if ``self`` is non-zero. @@ -177,6 +177,8 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial_generic): """ return not self.__u.is_zero() + __nonzero__ =__bool__ + def _im_gens_(self, codomain, im_gens): """ Return the image of ``self`` under the morphism defined by diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 5ca295c3652..8f769df553a 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -1464,7 +1464,7 @@ def __ne__(self,right): return CommutativeRingElement.__ne__(self, right) return self._MPolynomial_element__element != right._MPolynomial_element__element - def __nonzero__(self): + def __bool__(self): """ Returns True if self != 0 @@ -1474,6 +1474,8 @@ def __nonzero__(self): """ return self._MPolynomial_element__element.dict()!={} + __nonzero__ =__bool__ + def _floordiv_(self, right): r""" Quotient of division of self by other. This is denoted //. diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx index 81f64bb3e57..5ff7f128af8 100644 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx @@ -3888,7 +3888,7 @@ cdef class MPolynomial_libsingular(sage.rings.polynomial.multi_polynomial.MPolyn else: return False - def __nonzero__(self): + def __bool__(self): """ EXAMPLES:: @@ -3903,6 +3903,8 @@ cdef class MPolynomial_libsingular(sage.rings.polynomial.multi_polynomial.MPolyn else: return False + __nonzero__ =__bool__ + cpdef _floordiv_(self, right): """ Perform division with remainder and return the quotient. diff --git a/src/sage/rings/polynomial/pbori.pyx b/src/sage/rings/polynomial/pbori.pyx index 49c1a23213d..685514abd85 100644 --- a/src/sage/rings/polynomial/pbori.pyx +++ b/src/sage/rings/polynomial/pbori.pyx @@ -3532,7 +3532,7 @@ cdef class BooleanPolynomial(MPolynomial): """ return self._pbpoly.isZero() - def __nonzero__(self): + def __bool__(self): r""" Check if ``self`` is zero. @@ -3554,6 +3554,8 @@ cdef class BooleanPolynomial(MPolynomial): """ return not self._pbpoly.isZero() + __nonzero__ =__bool__ + def is_one(BooleanPolynomial self): """ Check if self is 1. diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx index 83d632afc45..f048791bf59 100644 --- a/src/sage/rings/polynomial/plural.pyx +++ b/src/sage/rings/polynomial/plural.pyx @@ -2629,7 +2629,7 @@ cdef class NCPolynomial_plural(RingElement): else: return False - def __nonzero__(self): + def __bool__(self): """ EXAMPLES:: @@ -2648,6 +2648,8 @@ cdef class NCPolynomial_plural(RingElement): else: return False + __nonzero__ =__bool__ + ##################################################################### diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 0a44c18ce87..0e4b1c89619 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -930,7 +930,7 @@ cdef class Polynomial(CommutativeAlgebraElement): if c: return c return 0 - def __nonzero__(self): + def __bool__(self): """ EXAMPLES:: @@ -943,6 +943,8 @@ cdef class Polynomial(CommutativeAlgebraElement): """ return self.degree() >= 0 + __nonzero__ =__bool__ + def __getitem__(self, n): r""" Return the `n`-th coefficient of ``self``. @@ -8976,7 +8978,7 @@ cdef class Polynomial_generic_dense(Polynomial): """ return make_generic_polynomial, (self._parent, self.__coeffs) - def __nonzero__(self): + def __bool__(self): return len(self.__coeffs) > 0 cdef int __normalize(self) except -1: @@ -8986,7 +8988,7 @@ cdef class Polynomial_generic_dense(Polynomial): Check that exceptions are propagated correctly (:trac:`18274`):: sage: class BrokenRational(Rational): - ....: def __nonzero__(self): + ....: def __bool__(self): ....: raise NotImplementedError("cannot check whether number is non-zero") sage: z = BrokenRational() sage: R. = QQ[] diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx index b143507c8e2..1f62a0f0b78 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx @@ -749,22 +749,24 @@ cdef class Polynomial_integer_dense_flint(Polynomial): """ return (fmpz_poly_degree(self.__poly) == -1) - def __nonzero__(self): + def __bool__(self): """ Check if self is not zero. EXAMPLES:: sage: R. = ZZ[] - sage: R(0).__nonzero__() + sage: bool(R(0)) False - sage: R(1).__nonzero__() + sage: bool(R(1)) True - sage: x.__nonzero__() + sage: bool(x) True """ return not (fmpz_poly_degree(self.__poly) == -1) + __nonzero__ =__bool__ + @coerce_binop def gcd(self, right): r""" diff --git a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx index 6517f1b6100..460026f8d9b 100644 --- a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx @@ -1043,7 +1043,7 @@ cdef class Polynomial_dense_modn_ntl_zz(Polynomial_dense_mod_n): def is_gen(self): return zz_pX_IsX(self.x) - def __nonzero__(self): + def __bool__(self): """ TESTS:: @@ -1056,6 +1056,8 @@ cdef class Polynomial_dense_modn_ntl_zz(Polynomial_dense_mod_n): """ return not zz_pX_IsZero(self.x) + __nonzero__ =__bool__ + def valuation(self): """ Returns the valuation of self, that is, the power of the @@ -1604,7 +1606,7 @@ cdef class Polynomial_dense_modn_ntl_ZZ(Polynomial_dense_mod_n): return n return infinity - def __nonzero__(self): + def __bool__(self): """ TESTS:: diff --git a/src/sage/rings/polynomial/polynomial_rational_flint.pyx b/src/sage/rings/polynomial/polynomial_rational_flint.pyx index b6c1b25e7cb..4a63dd57e98 100644 --- a/src/sage/rings/polynomial/polynomial_rational_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_rational_flint.pyx @@ -712,7 +712,7 @@ cdef class Polynomial_rational_flint(Polynomial): """ return fmpq_poly_is_one(self.__poly) - def __nonzero__(self): + def __bool__(self): """ Returns whether or not self is non-zero. @@ -727,6 +727,8 @@ cdef class Polynomial_rational_flint(Polynomial): """ return not fmpq_poly_is_zero(self.__poly) + __nonzero__ =__bool__ + ########################################################################### # Shifting # ########################################################################### diff --git a/src/sage/rings/polynomial/polynomial_template.pxi b/src/sage/rings/polynomial/polynomial_template.pxi index 20b584f18e8..8cd2ba5838a 100644 --- a/src/sage/rings/polynomial/polynomial_template.pxi +++ b/src/sage/rings/polynomial/polynomial_template.pxi @@ -517,7 +517,7 @@ cdef class Polynomial_template(Polynomial): raise ValueError("Cannot coerce polynomial with degree %d to integer."%(self.degree())) return int(self[0]) - def __nonzero__(self): + def __bool__(self): """ EXAMPLE:: @@ -529,6 +529,8 @@ cdef class Polynomial_template(Polynomial): """ return not celement_is_zero(&self.x, (self)._cparent) + __nonzero__ =__bool__ + cpdef int _cmp_(left, right) except -2: """ EXAMPLE:: diff --git a/src/sage/rings/polynomial/skew_polynomial_element.pyx b/src/sage/rings/polynomial/skew_polynomial_element.pyx index 66fc5790115..a139662a7a0 100644 --- a/src/sage/rings/polynomial/skew_polynomial_element.pyx +++ b/src/sage/rings/polynomial/skew_polynomial_element.pyx @@ -1675,7 +1675,7 @@ cdef class SkewPolynomial(AlgebraElement): return (self.degree() == self.valuation() and self.leading_coefficient()._is_atomic()) - def __nonzero__(self): + def __bool__(self): r""" Test whether ``self`` is nonzero. @@ -1685,14 +1685,16 @@ cdef class SkewPolynomial(AlgebraElement): sage: sigma = R.hom([t+1]) sage: S. = R['x',sigma] sage: a = x + 1 - sage: a.__nonzero__() + sage: bool(a) True sage: b = S.zero() - sage: b.__nonzero__() + sage: bool(b) False """ return not self.is_zero() + __nonzero__ =__bool__ + def base_ring(self): r""" Return the base ring of ``self``. diff --git a/src/sage/rings/power_series_poly.pyx b/src/sage/rings/power_series_poly.pyx index 3785a69f38a..5bec0b1434a 100644 --- a/src/sage/rings/power_series_poly.pyx +++ b/src/sage/rings/power_series_poly.pyx @@ -140,22 +140,24 @@ cdef class PowerSeries_poly(PowerSeries): """ return self.__f.degree() - def __nonzero__(self): + def __bool__(self): """ Return True if self is nonzero, and False otherwise. EXAMPLES:: sage: R. = GF(11)[[]] - sage: (1 + t + O(t^18)).__nonzero__() + sage: bool(1 + t + O(t^18)) True - sage: R(0).__nonzero__() + sage: bool(R(0)) False - sage: O(t^18).__nonzero__() + sage: bool(O(t^18)) False """ return not not self.__f + __nonzero__ =__bool__ + def __call__(self, *x, **kwds): """ Evaluate the series at x=a. diff --git a/src/sage/rings/power_series_ring_element.pyx b/src/sage/rings/power_series_ring_element.pyx index 77c12ec97aa..8feec98b14e 100644 --- a/src/sage/rings/power_series_ring_element.pyx +++ b/src/sage/rings/power_series_ring_element.pyx @@ -906,7 +906,7 @@ cdef class PowerSeries(AlgebraElement): # endif return prec - def __nonzero__(self): + def __bool__(self): """ Return True if this power series is not equal to 0. @@ -926,6 +926,8 @@ cdef class PowerSeries(AlgebraElement): """ return not not self.polynomial() + __nonzero__ =__bool__ + def is_unit(self): """ Return True if this power series is invertible. diff --git a/src/sage/rings/qqbar.py b/src/sage/rings/qqbar.py index c0edcbe28df..636a0212a8b 100644 --- a/src/sage/rings/qqbar.py +++ b/src/sage/rings/qqbar.py @@ -3805,7 +3805,7 @@ def __ne__(self, other): """ return not self == other - def __nonzero__(self): + def __bool__(self): """ Check whether self is equal is nonzero. This is fast if interval arithmetic proves that self is nonzero, but may be @@ -3813,9 +3813,9 @@ def __nonzero__(self): EXAMPLES:: - sage: (QQbar.zeta(2) + 1).__nonzero__() + sage: bool(QQbar.zeta(2) + 1) False - sage: (QQbar.zeta(7) / (2^500)).__nonzero__() + sage: bool(QQbar.zeta(7) / (2^500)) True """ val = self._value @@ -3832,7 +3832,9 @@ def __nonzero__(self): # Sigh... self.exactify() - return self.__nonzero__() + return self.__bool__() + + __nonzero__ =__bool__ def __pow__(self, e): r""" ``self**p`` returns the `p`'th power of self (where `p` can diff --git a/src/sage/rings/quotient_ring_element.py b/src/sage/rings/quotient_ring_element.py index 8e59d6d114d..a2eadebf625 100644 --- a/src/sage/rings/quotient_ring_element.py +++ b/src/sage/rings/quotient_ring_element.py @@ -126,7 +126,7 @@ def lift(self): """ return self.__rep - def __nonzero__(self): + def __bool__(self): """ Return True if quotient ring element is non-zero in the quotient ring `R/I`, by determining whether the element @@ -143,13 +143,13 @@ def __nonzero__(self): TESTS:: - sage: S(0).__nonzero__() - False - sage: (a-a).__nonzero__() + sage: bool(a - a) False """ return self.__rep not in self.parent().defining_ideal() + __nonzero__ =__bool__ + def is_unit(self): """ Return True if self is a unit in the quotient ring. diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx index 25c23ac9d99..08da03bb94c 100644 --- a/src/sage/rings/rational.pyx +++ b/src/sage/rings/rational.pyx @@ -16,7 +16,7 @@ AUTHORS: - David Harvey (2006-09-15): added nth_root - Pablo De Napoli (2007-04-01): corrected the implementations of - multiplicative_order, is_one; optimized __nonzero__ ; documented: + multiplicative_order, is_one; optimized __bool__ ; documented: lcm,gcd - John Cremona (2009-05-15): added support for local and global @@ -2551,7 +2551,7 @@ cdef class Rational(sage.structure.element.FieldElement): mpq_neg(x.value, self.value) return x - def __nonzero__(self): + def __bool__(self): """ Return ``True`` if this rational number is nonzero. @@ -2559,9 +2559,7 @@ cdef class Rational(sage.structure.element.FieldElement): EXAMPLES:: - sage: (-4/17).__nonzero__() - True - sage: (0/5).__nonzero__() + sage: bool(0/5) False sage: bool(-4/17) True @@ -2569,6 +2567,8 @@ cdef class Rational(sage.structure.element.FieldElement): # A rational number is zero iff its numerator is zero. return mpq_sgn(self.value) != 0 + __nonzero__ =__bool__ + def __abs__(self): """ Return the absolute value of this rational number. diff --git a/src/sage/rings/real_arb.pyx b/src/sage/rings/real_arb.pyx index 7b42a18e89a..391c0dd477c 100644 --- a/src/sage/rings/real_arb.pyx +++ b/src/sage/rings/real_arb.pyx @@ -2006,7 +2006,7 @@ cdef class RealBall(RingElement): """ return arb_is_nonzero(self.value) - def __nonzero__(self): + def __bool__(self): """ Return ``True`` iff this ball is not the zero ball, i.e. if it its midpoint and radius are not both zero. @@ -2031,6 +2031,8 @@ cdef class RealBall(RingElement): """ return not arb_is_zero(self.value) + __nonzero__ =__bool__ + def is_exact(self): """ Return ``True`` iff the radius of this ball is zero. diff --git a/src/sage/rings/real_interval_absolute.pyx b/src/sage/rings/real_interval_absolute.pyx index ec9f72afc39..0a1479c13df 100644 --- a/src/sage/rings/real_interval_absolute.pyx +++ b/src/sage/rings/real_interval_absolute.pyx @@ -567,7 +567,7 @@ cdef class RealIntervalAbsoluteElement(FieldElement): cdef bint is_exact(self): return not self._diameter - def __nonzero__(self): + def __bool__(self): """ Return ``True`` for anything except exact zero. @@ -584,6 +584,8 @@ cdef class RealIntervalAbsoluteElement(FieldElement): """ return not not self._mantissa or not not self._diameter + __nonzero__ =__bool__ + def __neg__(self): """ TESTS:: diff --git a/src/sage/rings/real_lazy.pyx b/src/sage/rings/real_lazy.pyx index 26542878f33..caa30177ccb 100644 --- a/src/sage/rings/real_lazy.pyx +++ b/src/sage/rings/real_lazy.pyx @@ -988,7 +988,7 @@ cdef class LazyWrapper(LazyFieldElement): """ return self._value - def __nonzero__(self): + def __bool__(self): """ Check to see if ``self`` is not zero. @@ -1002,6 +1002,8 @@ cdef class LazyWrapper(LazyFieldElement): """ return not not self._value + __nonzero__ =__bool__ + def __hash__(self): """ Return the hash value of ``self``. diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx index 3357b958fb3..259bded4c93 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -3731,25 +3731,27 @@ cdef class RealIntervalFieldElement(RingElement): elif op == 5: #>= return mpfr_lessequal_p(&rt.value.right, <.value.left) - def __nonzero__(self): + def __bool__(self): """ Return ``True`` if ``self`` is not known to be exactly zero. EXAMPLES:: - sage: RIF(0).__nonzero__() + sage: bool(RIF(0)) False - sage: RIF(1).__nonzero__() + sage: bool(RIF(1)) True - sage: RIF(1, 2).__nonzero__() + sage: bool(RIF(1, 2)) True - sage: RIF(0, 1).__nonzero__() + sage: bool(RIF(0, 1)) True - sage: RIF(-1, 1).__nonzero__() + sage: bool(RIF(-1, 1)) True """ return not (mpfr_zero_p(&self.value.left) and mpfr_zero_p(&self.value.right)) + __nonzero__ =__bool__ + cpdef int _cmp_(left, right) except -2: """ Compare two intervals lexicographically. diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx index ce26f34475a..a2388fc63b3 100644 --- a/src/sage/rings/real_mpfr.pyx +++ b/src/sage/rings/real_mpfr.pyx @@ -3784,30 +3784,32 @@ cdef class RealNumber(sage.structure.element.RingElement): """ return mpfr_integer_p(self.value) != 0 - def __nonzero__(self): + def __bool__(self): """ Return ``True`` if ``self`` is nonzero. EXAMPLES:: - sage: RR(1).__nonzero__() + sage: bool(RR(1)) True - sage: RR(0).__nonzero__() + sage: bool(RR(0)) False - sage: RR('inf').__nonzero__() + sage: bool(RR('inf')) True TESTS: Check that :trac:`20502` is fixed:: - sage: RR('nan').__nonzero__() + sage: bool(RR('nan')) True sage: RR('nan').is_zero() False """ return not mpfr_zero_p(self.value) + __nonzero__ =__bool__ + cpdef int _cmp_(left, right) except -2: """ Return ``-1`` if exactly one of the numbers is ``NaN``. Return ``-1`` diff --git a/src/sage/rings/universal_cyclotomic_field.py b/src/sage/rings/universal_cyclotomic_field.py index a94af63f105..19f5d5679a4 100644 --- a/src/sage/rings/universal_cyclotomic_field.py +++ b/src/sage/rings/universal_cyclotomic_field.py @@ -275,7 +275,7 @@ def __init__(self, parent, obj): self._obj = obj FieldElement.__init__(self, parent) - def __nonzero__(self): + def __bool__(self): r""" TESTS:: @@ -285,6 +285,8 @@ def __nonzero__(self): """ return bool(self._obj) + __nonzero__ =__bool__ + def __reduce__(self): r""" TESTS:: From e62142dc3a614c694837a146d764167f19754844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Thu, 17 Nov 2016 17:42:25 +0100 Subject: [PATCH 2/5] trac 21887 one missing case --- src/sage/rings/polynomial/polynomial_element.pyx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 0e4b1c89619..9aaa77043c6 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -8990,6 +8990,7 @@ cdef class Polynomial_generic_dense(Polynomial): sage: class BrokenRational(Rational): ....: def __bool__(self): ....: raise NotImplementedError("cannot check whether number is non-zero") + ....: __nonzero__ = __bool__ sage: z = BrokenRational() sage: R. = QQ[] sage: from sage.rings.polynomial.polynomial_element import Polynomial_generic_dense From 41d63ab51939a9bcfa0dee3a5f824201a212456e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Thu, 17 Nov 2016 21:43:33 +0100 Subject: [PATCH 3/5] trac 21887 undoing alias of __nonzero__ in pyx files --- src/sage/rings/asymptotic/asymptotic_ring.py | 2 +- src/sage/rings/complex_arb.pyx | 4 +--- src/sage/rings/complex_interval.pyx | 4 +--- src/sage/rings/complex_mpc.pyx | 4 +--- src/sage/rings/complex_number.pyx | 4 +--- src/sage/rings/continued_fraction.py | 2 +- src/sage/rings/finite_rings/element_givaro.pyx | 4 +--- src/sage/rings/finite_rings/element_ntl_gf2e.pyx | 4 +--- src/sage/rings/finite_rings/element_pari_ffelt.pyx | 3 +-- src/sage/rings/finite_rings/integer_mod.pyx | 12 +++--------- src/sage/rings/fraction_field_element.pyx | 4 +--- .../rings/function_field/function_field_element.pyx | 4 +--- src/sage/rings/ideal.py | 2 +- src/sage/rings/integer.pyx | 4 +--- src/sage/rings/laurent_series_ring_element.pyx | 4 +--- src/sage/rings/morphism.pyx | 4 +--- src/sage/rings/number_field/number_field_element.pyx | 4 +--- .../number_field/number_field_element_quadratic.pyx | 4 +--- src/sage/rings/padics/CA_template.pxi | 2 +- src/sage/rings/padics/CR_template.pxi | 2 +- src/sage/rings/padics/FM_template.pxi | 2 +- src/sage/rings/polynomial/laurent_polynomial.pyx | 4 +--- .../rings/polynomial/multi_polynomial_element.py | 2 +- .../polynomial/multi_polynomial_libsingular.pyx | 4 +--- src/sage/rings/polynomial/pbori.pyx | 4 +--- src/sage/rings/polynomial/plural.pyx | 4 +--- src/sage/rings/polynomial/polynomial_element.pyx | 4 +--- .../polynomial/polynomial_integer_dense_flint.pyx | 4 +--- .../rings/polynomial/polynomial_modn_dense_ntl.pyx | 4 +--- .../rings/polynomial/polynomial_rational_flint.pyx | 4 +--- src/sage/rings/polynomial/polynomial_template.pxi | 2 +- .../rings/polynomial/skew_polynomial_element.pyx | 4 +--- src/sage/rings/power_series_poly.pyx | 4 +--- src/sage/rings/power_series_ring_element.pyx | 4 +--- src/sage/rings/qqbar.py | 2 +- src/sage/rings/quotient_ring_element.py | 2 +- src/sage/rings/rational.pyx | 6 ++---- src/sage/rings/real_arb.pyx | 4 +--- src/sage/rings/real_interval_absolute.pyx | 4 +--- src/sage/rings/real_lazy.pyx | 4 +--- src/sage/rings/real_mpfi.pyx | 4 +--- src/sage/rings/real_mpfr.pyx | 4 +--- src/sage/rings/universal_cyclotomic_field.py | 2 +- 43 files changed, 46 insertions(+), 113 deletions(-) diff --git a/src/sage/rings/asymptotic/asymptotic_ring.py b/src/sage/rings/asymptotic/asymptotic_ring.py index fd25735f6a0..3d0f367fe08 100644 --- a/src/sage/rings/asymptotic/asymptotic_ring.py +++ b/src/sage/rings/asymptotic/asymptotic_ring.py @@ -803,7 +803,7 @@ def __bool__(self): """ return bool(self._summands_) - __nonzero__ =__bool__ + __nonzero__ = __bool__ def __eq__(self, other): r""" diff --git a/src/sage/rings/complex_arb.pyx b/src/sage/rings/complex_arb.pyx index 6828eab8c16..a43dbf63c97 100644 --- a/src/sage/rings/complex_arb.pyx +++ b/src/sage/rings/complex_arb.pyx @@ -1402,7 +1402,7 @@ cdef class ComplexBall(RingElement): return (arb_is_nonzero(acb_realref(self.value)) or arb_is_nonzero(acb_imagref(self.value))) - def __bool__(self): + def __nonzero__(self): """ Return ``True`` iff this complex ball is not the zero ball, i.e. if the midpoint and radius of its real and imaginary parts are not all zero. @@ -1427,8 +1427,6 @@ cdef class ComplexBall(RingElement): """ return not acb_is_zero(self.value) - __nonzero__ =__bool__ - def is_exact(self): """ Return ``True`` iff the radius of this ball is zero. diff --git a/src/sage/rings/complex_interval.pyx b/src/sage/rings/complex_interval.pyx index 61828eef54d..130ca1fa727 100644 --- a/src/sage/rings/complex_interval.pyx +++ b/src/sage/rings/complex_interval.pyx @@ -1389,7 +1389,7 @@ cdef class ComplexIntervalFieldElement(sage.structure.element.FieldElement): """ raise TypeError("can't convert complex interval to complex") - def __bool__(self): + def __nonzero__(self): """ Return ``True`` if ``self`` is not known to be exactly zero. @@ -1408,8 +1408,6 @@ cdef class ComplexIntervalFieldElement(sage.structure.element.FieldElement): """ return self.real().__bool__() or self.imag().__bool__() - __nonzero__ =__bool__ - cpdef _richcmp_(left, right, int op): r""" As with the real interval fields this never returns false positives. diff --git a/src/sage/rings/complex_mpc.pyx b/src/sage/rings/complex_mpc.pyx index aa9c88195a7..92e6ad9f700 100644 --- a/src/sage/rings/complex_mpc.pyx +++ b/src/sage/rings/complex_mpc.pyx @@ -1243,7 +1243,7 @@ cdef class MPComplexNumber(sage.structure.element.FieldElement): elif cim<0: return -1 else: return 0 - def __bool__(self): + def __nonzero__(self): """ Return ``True`` if ``self`` is not zero. @@ -1258,8 +1258,6 @@ cdef class MPComplexNumber(sage.structure.element.FieldElement): """ return not (mpfr_zero_p(self.value.re) and mpfr_zero_p(self.value.im)) - __nonzero__ =__bool__ - def is_square(self): r""" This function always returns true as `\CC` is algebraically closed. diff --git a/src/sage/rings/complex_number.pyx b/src/sage/rings/complex_number.pyx index cb68ef7e34d..beadf16b075 100644 --- a/src/sage/rings/complex_number.pyx +++ b/src/sage/rings/complex_number.pyx @@ -859,7 +859,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): real_string, digit_precision_bound, imag_string, digit_precision_bound) - def __bool__(self): + def __nonzero__(self): """ Return ``True`` if ``self`` is not zero. This is an internal function; use :meth:`is_zero()` instead. @@ -872,8 +872,6 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): """ return not (mpfr_zero_p(self.__re) and mpfr_zero_p(self.__im)) - __nonzero__ =__bool__ - def prec(self): """ Return precision of this complex number. diff --git a/src/sage/rings/continued_fraction.py b/src/sage/rings/continued_fraction.py index f3317a03188..89282a3ac3b 100644 --- a/src/sage/rings/continued_fraction.py +++ b/src/sage/rings/continued_fraction.py @@ -1003,7 +1003,7 @@ def __bool__(self): """ return bool(self.quotient(0)) or self.quotient(1) is not Infinity - __nonzero__ =__bool__ + __nonzero__ = __bool__ def is_zero(self): r""" diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx index dafd3c8e624..7e077bc6e97 100644 --- a/src/sage/rings/finite_rings/element_givaro.pyx +++ b/src/sage/rings/finite_rings/element_givaro.pyx @@ -926,7 +926,7 @@ cdef class FiniteField_givaroElement(FinitePolyExtElement): """ return self.element - def __bool__(FiniteField_givaroElement self): + def __nonzero__(FiniteField_givaroElement self): r""" Return ``True`` if ``self != k(0)``. @@ -941,8 +941,6 @@ cdef class FiniteField_givaroElement(FinitePolyExtElement): """ return not self._cache.objectptr.isZero(self.element) - __nonzero__ =__bool__ - def is_one(FiniteField_givaroElement self): r""" Return ``True`` if ``self == k(1)``. diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index 19bad4bc1a6..b1ffd765c1e 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -574,7 +574,7 @@ cdef class FiniteField_ntl_gf2eElement(FinitePolyExtElement): return " + ".join(reversed(_repr)) - def __bool__(FiniteField_ntl_gf2eElement self): + def __nonzero__(FiniteField_ntl_gf2eElement self): r""" Return ``True`` if ``self != k(0)``. @@ -591,8 +591,6 @@ cdef class FiniteField_ntl_gf2eElement(FinitePolyExtElement): (self._parent._cache).F.restore() return not bool(GF2E_IsZero(self.x)) - __nonzero__ =__bool__ - def is_one(FiniteField_ntl_gf2eElement self): r""" Return ``True`` if ``self == k(1)``. diff --git a/src/sage/rings/finite_rings/element_pari_ffelt.pyx b/src/sage/rings/finite_rings/element_pari_ffelt.pyx index 55dc48f9b10..a61d3e0b26d 100644 --- a/src/sage/rings/finite_rings/element_pari_ffelt.pyx +++ b/src/sage/rings/finite_rings/element_pari_ffelt.pyx @@ -560,8 +560,7 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement): """ return not bool(FF_equal0(self.val)) - __bool__ = is_unit - __nonzero__ =__bool__ + __nonzero__ = is_unit def __pos__(FiniteFieldElement_pari_ffelt self): """ diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index 6e6b479c109..1b1d38852ae 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -1901,7 +1901,7 @@ cdef class IntegerMod_gmp(IntegerMod_abstract): """ return mpz_cmp_si(self.value, 1) == 0 - def __bool__(IntegerMod_gmp self): + def __nonzero__(IntegerMod_gmp self): """ Returns ``True`` if this is not `0`, otherwise ``False``. @@ -1915,8 +1915,6 @@ cdef class IntegerMod_gmp(IntegerMod_abstract): """ return mpz_cmp_si(self.value, 0) != 0 - __nonzero__ =__bool__ - cpdef bint is_unit(self): """ Return True iff this element is a unit. @@ -2299,7 +2297,7 @@ cdef class IntegerMod_int(IntegerMod_abstract): """ return self.ivalue == 1 - def __bool__(IntegerMod_int self): + def __nonzero__(IntegerMod_int self): """ Returns ``True`` if this is not `0`, otherwise ``False``. @@ -2313,8 +2311,6 @@ cdef class IntegerMod_int(IntegerMod_abstract): """ return self.ivalue != 0 - __nonzero__ =__bool__ - cpdef bint is_unit(IntegerMod_int self): """ Return True iff this element is a unit @@ -3118,7 +3114,7 @@ cdef class IntegerMod_int64(IntegerMod_abstract): """ return self.ivalue == 1 - def __bool__(IntegerMod_int64 self): + def __nonzero__(IntegerMod_int64 self): """ Returns ``True`` if this is not `0`, otherwise ``False``. @@ -3132,8 +3128,6 @@ cdef class IntegerMod_int64(IntegerMod_abstract): """ return self.ivalue != 0 - __nonzero__ =__bool__ - cpdef bint is_unit(IntegerMod_int64 self): """ Return True iff this element is a unit. diff --git a/src/sage/rings/fraction_field_element.pyx b/src/sage/rings/fraction_field_element.pyx index a8a0d395c63..740ff078fd8 100644 --- a/src/sage/rings/fraction_field_element.pyx +++ b/src/sage/rings/fraction_field_element.pyx @@ -869,7 +869,7 @@ cdef class FractionFieldElement(FieldElement): """ return self.__numerator.valuation(v) - self.__denominator.valuation(v) - def __bool__(self): + def __nonzero__(self): """ Return ``True`` if this element is nonzero. @@ -888,8 +888,6 @@ cdef class FractionFieldElement(FieldElement): """ return not self.__numerator.is_zero() - __nonzero__ =__bool__ - def is_zero(self): """ Return ``True`` if this element is equal to zero. diff --git a/src/sage/rings/function_field/function_field_element.pyx b/src/sage/rings/function_field/function_field_element.pyx index b4c17de2df0..bb5f5997479 100644 --- a/src/sage/rings/function_field/function_field_element.pyx +++ b/src/sage/rings/function_field/function_field_element.pyx @@ -346,7 +346,7 @@ cdef class FunctionFieldElement_polymod(FunctionFieldElement): """ return self._x._repr(name=self.parent().variable_name()) - def __bool__(self): + def __nonzero__(self): """ EXAMPLES:: @@ -361,8 +361,6 @@ cdef class FunctionFieldElement_polymod(FunctionFieldElement): """ return not not self._x - __nonzero__ =__bool__ - def __hash__(self): """ TESTS:: diff --git a/src/sage/rings/ideal.py b/src/sage/rings/ideal.py index e8815a1718a..6fbf68e9867 100644 --- a/src/sage/rings/ideal.py +++ b/src/sage/rings/ideal.py @@ -419,7 +419,7 @@ def __bool__(self): return True return False - __nonzero__ =__bool__ + __nonzero__ = __bool__ def base_ring(self): r""" diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index 9fc26138ce2..d7369cf3d66 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -4293,7 +4293,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): """ return mpz_cmp_si(self.value, 1) == 0 - def __bool__(self): + def __nonzero__(self): r""" Returns ``True`` if the integer is not `0`, otherwise ``False``. @@ -4306,8 +4306,6 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): """ return mpz_sgn(self.value) != 0 - __nonzero__ =__bool__ - def is_integral(self): """ Return ``True`` since integers are integral, i.e., diff --git a/src/sage/rings/laurent_series_ring_element.pyx b/src/sage/rings/laurent_series_ring_element.pyx index e3ceded54cf..6c57351295e 100644 --- a/src/sage/rings/laurent_series_ring_element.pyx +++ b/src/sage/rings/laurent_series_ring_element.pyx @@ -221,11 +221,9 @@ cdef class LaurentSeries(AlgebraElement): return self.__u.is_monomial() - def __bool__(self): + def __nonzero__(self): return not not self.__u - __nonzero__ =__bool__ - def _im_gens_(self, codomain, im_gens): return codomain(self(im_gens[0])) diff --git a/src/sage/rings/morphism.pyx b/src/sage/rings/morphism.pyx index 7e25e0dfcfc..851408e69ad 100644 --- a/src/sage/rings/morphism.pyx +++ b/src/sage/rings/morphism.pyx @@ -602,7 +602,7 @@ cdef class RingHomomorphism(RingMap): raise TypeError("parent must be a ring homset") RingMap.__init__(self, parent) - def __bool__(self): + def __nonzero__(self): """ Every ring map is nonzero unless the domain or codomain is the 0 ring, since there is no zero map between rings, since 1 goes @@ -626,8 +626,6 @@ cdef class RingHomomorphism(RingMap): """ return bool(self.codomain().one()) - __nonzero__ =__bool__ - def _repr_type(self): """ Used internally in printing this morphism. diff --git a/src/sage/rings/number_field/number_field_element.pyx b/src/sage/rings/number_field/number_field_element.pyx index 7bfad4cbf14..cfecf3aec4a 100644 --- a/src/sage/rings/number_field/number_field_element.pyx +++ b/src/sage/rings/number_field/number_field_element.pyx @@ -2265,7 +2265,7 @@ cdef class NumberFieldElement(FieldElement): """ return self._mul_(~right) - def __bool__(self): + def __nonzero__(self): """ Return True if this number field element is nonzero. @@ -2284,8 +2284,6 @@ cdef class NumberFieldElement(FieldElement): """ return not IsZero_ZZX(self.__numerator) - __nonzero__ =__bool__ - cpdef _neg_(self): r""" EXAMPLE:: diff --git a/src/sage/rings/number_field/number_field_element_quadratic.pyx b/src/sage/rings/number_field/number_field_element_quadratic.pyx index 0a5950ce158..efdcec9b6fc 100644 --- a/src/sage/rings/number_field/number_field_element_quadratic.pyx +++ b/src/sage/rings/number_field/number_field_element_quadratic.pyx @@ -1317,7 +1317,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): h += 42082631 * mpz_pythonhash(self.b) return h - def __bool__(self): + def __nonzero__(self): """ Check whether this element is not zero. @@ -1331,8 +1331,6 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): """ return mpz_cmp_ui(self.a, 0) != 0 or mpz_cmp_ui(self.b, 0) != 0 - __nonzero__ =__bool__ - def _integer_(self, Z=None): """ EXAMPLES: diff --git a/src/sage/rings/padics/CA_template.pxi b/src/sage/rings/padics/CA_template.pxi index c87b7fd9351..d998b2100e5 100644 --- a/src/sage/rings/padics/CA_template.pxi +++ b/src/sage/rings/padics/CA_template.pxi @@ -621,7 +621,7 @@ cdef class CAElement(pAdicTemplateElement): """ return not ciszero(self.value, self.prime_pow) - __nonzero__ =__bool__ + __nonzero__ = __bool__ def is_equal_to(self, _right, absprec=None): r""" diff --git a/src/sage/rings/padics/CR_template.pxi b/src/sage/rings/padics/CR_template.pxi index cb307c21ad3..84bd7b0180f 100644 --- a/src/sage/rings/padics/CR_template.pxi +++ b/src/sage/rings/padics/CR_template.pxi @@ -975,7 +975,7 @@ cdef class CRElement(pAdicTemplateElement): """ return self.relprec != 0 - __nonzero__ =__bool__ + __nonzero__ = __bool__ def is_equal_to(self, _right, absprec=None): r""" diff --git a/src/sage/rings/padics/FM_template.pxi b/src/sage/rings/padics/FM_template.pxi index 22d644513e6..fe34389fe84 100644 --- a/src/sage/rings/padics/FM_template.pxi +++ b/src/sage/rings/padics/FM_template.pxi @@ -497,7 +497,7 @@ cdef class FMElement(pAdicTemplateElement): """ return not ciszero(self.value, self.prime_pow) - __nonzero__ =__bool__ + __nonzero__ = __bool__ def is_equal_to(self, _right, absprec=None): r""" diff --git a/src/sage/rings/polynomial/laurent_polynomial.pyx b/src/sage/rings/polynomial/laurent_polynomial.pyx index b6ffd69fbf7..8e4ffc2e2c7 100644 --- a/src/sage/rings/polynomial/laurent_polynomial.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial.pyx @@ -161,7 +161,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial_generic): """ return self.__u.is_zero() - def __bool__(self): + def __nonzero__(self): """ Check if ``self`` is non-zero. @@ -177,8 +177,6 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial_generic): """ return not self.__u.is_zero() - __nonzero__ =__bool__ - def _im_gens_(self, codomain, im_gens): """ Return the image of ``self`` under the morphism defined by diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 8f769df553a..7ca1bd6c46c 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -1474,7 +1474,7 @@ def __bool__(self): """ return self._MPolynomial_element__element.dict()!={} - __nonzero__ =__bool__ + __nonzero__ = __bool__ def _floordiv_(self, right): r""" diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx index 5ff7f128af8..81f64bb3e57 100644 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx @@ -3888,7 +3888,7 @@ cdef class MPolynomial_libsingular(sage.rings.polynomial.multi_polynomial.MPolyn else: return False - def __bool__(self): + def __nonzero__(self): """ EXAMPLES:: @@ -3903,8 +3903,6 @@ cdef class MPolynomial_libsingular(sage.rings.polynomial.multi_polynomial.MPolyn else: return False - __nonzero__ =__bool__ - cpdef _floordiv_(self, right): """ Perform division with remainder and return the quotient. diff --git a/src/sage/rings/polynomial/pbori.pyx b/src/sage/rings/polynomial/pbori.pyx index 685514abd85..49c1a23213d 100644 --- a/src/sage/rings/polynomial/pbori.pyx +++ b/src/sage/rings/polynomial/pbori.pyx @@ -3532,7 +3532,7 @@ cdef class BooleanPolynomial(MPolynomial): """ return self._pbpoly.isZero() - def __bool__(self): + def __nonzero__(self): r""" Check if ``self`` is zero. @@ -3554,8 +3554,6 @@ cdef class BooleanPolynomial(MPolynomial): """ return not self._pbpoly.isZero() - __nonzero__ =__bool__ - def is_one(BooleanPolynomial self): """ Check if self is 1. diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx index f048791bf59..83d632afc45 100644 --- a/src/sage/rings/polynomial/plural.pyx +++ b/src/sage/rings/polynomial/plural.pyx @@ -2629,7 +2629,7 @@ cdef class NCPolynomial_plural(RingElement): else: return False - def __bool__(self): + def __nonzero__(self): """ EXAMPLES:: @@ -2648,8 +2648,6 @@ cdef class NCPolynomial_plural(RingElement): else: return False - __nonzero__ =__bool__ - ##################################################################### diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 9aaa77043c6..8b5c0f475c2 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -930,7 +930,7 @@ cdef class Polynomial(CommutativeAlgebraElement): if c: return c return 0 - def __bool__(self): + def __nonzero__(self): """ EXAMPLES:: @@ -943,8 +943,6 @@ cdef class Polynomial(CommutativeAlgebraElement): """ return self.degree() >= 0 - __nonzero__ =__bool__ - def __getitem__(self, n): r""" Return the `n`-th coefficient of ``self``. diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx index 1f62a0f0b78..9524badf1e1 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx @@ -749,7 +749,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): """ return (fmpz_poly_degree(self.__poly) == -1) - def __bool__(self): + def __nonzero__(self): """ Check if self is not zero. @@ -765,8 +765,6 @@ cdef class Polynomial_integer_dense_flint(Polynomial): """ return not (fmpz_poly_degree(self.__poly) == -1) - __nonzero__ =__bool__ - @coerce_binop def gcd(self, right): r""" diff --git a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx index 460026f8d9b..afac91cad43 100644 --- a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx @@ -1043,7 +1043,7 @@ cdef class Polynomial_dense_modn_ntl_zz(Polynomial_dense_mod_n): def is_gen(self): return zz_pX_IsX(self.x) - def __bool__(self): + def __nonzero__(self): """ TESTS:: @@ -1056,8 +1056,6 @@ cdef class Polynomial_dense_modn_ntl_zz(Polynomial_dense_mod_n): """ return not zz_pX_IsZero(self.x) - __nonzero__ =__bool__ - def valuation(self): """ Returns the valuation of self, that is, the power of the diff --git a/src/sage/rings/polynomial/polynomial_rational_flint.pyx b/src/sage/rings/polynomial/polynomial_rational_flint.pyx index 4a63dd57e98..b6c1b25e7cb 100644 --- a/src/sage/rings/polynomial/polynomial_rational_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_rational_flint.pyx @@ -712,7 +712,7 @@ cdef class Polynomial_rational_flint(Polynomial): """ return fmpq_poly_is_one(self.__poly) - def __bool__(self): + def __nonzero__(self): """ Returns whether or not self is non-zero. @@ -727,8 +727,6 @@ cdef class Polynomial_rational_flint(Polynomial): """ return not fmpq_poly_is_zero(self.__poly) - __nonzero__ =__bool__ - ########################################################################### # Shifting # ########################################################################### diff --git a/src/sage/rings/polynomial/polynomial_template.pxi b/src/sage/rings/polynomial/polynomial_template.pxi index 8cd2ba5838a..240de65c086 100644 --- a/src/sage/rings/polynomial/polynomial_template.pxi +++ b/src/sage/rings/polynomial/polynomial_template.pxi @@ -529,7 +529,7 @@ cdef class Polynomial_template(Polynomial): """ return not celement_is_zero(&self.x, (self)._cparent) - __nonzero__ =__bool__ + __nonzero__ = __bool__ cpdef int _cmp_(left, right) except -2: """ diff --git a/src/sage/rings/polynomial/skew_polynomial_element.pyx b/src/sage/rings/polynomial/skew_polynomial_element.pyx index a139662a7a0..ed28dfbe47f 100644 --- a/src/sage/rings/polynomial/skew_polynomial_element.pyx +++ b/src/sage/rings/polynomial/skew_polynomial_element.pyx @@ -1675,7 +1675,7 @@ cdef class SkewPolynomial(AlgebraElement): return (self.degree() == self.valuation() and self.leading_coefficient()._is_atomic()) - def __bool__(self): + def __nonzero__(self): r""" Test whether ``self`` is nonzero. @@ -1693,8 +1693,6 @@ cdef class SkewPolynomial(AlgebraElement): """ return not self.is_zero() - __nonzero__ =__bool__ - def base_ring(self): r""" Return the base ring of ``self``. diff --git a/src/sage/rings/power_series_poly.pyx b/src/sage/rings/power_series_poly.pyx index 5bec0b1434a..09d5c341acc 100644 --- a/src/sage/rings/power_series_poly.pyx +++ b/src/sage/rings/power_series_poly.pyx @@ -140,7 +140,7 @@ cdef class PowerSeries_poly(PowerSeries): """ return self.__f.degree() - def __bool__(self): + def __nonzero__(self): """ Return True if self is nonzero, and False otherwise. @@ -156,8 +156,6 @@ cdef class PowerSeries_poly(PowerSeries): """ return not not self.__f - __nonzero__ =__bool__ - def __call__(self, *x, **kwds): """ Evaluate the series at x=a. diff --git a/src/sage/rings/power_series_ring_element.pyx b/src/sage/rings/power_series_ring_element.pyx index 8feec98b14e..77c12ec97aa 100644 --- a/src/sage/rings/power_series_ring_element.pyx +++ b/src/sage/rings/power_series_ring_element.pyx @@ -906,7 +906,7 @@ cdef class PowerSeries(AlgebraElement): # endif return prec - def __bool__(self): + def __nonzero__(self): """ Return True if this power series is not equal to 0. @@ -926,8 +926,6 @@ cdef class PowerSeries(AlgebraElement): """ return not not self.polynomial() - __nonzero__ =__bool__ - def is_unit(self): """ Return True if this power series is invertible. diff --git a/src/sage/rings/qqbar.py b/src/sage/rings/qqbar.py index 636a0212a8b..f43e8bdeeda 100644 --- a/src/sage/rings/qqbar.py +++ b/src/sage/rings/qqbar.py @@ -3834,7 +3834,7 @@ def __bool__(self): self.exactify() return self.__bool__() - __nonzero__ =__bool__ + __nonzero__ = __bool__ def __pow__(self, e): r""" ``self**p`` returns the `p`'th power of self (where `p` can diff --git a/src/sage/rings/quotient_ring_element.py b/src/sage/rings/quotient_ring_element.py index a2eadebf625..b3866dc8f1e 100644 --- a/src/sage/rings/quotient_ring_element.py +++ b/src/sage/rings/quotient_ring_element.py @@ -148,7 +148,7 @@ def __bool__(self): """ return self.__rep not in self.parent().defining_ideal() - __nonzero__ =__bool__ + __nonzero__ = __bool__ def is_unit(self): """ diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx index 08da03bb94c..a76e802377c 100644 --- a/src/sage/rings/rational.pyx +++ b/src/sage/rings/rational.pyx @@ -16,7 +16,7 @@ AUTHORS: - David Harvey (2006-09-15): added nth_root - Pablo De Napoli (2007-04-01): corrected the implementations of - multiplicative_order, is_one; optimized __bool__ ; documented: + multiplicative_order, is_one; optimized __nonzero__ ; documented: lcm,gcd - John Cremona (2009-05-15): added support for local and global @@ -2551,7 +2551,7 @@ cdef class Rational(sage.structure.element.FieldElement): mpq_neg(x.value, self.value) return x - def __bool__(self): + def __nonzero__(self): """ Return ``True`` if this rational number is nonzero. @@ -2567,8 +2567,6 @@ cdef class Rational(sage.structure.element.FieldElement): # A rational number is zero iff its numerator is zero. return mpq_sgn(self.value) != 0 - __nonzero__ =__bool__ - def __abs__(self): """ Return the absolute value of this rational number. diff --git a/src/sage/rings/real_arb.pyx b/src/sage/rings/real_arb.pyx index 391c0dd477c..7b42a18e89a 100644 --- a/src/sage/rings/real_arb.pyx +++ b/src/sage/rings/real_arb.pyx @@ -2006,7 +2006,7 @@ cdef class RealBall(RingElement): """ return arb_is_nonzero(self.value) - def __bool__(self): + def __nonzero__(self): """ Return ``True`` iff this ball is not the zero ball, i.e. if it its midpoint and radius are not both zero. @@ -2031,8 +2031,6 @@ cdef class RealBall(RingElement): """ return not arb_is_zero(self.value) - __nonzero__ =__bool__ - def is_exact(self): """ Return ``True`` iff the radius of this ball is zero. diff --git a/src/sage/rings/real_interval_absolute.pyx b/src/sage/rings/real_interval_absolute.pyx index 0a1479c13df..ec9f72afc39 100644 --- a/src/sage/rings/real_interval_absolute.pyx +++ b/src/sage/rings/real_interval_absolute.pyx @@ -567,7 +567,7 @@ cdef class RealIntervalAbsoluteElement(FieldElement): cdef bint is_exact(self): return not self._diameter - def __bool__(self): + def __nonzero__(self): """ Return ``True`` for anything except exact zero. @@ -584,8 +584,6 @@ cdef class RealIntervalAbsoluteElement(FieldElement): """ return not not self._mantissa or not not self._diameter - __nonzero__ =__bool__ - def __neg__(self): """ TESTS:: diff --git a/src/sage/rings/real_lazy.pyx b/src/sage/rings/real_lazy.pyx index caa30177ccb..26542878f33 100644 --- a/src/sage/rings/real_lazy.pyx +++ b/src/sage/rings/real_lazy.pyx @@ -988,7 +988,7 @@ cdef class LazyWrapper(LazyFieldElement): """ return self._value - def __bool__(self): + def __nonzero__(self): """ Check to see if ``self`` is not zero. @@ -1002,8 +1002,6 @@ cdef class LazyWrapper(LazyFieldElement): """ return not not self._value - __nonzero__ =__bool__ - def __hash__(self): """ Return the hash value of ``self``. diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx index 259bded4c93..3b5e77d40b5 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -3731,7 +3731,7 @@ cdef class RealIntervalFieldElement(RingElement): elif op == 5: #>= return mpfr_lessequal_p(&rt.value.right, <.value.left) - def __bool__(self): + def __nonzero__(self): """ Return ``True`` if ``self`` is not known to be exactly zero. @@ -3750,8 +3750,6 @@ cdef class RealIntervalFieldElement(RingElement): """ return not (mpfr_zero_p(&self.value.left) and mpfr_zero_p(&self.value.right)) - __nonzero__ =__bool__ - cpdef int _cmp_(left, right) except -2: """ Compare two intervals lexicographically. diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx index a2388fc63b3..52c81d50457 100644 --- a/src/sage/rings/real_mpfr.pyx +++ b/src/sage/rings/real_mpfr.pyx @@ -3784,7 +3784,7 @@ cdef class RealNumber(sage.structure.element.RingElement): """ return mpfr_integer_p(self.value) != 0 - def __bool__(self): + def __nonzero__(self): """ Return ``True`` if ``self`` is nonzero. @@ -3808,8 +3808,6 @@ cdef class RealNumber(sage.structure.element.RingElement): """ return not mpfr_zero_p(self.value) - __nonzero__ =__bool__ - cpdef int _cmp_(left, right) except -2: """ Return ``-1`` if exactly one of the numbers is ``NaN``. Return ``-1`` diff --git a/src/sage/rings/universal_cyclotomic_field.py b/src/sage/rings/universal_cyclotomic_field.py index 19f5d5679a4..ab170248cfa 100644 --- a/src/sage/rings/universal_cyclotomic_field.py +++ b/src/sage/rings/universal_cyclotomic_field.py @@ -285,7 +285,7 @@ def __bool__(self): """ return bool(self._obj) - __nonzero__ =__bool__ + __nonzero__ = __bool__ def __reduce__(self): r""" From 28728df57b3b34e85f4b40f655d2abf8a74ae535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Thu, 17 Nov 2016 22:18:05 +0100 Subject: [PATCH 4/5] trac 21887 undo aliasing in pxi files too --- src/sage/rings/padics/CA_template.pxi | 4 +--- src/sage/rings/padics/CR_template.pxi | 4 +--- src/sage/rings/padics/FM_template.pxi | 4 +--- src/sage/rings/polynomial/polynomial_template.pxi | 4 +--- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/sage/rings/padics/CA_template.pxi b/src/sage/rings/padics/CA_template.pxi index d998b2100e5..5a23eb2e96e 100644 --- a/src/sage/rings/padics/CA_template.pxi +++ b/src/sage/rings/padics/CA_template.pxi @@ -605,7 +605,7 @@ cdef class CAElement(pAdicTemplateElement): return True return mpz_cmp_si((absprec).value, val) <= 0 - def __bool__(self): + def __nonzero__(self): """ Whether this element should be considered true in a boolean context. @@ -621,8 +621,6 @@ cdef class CAElement(pAdicTemplateElement): """ return not ciszero(self.value, self.prime_pow) - __nonzero__ = __bool__ - def is_equal_to(self, _right, absprec=None): r""" Determines whether the inputs are equal modulo diff --git a/src/sage/rings/padics/CR_template.pxi b/src/sage/rings/padics/CR_template.pxi index 84bd7b0180f..2415d28e7d9 100644 --- a/src/sage/rings/padics/CR_template.pxi +++ b/src/sage/rings/padics/CR_template.pxi @@ -959,7 +959,7 @@ cdef class CRElement(pAdicTemplateElement): return True return mpz_cmp_si((absprec).value, self.ordp) <= 0 - def __bool__(self): + def __nonzero__(self): """ Returns True if self is distinguishable from zero. @@ -975,8 +975,6 @@ cdef class CRElement(pAdicTemplateElement): """ return self.relprec != 0 - __nonzero__ = __bool__ - def is_equal_to(self, _right, absprec=None): r""" Returns whether self is equal to right modulo diff --git a/src/sage/rings/padics/FM_template.pxi b/src/sage/rings/padics/FM_template.pxi index fe34389fe84..6a44d5cd491 100644 --- a/src/sage/rings/padics/FM_template.pxi +++ b/src/sage/rings/padics/FM_template.pxi @@ -481,7 +481,7 @@ cdef class FMElement(pAdicTemplateElement): cdef long val = self.valuation_c() return mpz_cmp_si((absprec).value, val) <= 0 - def __bool__(self): + def __nonzero__(self): """ Returns True if this element is distinguishable from zero. @@ -497,8 +497,6 @@ cdef class FMElement(pAdicTemplateElement): """ return not ciszero(self.value, self.prime_pow) - __nonzero__ = __bool__ - def is_equal_to(self, _right, absprec=None): r""" Returns whether this element is equal to ``right`` modulo `p^{\mbox{absprec}}`. diff --git a/src/sage/rings/polynomial/polynomial_template.pxi b/src/sage/rings/polynomial/polynomial_template.pxi index 240de65c086..20b584f18e8 100644 --- a/src/sage/rings/polynomial/polynomial_template.pxi +++ b/src/sage/rings/polynomial/polynomial_template.pxi @@ -517,7 +517,7 @@ cdef class Polynomial_template(Polynomial): raise ValueError("Cannot coerce polynomial with degree %d to integer."%(self.degree())) return int(self[0]) - def __bool__(self): + def __nonzero__(self): """ EXAMPLE:: @@ -529,8 +529,6 @@ cdef class Polynomial_template(Polynomial): """ return not celement_is_zero(&self.x, (self)._cparent) - __nonzero__ = __bool__ - cpdef int _cmp_(left, right) except -2: """ EXAMPLE:: From b27983499cc4ecb534cab9af8f31e122568c42fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Thu, 17 Nov 2016 22:28:19 +0100 Subject: [PATCH 5/5] trac 21887 some forgotten cases --- src/sage/rings/complex_interval.pyx | 2 +- src/sage/rings/function_field/function_field_element.pyx | 2 +- src/sage/rings/polynomial/polynomial_element.pyx | 2 +- src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/rings/complex_interval.pyx b/src/sage/rings/complex_interval.pyx index 130ca1fa727..71b4fc857a8 100644 --- a/src/sage/rings/complex_interval.pyx +++ b/src/sage/rings/complex_interval.pyx @@ -1406,7 +1406,7 @@ cdef class ComplexIntervalFieldElement(sage.structure.element.FieldElement): sage: bool(CIF(RIF(-1, 1), RIF(-1, 1))) True """ - return self.real().__bool__() or self.imag().__bool__() + return bool(self.real()) or bool(self.imag()) cpdef _richcmp_(left, right, int op): r""" diff --git a/src/sage/rings/function_field/function_field_element.pyx b/src/sage/rings/function_field/function_field_element.pyx index bb5f5997479..21eb0ca74b7 100644 --- a/src/sage/rings/function_field/function_field_element.pyx +++ b/src/sage/rings/function_field/function_field_element.pyx @@ -560,7 +560,7 @@ cdef class FunctionFieldElement_rational(FunctionFieldElement): """ return repr(self._x) - def __bool__(self): + def __nonzero__(self): """ EXAMPLES:: diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 8b5c0f475c2..695b3fd777b 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -8976,7 +8976,7 @@ cdef class Polynomial_generic_dense(Polynomial): """ return make_generic_polynomial, (self._parent, self.__coeffs) - def __bool__(self): + def __nonzero__(self): return len(self.__coeffs) > 0 cdef int __normalize(self) except -1: diff --git a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx index afac91cad43..6517f1b6100 100644 --- a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx @@ -1604,7 +1604,7 @@ cdef class Polynomial_dense_modn_ntl_ZZ(Polynomial_dense_mod_n): return n return infinity - def __bool__(self): + def __nonzero__(self): """ TESTS::