Your message dated Sun, 12 Nov 2023 19:59:46 +0100
with message-id <zvegopjcs5ods...@georges.khaznadar.fr>
and subject line Re: python3-sympy: nsimplify() fails with: KeyError: 
'extended_nonnegative'
has caused the Debian Bug report #1055815,
regarding python3-sympy: nsimplify() fails with: KeyError: 
'extended_nonnegative'
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1055815: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055815
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: python3-sympy
Version: 1.12-6
Severity: normal

Thanks for maintaining Debian's cool python3-sympy
package.

If you happen to have the time, and are so
inclined, feel free to share any thoughts you may
happen to have on whether it might be improved to
not crash when asked to nsimplify() the
following...

    (1/(1 - (0.5*Y + 1)**1.5583266249))**6.5


I can replicate the crash with 

    python3-sympy   1.12-6

    python3         3.11.4-5+b1 

by copying and pasting the following line to a
bash shell prompt....

    $ python3 -c 'import sympy ; sympy.nsimplify(sympy.sympify("(1/(1 - (0.5*Y 
+ 1)**1.5583266249))**6.5"))'


It seems to me it should not crash, but it fails
with

    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/sympy/core/assumptions.py", line 
499, in getit
        return self._assumptions[fact]
               ~~~~~~~~~~~~~~~~~^^^^^^
    KeyError: 'extended_nonnegative'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/lib/python3/dist-packages/sympy/simplify/simplify.py", line 
1446, in nsimplify
        return _real_to_rational(expr, tolerance, rational_conversion)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/simplify/simplify.py", line 
1582, in _real_to_rational
        return p.subs(reps, simultaneous=True)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/basic.py", line 1036, in 
subs
        return rv.xreplace(reps)
               ^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/basic.py", line 1230, in 
xreplace
        value, _ = self._xreplace(rule)
                   ^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/basic.py", line 1252, in 
_xreplace
        return self.func(*args), True
               ^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/cache.py", line 72, in 
