Problem with Help when using numarray
Robert Kern
rkern at ucsd.edu
Fri Sep 16 13:15:23 EDT 2005
Colin J. Williams wrote:
> Python advertises some basic service:
>
> C:\Python24>python
> Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>>
>
> With numarray, help gives unhelpful responses:
>
> import numarray.numarraycore as _n
> c= _n.array((1, 2))
> print 'rank Value:', c.rank
> print 'c.rank Help:', help(c.rank)
>
> Results:
> rank Value: 1
> c.rank Help:Help on int object:
>
> class int(object)
> | int(x[, base]) -> integer
> |
> | Convert a string or number to an integer, if possible. A floating
> point
> | argument will be truncated towards zero (this does not include a
> ................. etc etc.
c.rank is an integer, not a method. It doesn't have a docstring. It
can't have a docstring.
> Another example:
>
> >>> help(c.copy)
> <bound method NumArray.copy of array([1, 2])>
> >>> help(c.copy)
> Traceback (most recent call last):
> File "<interactive input>", line 1, in ?
> File "site.py", line 328, in __call__
> return pydoc.help(*args, **kwds)
> File "C:\Python24\lib\pydoc.py", line 1647, in __call__
> self.help(request)
> File "C:\Python24\lib\pydoc.py", line 1691, in help
> else: doc(request, 'Help on %s:')
> File "C:\Python24\lib\pydoc.py", line 1475, in doc
> pager(title % desc + '\n\n' + text.document(object, name))
> File "C:\Python24\lib\pydoc.py", line 297, in document
> if inspect.isroutine(object): return self.docroutine(*args)
> File "C:\Python24\lib\pydoc.py", line 1226, in docroutine
> if object.im_self:
> File "C:\Python24\Lib\site-packages\numarray\generic.py", line 537,
> in __nonzero__
> raise RuntimeError("An array doesn't make sense as a truth value.
> Use any(a) or all(a).")
> RuntimeError: An array doesn't make sense as a truth value. Use any(a)
> or all(a).
> >>>
c.copy.im_self is c . pydoc is trying to use it as a truth value (I'm
not sure why, you'll have to take it up with pydoc, not numarray), but
numarray has made a decision not to implement __nonzero__.
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the Python-list
mailing list