[ python-Bugs-672578 ] pydoc does not cope well with lambda
SourceForge.net
noreply at sourceforge.net
Tue Feb 14 18:14:10 CET 2006
Bugs item #672578, was opened at 2003-01-22 17:29
Message generated for change (Comment added) made by wamcvey
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=672578&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Demos and Tools
Group: Python 2.2.1
Status: Closed
Resolution: Fixed
Priority: 5
Submitted By: Jim Meyer (purp)
Assigned to: Nobody/Anonymous (nobody)
Summary: pydoc does not cope well with lambda
Initial Comment:
pydoc doesn't deal well with lambda expressions. Here's
some sample code:
================================================================
#!/usr/bin/env python2
"""a bogus program
Demonstrate that pydoc doesn't handle lambdas well
"""
#
--------------------------------------------------------------------
# A comment heading
#
--------------------------------------------------------------------
def foo (optional = 1) :
''' A bogus function '''
return optional
bar = lambda opt : foo(opt)
================================================================
...and here's what pydoc says:
================================================================
> pydoc /tmp/foo.py
Python Library Documentation: module foo
NAME
foo - a bogus program
FILE
/tmp/foo.py
DESCRIPTION
Demonstrate that pydoc doesn't handle lambdas well
FUNCTIONS
lambdaopt
#
--------------------------------------------------------------------
# A comment heading
#
--------------------------------------------------------------------
foo(optional=1)
A bogus function
DATA
__file__ = '/tmp/foo.pyc'
__name__ = 'foo'
================================================================
I'm looking for the cause now and hope to contribute a
patch shortly.
--j
----------------------------------------------------------------------
Comment By: William McVey (wamcvey)
Date: 2006-02-14 17:14
Message:
Logged In: YES
user_id=25956
This problem still appears to exist under python 2.4.2
drop the following into PydocLambdaTest.py and run 'pydoc
PydocLambdaTest':
#!/usr/bin/env python
"""Simple test cases for doc strings attached to lambda
generated functions
and methods
"""
def test_function(x, y):
"""This is a test function doc string"""
pass
test_lambda = lambda x, y: True
test_lambda2 = lambda x, y: True
test_lambda2.__doc__ = "This is a docstring on a lambda
function"
class TestClass:
def test_method(self, x, y):
"""Just a docstring on a method"""
pass
sum = lambda self, x, y: x+y
mult = lambda self, x, y: x*y
mult.__doc__ = "Multiplies the two arguments "
if __name__ == '__main__':
obj = TestClass()
print "sum of 5 and 7:", obj.sum(5, 7)
print "mult of 5 and 7:", obj.mult(5, 7)
----------------------------------------------------------------------
Comment By: Raymond Hettinger (rhettinger)
Date: 2003-01-23 01:55
Message:
Logged In: YES
user_id=80475
The underlying cause is that the inspect module was not
trained to handle lambdas or single line function defintions
like:
def oneliner(x): return x**2
The problem was fixed in Py2.3 and backported for
Py2.2.3.
Marking as fixed and closing.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=672578&group_id=5470
More information about the Python-bugs-list
mailing list