[Python-bugs-list] [ python-Bugs-697591 ] string.atoi function causing TypeError

SourceForge.net noreply@sourceforge.net
Wed, 05 Mar 2003 10:49:18 -0800


Bugs item #697591, was opened at 2003-03-04 14:51
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=697591&group_id=5470

Category: Python Library
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Jim Murff (jmurff)
Assigned to: Raymond Hettinger (rhettinger)
Summary: string.atoi function causing TypeError

Initial Comment:
Discoved this when using Pmw with 2.3a1 and a2 found atoi 
doesn't work properly. So, I wrote a small test:
------------------
import string
if __name__ == __main__:
   num = atoi(test, 10)
------------------

Always get and exception from  it and using Pmw that is the 
same:
<...>
python2.3/string.py, line 220
   return _int(s, base)
TypeError: int() can't convert non-string with explicit base

Seems to always pass a string like it asks for.
I can also reproduce by using the MenuBar.py and 
MainMenuBar.py in Pmw/Pmw1.1/demos.

I fixed it by looking at python2.3/stringold.py. I took the guts of 
atoi from there.

So it was:
---------------
def atoi(s, base=10) :
     return _int(s, base)

It is now:
--------------
def atoi(*args) :

    try:
       s = arg[0]
    except IndexError:
       raise TypeError('function requires a least one argument: %d 
given' % len(args))

    return apply(_int, args)

Hope this helps. Not sure if it is best way to fix it but solved all our 
errors using atoi for now. 
Let me know if you need more info. - jmurff@pacbell.net

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

>Comment By: Jim Murff (jmurff)
Date: 2003-03-05 10:49

Message:
Logged In: YES 
user_id=454042

I tried all kinds of values for the test variable...
'str' "str" sys.argv[0]. They all complained  about invalid literal.
Pmw code showed other error. These used 'str' or a return from a method 
as i recall. Yes i meant "string.atoi" -- sorry :)

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

Comment By: Raymond Hettinger (rhettinger)
Date: 2003-03-04 18:18

Message:
Logged In: YES 
user_id=80475

I'll take a look at this one.

Can you provide the value and type of the "test" variable 
when the exception was raised?

Also, please confirm that the test code meant to 
say:  "num = string.atoi(test, 10) ".

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

Comment By: John Speno (corvus)
Date: 2003-03-04 17:50

Message:
Logged In: YES 
user_id=2138

I replaced the string.atoi() calls with calls to just int() in Pmw when I encountered this. I'm glad you filed this bug so I don't have to!

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

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=697591&group_id=5470