Sorry, I sent the wrong patch. Please consider the next email instead. Øyvind
ti., 23.02.2010 kl. 20.23 +0100, skrev Øyvind Jensen: > An exception could be raised as a false positive. We should only > demand consistency between two resolutors if they have both reached a > conclusion. Before this patch, an exception would be raised in the event of > an > inconclusive resolutor following a conclusive. > > Added a test for the issue > --- > sympy/assumptions/ask.py | 7 ++++++- > sympy/assumptions/tests/test_query.py | 9 +++++++++ > 2 files changed, 15 insertions(+), 1 deletions(-) > > diff --git a/sympy/assumptions/ask.py b/sympy/assumptions/ask.py > index f575d7c..3814278 100644 > --- a/sympy/assumptions/ask.py > +++ b/sympy/assumptions/ask.py > @@ -75,7 +75,12 @@ def ask(expr, key, assumptions=True): > if hasattr(handler, subclass.__name__): > res = getattr(handler, subclass.__name__)(expr, assumptions) > if _res is None: _res = res > - elif _res != res: raise ValueError, 'incompatible resolutors' > + elif res is None: > + # since first resolutor was conclusive, we keep that > value > + res = _res > + else: > + # only check consistency if both resolutors have > concluded > + if _res != res: raise ValueError, 'incompatible > resolutors' > break > if res is not None: > return res > diff --git a/sympy/assumptions/tests/test_query.py > b/sympy/assumptions/tests/test_query.py > index 0078dc6..e5c8907 100644 > --- a/sympy/assumptions/tests/test_query.py > +++ b/sympy/assumptions/tests/test_query.py > @@ -926,6 +926,15 @@ def Number(expr, assumptions): > return True > register_handler('prime', Prime2AskHandler) > raises(ValueError, 'ask(4, Q.prime)') > + remove_handler('prime', Prime2AskHandler) > + > + class InconclusiveHandler(AskHandler): > + @staticmethod > + def Number(expr, assumptions): > + return None > + register_handler('prime', InconclusiveHandler) > + ask(3, Q.prime) > + > > def test_key_extensibility(): > """test that you can add keys to the ask system at runtime""" -- You received this message because you are subscribed to the Google Groups "sympy-patches" group. To post to this group, send email to sympy-patc...@googlegroups.com. To unsubscribe from this group, send email to sympy-patches+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy-patches?hl=en.