wrapper
        retval = cfunc(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 371, in 
__new__
        obj = b._eval_power(e)
              ^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 471, in 
_eval_power
        elif re(b).is_extended_nonnegative and (abs(e) < 2) == True:
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/assumptions.py", line 
503, in getit
        return _ask(fact, self)
               ^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/assumptions.py", line 
559, in _ask
        fact_i_value = handler_i(obj)
                       ^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/add.py", line 863, in 
_eval_is_extended_negative
        v = _monotonic_sign(a)
            ^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/exprtools.py", line 76, 
in _monotonic_sign
        if not self.is_Add and self.as_numer_denom()[1].is_number:
                               ^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/mul.py", line 1234, in 
as_numer_denom
        numers, denoms = list(zip(*[f.as_numer_denom() for f in self.args]))
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/mul.py", line 1234, in 
<listcomp>
        numers, denoms = list(zip(*[f.as_numer_denom() for f in self.args]))
                                    ^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 1584, in 
as_numer_denom
        return self.func(n, exp), self.func(d, exp)
                                  ^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/cache.py", line 72, in 
wrapper
        retval = cfunc(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 371, in 
__new__
        obj = b._eval_power(e)
              ^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/numbers.py", line 2351, 
in _eval_power
        x, xexact = integer_nthroot(abs(self.p), expt.q)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 83, in 
integer_nthroot
        x, t = gmpy.iroot(y, n)
               ^^^^^^^^^^^^^^^^
    ValueError: n must be > 0


I think it's possible to do better.

Version 16.0.5-4 of another computer algebra
package called "mathomatic" does not crash on the
same example:

    $ mathomatic -e "(1/(1 - (0.5*Y + 1)**1.5583266249))**6.5" simplify

    1-> (1/(1 - (0.5*Y + 1)**1.5583266249))**6.5

                     1               13
    #1: ----------------------------^--
               Y                     2
        (1 - ((- + 1)^1.5583266249))
               2

    1-> simplify

                        1
    #1: ---------------------------------
                Y                     13
        ((1 - ((- + 1)^1.5583266249))^--)
                2                     2


Thank you and kind regards,
Kingsley

-- System Information:
Debian Release: trixie/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable')
merged-usr: no
Architecture: i386 (i686)

Kernel: Linux 6.5.0-1-686-pae (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages python3-sympy depends on:
ii  python3         3.11.4-5+b1
ii  python3-mpmath  1.2.1-1

Versions of packages python3-sympy recommends:
ii  isympy-common  1.7.1-2
ii  python3-numpy  1:1.24.2-1
ii  python3-pil    9.4.0-1.1+b1

Versions of packages python3-sympy suggests:
pn  dvipng               <none>
pn  python-sympy-doc     <none>
pn  texlive-fonts-extra  <none>

-- no debconf information

--- End Message ---
--- Begin Message ---
Dear Kingsley,

I am the maintainer of sympy's Debian package, and I strongly suggest
you to address such subtle error detections to upstream developers.

This can be done at https://github.com/sympy/sympy/issues/new, provided
you create an account at github.com, or better, you can join sympy
developers' mailing list. More information can be found about it at
https://www.sympy.org/en/development.html

Best regards,                   Georges.

Kingsley G. Morse Jr. a écrit :
> Package: python3-sympy
> Version: 1.12-6
> Severity: normal
> 
> Thanks for maintaining Debian's cool python3-sympy
> package.
> 
> If you happen to have the time, and are so
> inclined, feel free to share any thoughts you may
> happen to have on whether it might be improved to
> not crash when asked to nsimplify() the
> following...
> 
>     (1/(1 - (0.5*Y + 1)**1.5583266249))**6.5
> 
> 
> I can replicate the crash with 
> 
>     python3-sympy   1.12-6
> 
>     python3         3.11.4-5+b1 
> 
> by copying and pasting the following line to a
> bash shell prompt....
> 
>     $ python3 -c 'import sympy ; sympy.nsimplify(sympy.sympify("(1/(1 - 
> (0.5*Y + 1)**1.5583266249))**6.5"))'
> 
> 
> It seems to me it should not crash, but it fails
> with
> 
>     Traceback (most recent call last):
>       File "/usr/lib/python3/dist-packages/sympy/core/assumptions.py", line 
> 499, in getit
>         return self._assumptions[fact]
>                ~~~~~~~~~~~~~~~~~^^^^^^
>     KeyError: 'extended_nonnegative'
> 
>     During handling of the above exception, another exception occurred:
> 
>     Traceback (most recent call last):
>       File "<string>", line 1, in <module>
>       File "/usr/lib/python3/dist-packages/sympy/simplify/simplify.py", line 
> 1446, in nsimplify
>         return _real_to_rational(expr, tolerance, rational_conversion)
>                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/simplify/simplify.py", line 
> 1582, in _real_to_rational
>         return p.subs(reps, simultaneous=True)
>                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/basic.py", line 1036, 
> in subs
>         return rv.xreplace(reps)
>                ^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/basic.py", line 1230, 
> in xreplace
>         value, _ = self._xreplace(rule)
>                    ^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/basic.py", line 1252, 
> in _xreplace
>         return self.func(*args), True
>                ^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/cache.py", line 72, in 
> wrapper
>         retval = cfunc(*args, **kwargs)
>                  ^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 371, in 
> __new__
>         obj = b._eval_power(e)
>               ^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 471, in 
> _eval_power
>         elif re(b).is_extended_nonnegative and (abs(e) < 2) == True:
>              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/assumptions.py", line 
> 503, in getit
>         return _ask(fact, self)
>                ^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/assumptions.py", line 
> 559, in _ask
>         fact_i_value = handler_i(obj)
>                        ^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/add.py", line 863, in 
> _eval_is_extended_negative
>         v = _monotonic_sign(a)
>             ^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/exprtools.py", line 76, 
> in _monotonic_sign
>         if not self.is_Add and self.as_numer_denom()[1].is_number:
>                                ^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/mul.py", line 1234, in 
> as_numer_denom
>         numers, denoms = list(zip(*[f.as_numer_denom() for f in self.args]))
>                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/mul.py", line 1234, in 
> <listcomp>
>         numers, denoms = list(zip(*[f.as_numer_denom() for f in self.args]))
>                                     ^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 1584, 
> in as_numer_denom
>         return self.func(n, exp), self.func(d, exp)
>                                   ^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/cache.py", line 72, in 
> wrapper
>         retval = cfunc(*args, **kwargs)
>                  ^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 371, in 
> __new__
>         obj = b._eval_power(e)
>               ^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/numbers.py", line 2351, 
> in _eval_power
>         x, xexact = integer_nthroot(abs(self.p), expt.q)
>                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib/python3/dist-packages/sympy/core/power.py", line 83, in 
> integer_nthroot
>         x, t = gmpy.iroot(y, n)
>                ^^^^^^^^^^^^^^^^
>     ValueError: n must be > 0
> 
> 
> I think it's possible to do better.
> 
> Version 16.0.5-4 of another computer algebra
> package called "mathomatic" does not crash on the
> same example:
> 
>     $ mathomatic -e "(1/(1 - (0.5*Y + 1)**1.5583266249))**6.5" simplify
> 
>     1-> (1/(1 - (0.5*Y + 1)**1.5583266249))**6.5
> 
>                      1               13
>     #1: ----------------------------^--
>                Y                     2
>         (1 - ((- + 1)^1.5583266249))
>                2
> 
>     1-> simplify
> 
>                         1
>     #1: ---------------------------------
>                 Y                     13
>         ((1 - ((- + 1)^1.5583266249))^--)
>                 2                     2
> 
> 
> Thank you and kind regards,
> Kingsley
> 
> -- System Information:
> Debian Release: trixie/sid
>   APT prefers unstable-debug
>   APT policy: (500, 'unstable-debug'), (500, 'unstable')
> merged-usr: no
> Architecture: i386 (i686)
> 
> Kernel: Linux 6.5.0-1-686-pae (SMP w/2 CPU threads; PREEMPT)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not 
> set
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> LSM: AppArmor: enabled
> 
> Versions of packages python3-sympy depends on:
> ii  python3         3.11.4-5+b1
> ii  python3-mpmath  1.2.1-1
> 
> Versions of packages python3-sympy recommends:
> ii  isympy-common  1.7.1-2
> ii  python3-numpy  1:1.24.2-1
> ii  python3-pil    9.4.0-1.1+b1
> 
> Versions of packages python3-sympy suggests:
> pn  dvipng               <none>
> pn  python-sympy-doc     <none>
> pn  texlive-fonts-extra  <none>
> 
> -- no debconf information
> 

-- 
Georges KHAZNADAR et Jocelyne FOURNIER
22 rue des mouettes, 59240 Dunkerque France.
Téléphone +33 (0)3 28 29 17 70

Attachment: signature.asc
Description: PGP signature


--- End Message ---

Reply via email to