[issue10809] complex() comments wrongly say it supports NaN and inf

New submission from Andrew Dalke dalke@dalkescientific.com:
complex("nan") raises "ValueError: complex() arg is a malformed string" while complex(float("nan")) returns (nan+0j). This was reported in http://bugs.python.org/issue2121 with the conclusion "wont fix".
complex("inf") has the same behaviors.
The implementation in complexobject.c says
/* a valid complex string usually takes one of the three forms:
<float> - real part only <float>j - imaginary part only <float><signed-float>j - real and imaginary parts
where <float> represents any numeric string that's accepted by the float constructor (including 'nan', 'inf', 'infinity', etc.), and <signed-float> is any string of the form <float> whose first character is '+' or '-'.
This comment is wrong and it distracted me for a while as I tried to figure out why complex("nan") wasn't working. It should be fixed, with the word "including" replaced by "excluding".
I don't have a real need for complex("nan") support - this was of intellectual interest only. Also of intellectual interest, PyPy 1.4 does accept complex("nan") but converts complex("nan+nanj") to (nannanj), so it suffers from the strange corner cases which Raymond points out when advocating for "wont fix."
Because
---------- assignee: docs@python components: Documentation messages: 125104 nosy: dalke, docs@python priority: normal severity: normal status: open title: complex() comments wrongly say it supports NaN and inf versions: Python 2.7
_______________________________________ Python tracker report@bugs.python.org http://bugs.python.org/issue10809 _______________________________________

Andrew Dalke dalke@dalkescientific.com added the comment:
Well that's ... interesting. While I compiled 2.7 and was looking at the 2.7 code my tests were against 2.6.
Python 2.7 (trunk:74969:87651M, Jan 2 2011, 21:58:12) [GCC 4.2.1 (Apple Inc. build 5664)] on darwin Type "help", "copyright", "credits" or "license" for more information.
complex("nan-nanj")
(nan+nanj)
This means that the comments are correct and the error was in my understanding, as influenced by issue2121.
I therefore closed this.
---------- resolution: -> out of date status: open -> closed
_______________________________________ Python tracker report@bugs.python.org http://bugs.python.org/issue10809 _______________________________________

Changes by Mark Dickinson dickinsm@gmail.com:
---------- nosy: +mark.dickinson
_______________________________________ Python tracker report@bugs.python.org http://bugs.python.org/issue10809 _______________________________________
participants (2)
-
Andrew Dalke
-
Mark Dickinson