Skip to content

Commit a0654df

Browse files
Release Managervbraun
Release Manager
authored andcommitted
Trac #21475: Make __nonzero__ an alias of __bool__ (in some python files)
This is part of #16076. URL: https://trac.sagemath.org/21475 Reported by: aapitzsch Ticket author(s): André Apitzsch Reviewer(s): Travis Scrimshaw
2 parents 8771bdd + 3144d1e commit a0654df

File tree

8 files changed

+42
-21
lines changed

8 files changed

+42
-21
lines changed

src/sage/algebras/jordan_algebra.py

+12-8
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ def _latex_(self):
405405
from sage.misc.latex import latex
406406
return latex(self._x)
407407

408-
def __nonzero__(self):
408+
def __bool__(self):
409409
"""
410410
Return if ``self`` is non-zero.
411411
@@ -414,10 +414,12 @@ def __nonzero__(self):
414414
sage: F.<x,y,z> = FreeAlgebra(QQ)
415415
sage: J = JordanAlgebra(F)
416416
sage: a,b,c = map(J, F.gens())
417-
sage: (a + 2*b - c).__nonzero__()
417+
sage: bool(a + 2*b - c)
418418
True
419419
"""
420-
return self._x.__nonzero__()
420+
return bool(self._x)
421+
422+
__nonzero__ = __bool__
421423

422424
def __eq__(self, other):
423425
"""
@@ -805,22 +807,24 @@ def _latex_(self):
805807
from sage.misc.latex import latex
806808
return "{} + {}".format(latex(self._s), latex(self._v))
807809

808-
def __nonzero__(self):
810+
def __bool__(self):
809811
"""
810812
Return if ``self`` is non-zero.
811813
812814
TESTS::
813815
814816
sage: m = matrix([[0,1],[1,1]])
815817
sage: J.<a,b,c> = JordanAlgebra(m)
816-
sage: 1.__nonzero__()
818+
sage: bool(1)
817819
True
818-
sage: b.__nonzero__()
820+
sage: bool(b)
819821
True
820-
sage: (a + 2*b - c).__nonzero__()
822+
sage: bool(a + 2*b - c)
821823
True
822824
"""
823-
return self._s.__nonzero__() or self._v.__nonzero__()
825+
return bool(self._s) or bool(self._v)
826+
827+
__nonzero__ = __bool__
824828

825829
def __eq__(self, other):
826830
"""

src/sage/categories/crystals.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -2059,7 +2059,7 @@ def _call_(self, x):
20592059
cur = cur.e_string(s)
20602060
return cur
20612061

2062-
def __nonzero__(self):
2062+
def __bool__(self):
20632063
"""
20642064
Return if ``self`` is a non-zero morphism.
20652065
@@ -2076,6 +2076,8 @@ def __nonzero__(self):
20762076
"""
20772077
return any(self._on_gens(mg) is not None for mg in self._gens)
20782078

2079+
__nonzero__ = __bool__
2080+
20792081
# TODO: Does this belong in the element_class of the Crystals() category?
20802082
def to_module_generator(self, x):
20812083
"""

src/sage/categories/examples/commutative_additive_monoids.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -110,20 +110,20 @@ def zero(self):
110110
return self(())
111111

112112
class Element(FreeCommutativeAdditiveSemigroup.Element):
113-
def __nonzero__(self):
113+
def __bool__(self):
114114
"""
115115
Check if ``self`` is not the zero of the monoid
116116
117117
EXAMPLES::
118118
119119
sage: M = CommutativeAdditiveMonoids().example()
120-
sage: M.zero().__nonzero__()
121-
False
122120
sage: bool(M.zero())
123121
False
124122
sage: [bool(m) for m in M.additive_semigroup_generators()]
125123
[True, True, True, True]
126124
"""
127125
return any(x for x in self.value.values())
128126

127+
__nonzero__ = __bool__
128+
129129
Example = FreeCommutativeAdditiveMonoid

src/sage/categories/homset.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@ def __hash__(self):
698698
"""
699699
return hash((self._domain, self._codomain, self.base()))
700700

701-
def __nonzero__(self):
701+
def __bool__(self):
702702
"""
703703
TESTS::
704704
@@ -707,6 +707,8 @@ def __nonzero__(self):
707707
"""
708708
return True
709709

