[Patches] [ python-Patches-479551 ] fix complex() with 2 string args

noreply@sourceforge.net noreply@sourceforge.net
Thu, 08 Nov 2001 07:47:22 -0800


Patches item #479551, was opened at 2001-11-08 05:21
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=305470&aid=479551&group_id=5470

Category: Core (C code)
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Michael Hudson (mwh)
Assigned to: Fred L. Drake, Jr. (fdrake)
Summary: fix complex() with 2 string args

Initial Comment:
reported on c.l.py

>>> complex ("1", "1")
(1+0j)

>From my reading of the docs, this should fail.  Patch
does this, adds test case.

Assigned to Fred, largely at random.

----------------------------------------------------------------------

>Comment By: Michael Hudson (mwh)
Date: 2001-11-08 07:47

Message:
Logged In: YES 
user_id=6656

Agree with your changes to complexobject.c, though they're
not v. different from mine.

Your tests reproduce what's in test_b1.py so are probably
redunant.

I don't think you can read the current docs with your head
screwed on and get the wrong idea, but am willing to defer
to Fred on that one...

What does XEmacs 21.4's diff-mode do that GNU Emacs 21.1's
doesn't?

----------------------------------------------------------------------

Comment By: Skip Montanaro (montanaro)
Date: 2001-11-08 07:31

Message:
Logged In: YES 
user_id=44345

I have a slightly different patch.  If the first arg is not
a string, the second arg can't be a string.  The current
implementation raises a TypeError with a not entirely
comprehensible message, so I added a special case to catch
that.  Also, my test cases are in test_complex.py instead of
test_b1.py and I have some doc changes.  (God, I just
*loooove* the new diff-mode in XEmacs 21.4.  Ya gotta try it
-- if you're not a vi-head, that is!)


----------------------------------------------------------------------

Comment By: Grant Griffin (dspguru)
Date: 2001-11-08 07:13

Message:
Logged In: YES 
user_id=70844

I agree with the discussion on c.l.py as to the 
interpretation of the docs, so it sounds like Michael's 
patch is a good thing.  However, along with the patch, I'd 
like to see the docs clarified a little.  Specifically, it 
would be nice if the docs stated that the imaginary part 
(if any) can be specified as part of the string using the 
standard "j" suffix:

   ActivePython 2.1.1, build 212 (ActiveState)
   >>> complex('1+1j')
   (1+1j)

This feature appears to be the reason that a separate 
imaginary argument was disallowed in the string case, so 
spelling that aspect out will help people understand (and 
therefore remember) the rules on this.

=g2

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=305470&aid=479551&group_id=5470