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.

Reply via email to