710+
__nonzero__ = __bool__
711+
710712
def _generic_convert_map(self, S):
711713
"""
712714
Return a generic map from a given homset to ``self``.

src/sage/combinat/crystals/kirillov_reshetikhin.py

+1
Original file line numberDiff line numberDiff line change
@@ -4115,5 +4115,6 @@ def is_isomorphism(self):
41154115
is_surjective = is_isomorphism
41164116
is_embedding = is_isomorphism
41174117
is_strict = is_isomorphism
4118+
__bool__ = is_isomorphism
41184119
__nonzero__ = is_isomorphism
41194120

src/sage/combinat/finite_state_machine.py

+14-6
Original file line numberDiff line numberDiff line change
@@ -1975,7 +1975,7 @@ def fully_equal(left, right, compare_color=True):
19751975
left.initial_probability == right.initial_probability)
19761976

19771977

1978-
def __nonzero__(self):
1978+
def __bool__(self):
19791979
"""
19801980
Returns True.
19811981

@@ -1990,12 +1990,15 @@ def __nonzero__(self):
19901990
TESTS::
19911991

19921992
sage: from sage.combinat.finite_state_machine import FSMState
1993-
sage: FSMState('A').__nonzero__()
1993+
sage: bool(FSMState('A'))
19941994
True
19951995
"""
19961996
return True # A state cannot be zero (see __init__)
19971997

19981998

1999+
__nonzero__ = __bool__
2000+
2001+
19992002
def _epsilon_successors_(self, fsm=None):
20002003
"""
20012004
Returns the dictionary with states reachable from ``self``
@@ -2502,7 +2505,7 @@ def __ne__(left, right):
25022505
return (not (left == right))
25032506

25042507

2505-
def __nonzero__(self):
2508+
def __bool__(self):
25062509
"""
25072510
Returns True.
25082511

@@ -2517,11 +2520,13 @@ def __nonzero__(self):
25172520
EXAMPLES::
25182521

25192522
sage: from sage.combinat.finite_state_machine import FSMTransition
2520-
sage: FSMTransition('A', 'B', 0).__nonzero__()
2523+
sage: bool(FSMTransition('A', 'B', 0))
25212524
True
25222525
"""
25232526
return True # A transition cannot be zero (see __init__)
25242527

2528+
__nonzero__ = __bool__
2529+
25252530

25262531
#*****************************************************************************
25272532

@@ -3918,7 +3923,7 @@ def __call__(self, *args, **kwargs):
39183923
#*************************************************************************
39193924

39203925

3921-
def __nonzero__(self):
3926+
def __bool__(self):
39223927
"""
39233928
Returns True if the finite state machine consists of at least
39243929
one state.
@@ -3933,12 +3938,15 @@ def __nonzero__(self):
39333938

39343939
TESTS::
39353940

3936-
sage: FiniteStateMachine().__nonzero__()
3941+
sage: bool(FiniteStateMachine())
39373942
False
39383943
"""
39393944
return len(self._states_) > 0
39403945

39413946

3947+
__nonzero__ = __bool__
3948+
3949+
39423950
def __eq__(left, right):
39433951
"""
39443952
Returns ``True`` if the two finite state machines are equal,

src/sage/groups/abelian_gps/abelian_group.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ def is_trivial(self):
676676
"""
677677
return self.elementary_divisors() == ()
678678

679-
def __nonzero__(self):
679+
def __bool__(self):
680680
"""
681681
Returns True if this group is nontrivial.
682682
@@ -692,6 +692,8 @@ def __nonzero__(self):
692692
"""
693693
return not self.is_trivial()
694694

695+
__nonzero__ = __bool__
696+
695697
@cached_method
696698
def dual_group(self, names="X", base_ring=None):
697699
"""

src/sage/misc/unknown.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def _repr_(self):
5454
"""
5555
return "Unknown"
5656

57-
def __nonzero__(self):
57+
def __bool__(self):
5858
"""
5959
When evaluated in a boolean context ``Unknown()`` is evalutated into
6060
``False``.
@@ -68,6 +68,8 @@ def __nonzero__(self):
6868
"""
6969
return False
7070

71+
__nonzero__ = __bool__
72+
7173
def __and__(self, other):
7274
"""
7375
The ``and`` logical connector.

0 commit comments

Comments
 (0)