Hi,
I just stumbled upon the following issue (I am running Debian):
$ python
Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>[2, None].count(None)
1
>>from gmpy import mpz [mpz(2), None].count(None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: coercion to gmpy.mpz type failed
>>>
Is this a bug in gmpy?
If yes is there any way to issue the bug at http://code.google.com/p/gmpy/
without creating a gmail account?
Thanks
Martin 7 1396
On Oct 13, 2:43*pm, <mma...@gmx.netwrote:
Hi,
I just stumbled upon the following issue (I am running Debian):
$ python
Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.>>>[2, None].count(None)
1
>from gmpy import mpz [mpz(2), None].count(None)
Traceback (most recent call last):
* File "<stdin>", line 1, in <module>
TypeError: coercion to gmpy.mpz type failed
Is this a bug in gmpy?
Does the underlying GMP code support Nulls?
>
If yes is there any way to issue the bug athttp://code.google.com/p/gmpy/
without creating a gmail account?
Thanks
Martin
Mensanator wrote:
On Oct 13, 2:43 pm, <mma...@gmx.netwrote:
>Hi,
I just stumbled upon the following issue (I am running Debian):
$ python Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.>>[2, None].count(None) 1
>>>>from gmpy import mpz [mpz(2), None].count(None)
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: coercion to gmpy.mpz type failed Is this a bug in gmpy?
Does the underlying GMP code support Nulls?
I don't think it has to. Probably, it just should implement __ne__ to return
False if it cannot coerce. Of course, the codebase is relatively old, so it may
still be using __cmp__ and __coerce__. That would make things more difficult.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
On Oct 13, 12:43*pm, <mma...@gmx.netwrote:
Hi,
I just stumbled upon the following issue (I am running Debian):
$ python
Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.>>>[2, None].count(None)
1
>from gmpy import mpz [mpz(2), None].count(None)
Traceback (most recent call last):
* File "<stdin>", line 1, in <module>
TypeError: coercion to gmpy.mpz type failed
Is this a bug in gmpy?
If yes is there any way to issue the bug athttp://code.google.com/p/gmpy/
without creating a gmail account?
I've added it for you.
>
Thanks
Martin
Thanks for reporting the issue.
casevh
On Oct 13, 5:16*pm, Robert Kern <robert.k...@gmail.comwrote:
Mensanator wrote:
On Oct 13, 2:43 pm, <mma...@gmx.netwrote:
Hi,
I just stumbled upon the following issue (I am running Debian):
$ python
Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.>>[2, None].count(None)
1 from gmpy import mpz [mpz(2), None].count(None)
Traceback (most recent call last):
* File "<stdin>", line 1, in <module>
TypeError: coercion to gmpy.mpz type failed
Is this a bug in gmpy?
Does the underlying GMP code support Nulls?
I don't think it has to. Probably, it just should implement __ne__ to return
False if it cannot coerce. Of course, the codebase is relatively old, so it may
still be using __cmp__ and __coerce__. That would make things more difficult.
Ok, assuming you CAN fix it, the next question is SHOULD you
fix it? Afetr all, mpz(None) will still raise an exception and
wouldn't the behaviour then be inconsistent?
When I complained that sum([]) should return None instead of 0,
the general consensus was that the 0 choice is what most people
expect most of the time and although there are cases where None
is the logical choice, the 0 case is NOT a bug, "this behaviour
is by design" and I'll just have to live with it and not use
sum() if I expect the list may be empty.
I would expect that you could make the same argument with respect
to trying to compare an mpz to None.
>
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
* that is made terrible by our own mad attempt to interpret it as though it had
* an underlying truth."
* *-- Umberto Eco- Hide quoted text -
- Show quoted text -
Mensanator wrote:
On Oct 13, 5:16 pm, Robert Kern <robert.k...@gmail.comwrote:
>Mensanator wrote:
>>On Oct 13, 2:43 pm, <mma...@gmx.netwrote: Hi, I just stumbled upon the following issue (I am running Debian): $ python Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.>>[2, None].count(None) 1 >>from gmpy import mpz >>[mpz(2), None].count(None) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: coercion to gmpy.mpz type failed Is this a bug in gmpy? Does the underlying GMP code support Nulls?
I don't think it has to. Probably, it just should implement __ne__ to return False if it cannot coerce. Of course, the codebase is relatively old, so it may still be using __cmp__ and __coerce__. That would make things more difficult.
Ok, assuming you CAN fix it, the next question is SHOULD you
fix it? Afetr all, mpz(None) will still raise an exception and
wouldn't the behaviour then be inconsistent?
I don't think so. There is no particular reason that an implementation of __eq__
or __ne__ *must* coerce its arguments and raise an exception if it can't. There
is certainly a case to be made for __lt__ and the rest, because they imply an
actual numerical comparison, but __eq__ and __ne__ are used for more than
numerical comparison in Python. One of the great things about moving away from
__cmp__ to the multiple comparison methods is that the two concepts were no
longer entangled.
When I complained that sum([]) should return None instead of 0,
the general consensus was that the 0 choice is what most people
expect most of the time and although there are cases where None
is the logical choice, the 0 case is NOT a bug, "this behaviour
is by design" and I'll just have to live with it and not use
sum() if I expect the list may be empty.
I would expect that you could make the same argument with respect
to trying to compare an mpz to None.
That it was by design? Possible, but I have no evidence of such. Do you? If that
is not what you meant, then I have no idea what argument you think applies to
both cases.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
On Oct 14, 12:14*pm, Robert Kern <robert.k...@gmail.comwrote:
Mensanator wrote:
On Oct 13, 5:16 pm, Robert Kern <robert.k...@gmail.comwrote:
Mensanator wrote: On Oct 13, 2:43 pm, <mma...@gmx.netwrote: Hi, I just stumbled upon the following issue (I am running Debian): $ python Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.>>[2, None].count(None) 1 >from gmpy import mpz >[mpz(2), None].count(None) Traceback (most recent call last): * File "<stdin>", line 1, in <module> TypeError: coercion to gmpy.mpz type failed Is this a bug in gmpy? Does the underlying GMP code support Nulls?
I don't think it has to. Probably, it just should implement __ne__ to return
False if it cannot coerce. Of course, the codebase is relatively old, so it may
still be using __cmp__ and __coerce__. That would make things more difficult.
Ok, assuming you CAN fix it, the next question is SHOULD you
fix it? Afetr all, mpz(None) will still raise an exception and
wouldn't the behaviour then be inconsistent?
I don't think so. There is no particular reason that an implementation of__eq__
or __ne__ *must* coerce its arguments and raise an exception if it can't.There
is certainly a case to be made for __lt__ and the rest, because they imply an
actual numerical comparison, but __eq__ and __ne__ are used for more than
numerical comparison in Python. One of the great things about moving awayfrom
__cmp__ to the multiple comparison methods is that the two concepts were no
longer entangled.
Ok.
>
When I complained that sum([]) should return None instead of 0,
the general consensus was that the 0 choice is what most people
expect most of the time and although there are cases where None
is the logical choice, the 0 case is NOT a bug, "this behaviour
is by design" and I'll just have to live with it and not use
sum() if I expect the list may be empty.
I would expect that you could make the same argument with respect
to trying to compare an mpz to None.
That it was by design? Possible, but I have no evidence of such. Do you?
No, I was just saying IF it was intentional, then it's not a bug.
Although one could argue whether the intent was appropriate. As you
say
above, maybe the intent needs to be re-thought.
If that
is not what you meant, then I have no idea what argument you think applies to
both cases.
Ok, forget that. It just seems to me that since .count(None)
and mpz(None) both produce exceptions, _I_ don't see a problem.
And there _IS_ a workaround:
>>from types import * a = [mpz(2),None,666,None,None,'harry',33.33] nonecount = 0 for i in a:
if isinstance(i,NoneType):
nonecount += 1
>>print nonecount
3
>
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
* that is made terrible by our own mad attempt to interpret it as though it had
* an underlying truth."
* *-- Umberto Eco- Hide quoted text -
- Show quoted text -
Mensanator wrote:
On Oct 14, 12:14 pm, Robert Kern <robert.k...@gmail.comwrote:
>Mensanator wrote:
>>On Oct 13, 5:16 pm, Robert Kern <robert.k...@gmail.comwrote: Mensanator wrote: On Oct 13, 2:43 pm, <mma...@gmx.netwrote: >Hi, >I just stumbled upon the following issue (I am running Debian): >$ python >Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13) >[GCC 4.3.2] on linux2 >Type "help", "copyright", "credits" or "license" for more information.>>[2, None].count(None) >1 >>>>from gmpy import mpz >>>>[mpz(2), None].count(None) >Traceback (most recent call last): > File "<stdin>", line 1, in <module> >TypeError: coercion to gmpy.mpz type failed >Is this a bug in gmpy? Does the underlying GMP code support Nulls? I don't think it has to. Probably, it just should implement __ne__ to return False if it cannot coerce. Of course, the codebase is relatively old, so it may still be using __cmp__ and __coerce__. That would make things more difficult. Ok, assuming you CAN fix it, the next question is SHOULD you fix it? Afetr all, mpz(None) will still raise an exception and wouldn't the behaviour then be inconsistent?
I don't think so. There is no particular reason that an implementation of __eq__ or __ne__ *must* coerce its arguments and raise an exception if it can't. There is certainly a case to be made for __lt__ and the rest, because they imply an actual numerical comparison, but __eq__ and __ne__ are used for more than numerical comparison in Python. One of the great things about moving away from __cmp__ to the multiple comparison methods is that the two concepts were no longer entangled.
Ok.
>>When I complained that sum([]) should return None instead of 0, the general consensus was that the 0 choice is what most people expect most of the time and although there are cases where None is the logical choice, the 0 case is NOT a bug, "this behaviour is by design" and I'll just have to live with it and not use sum() if I expect the list may be empty. I would expect that you could make the same argument with respect to trying to compare an mpz to None.
That it was by design? Possible, but I have no evidence of such. Do you?
No, I was just saying IF it was intentional, then it's not a bug.
Although one could argue whether the intent was appropriate. As you
say
above, maybe the intent needs to be re-thought.
And even then, it's not so much of a bug as a missing feature.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Jean-Pierre Andreaux |
last post by:
Gmpy module was a wrapper of the GNU MP library. It seems that no
evolution is done on this module since 2001. Indeed, Gmpy is not
supported in Python 2.2 nor 2.3.
My question is the following:...
|
by: Mensanator |
last post by:
In the program that follows, I get the following warning message:
collatz_.py:37: RuntimeWarning: tp_compare didn't return -1, 0 or 1
while b>1:
In this case, b is a gmpy.mpz number. The...
|
by: Alex Martelli |
last post by:
Thanks to David Bolen, who did the build, I have been able to make
available a win32 packaging for gmpy 1.0 on python 2.4 alpha 2 (should
work on any later Python 2.4 as well, but I have no way to...
|
by: mensanator |
last post by:
Since the following discussion took place (unresolved),
...
|
by: Alex Martelli |
last post by:
I have fixed almost all of the outstanding bugreports and feature
request for gmpy: divm doesn't leak memory any more, truediv and
floordiv are implemented for all types, etc -- in the current CVS...
|
by: Alex Martelli |
last post by:
As things stand now (gmpy 1.01), an instance d of decimal.Decimal cannot
transparently become an instance of any of gmpy.{mpz, mpq, mpf}, nor
vice versa (the conversions are all possible, but a bit...
|
by: mensanator |
last post by:
## Holy Mother of Pearl!
##
## >>> for i in range(10):
## for j in range(10):
## print '%4d' % (gmpy.mpz(i)*gmpy.mpz(j)),
## print
##
##
## ...
|
by: zakad |
last post by:
python 2.5.2
ubuntu 8.04 LTS
(1) I find that python/gmpy is about 3 times slower than c++/gmp.
Is this the general experience, or am I doing something wrong?
(2) I am unable to understand the...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
| |