From 551f2cc0e04bdb4ed22edfc1541a705c4c6d6715 Mon Sep 17 00:00:00 2001 From: Dave Witte Morris Date: Tue, 6 Jul 2021 19:38:16 -0600 Subject: [PATCH 1/2] trac 32148 length of propositional formula --- src/sage/logic/boolformula.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/sage/logic/boolformula.py b/src/sage/logic/boolformula.py index 5bc168d8404..8af231ca111 100644 --- a/src/sage/logic/boolformula.py +++ b/src/sage/logic/boolformula.py @@ -1508,9 +1508,9 @@ def get_next_op(self, str): i += 1 return str[i] - def __len__(self): + def length(self): r""" - Return the length of a Boolean formula. + Return the length of ``self``. OUTPUT: @@ -1521,37 +1521,40 @@ def __len__(self): sage: import sage.logic.propcalc as propcalc sage: s = propcalc.formula("a") - sage: len(s) + sage: s.length() 1 sage: s = propcalc.formula("(a)") - sage: len(s) + sage: s.length() 1 sage: s = propcalc.formula("~a") - sage: len(s) + sage: s.length() 2 sage: s = propcalc.formula("a -> b") - sage: len(s) + sage: s.length() 3 sage: s = propcalc.formula("alpha -> beta") - sage: len(s) + sage: s.length() 3 sage: s = propcalc.formula("a -> a") - sage: len(s) + sage: s.length() 3 sage: s = propcalc.formula("~(a -> b)") - sage: len(s) + sage: s.length() 4 sage: s = propcalc.formula("((a&b)|(a&c))->~d") - sage: len(s) + sage: s.length() 10 TESTS:: sage: s = propcalc.formula("(((alpha) -> ((beta))))") - sage: len(s) + sage: s.length() 3 """ return len(flatten(self.full_tree())) + from sage.misc.superseded import deprecated_function_alias + __len__ = deprecated_function_alias(32148, length) + # allow is_consequence to be called as a function (not only as a method of BooleanFormula) is_consequence = BooleanFormula.is_consequence From 59cc054aed61866b2fbdfd72b7d5c9d1405956d3 Mon Sep 17 00:00:00 2001 From: Dave Witte Morris Date: Thu, 8 Jul 2021 22:49:24 -0600 Subject: [PATCH 2/2] do not deprecate __len__ --- src/sage/logic/boolformula.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sage/logic/boolformula.py b/src/sage/logic/boolformula.py index 8af231ca111..bfaa37739dc 100644 --- a/src/sage/logic/boolformula.py +++ b/src/sage/logic/boolformula.py @@ -1553,8 +1553,9 @@ def length(self): """ return len(flatten(self.full_tree())) - from sage.misc.superseded import deprecated_function_alias - __len__ = deprecated_function_alias(32148, length) + # For backward compatibility, we allow `self.length()` to be called as + # `len(self)`, but this may be deprecated in the future (see :trac:`32148`): + __len__ = length # allow is_consequence to be called as a function (not only as a method of BooleanFormula) is_consequence = BooleanFormula.is_consequence