Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

%pdoc np.ma.compress shows docstring twice #89

Closed
ipython opened this Issue · 4 comments

3 participants

IPython: interactive computing in Python Thomas Kluyver Fernando Perez
IPython: interactive computing in Python

Original Launchpad bug 521612: https://bugs.launchpad.net/ipython/+bug/521612
Reported by: fdo.perez (Fernando Perez).

No idea why, but querying np.ma.compress with ? or %pdoc double-prints the docstring, with the second copy indented.

See this numpy thread for some context:

http://mail.scipy.org/pipermail/numpy-discussion/2010-February/048634.html

That object has a runtime-generated docstring, but I checked and its doc is OK (no duplication there). So the bug is definitely ours.

Thomas Kluyver
Owner

The object implements a .getdoc() method. IPython.core.oinspect.getdoc() reckons that, if an object has a .getdoc() method as well as a normal docstring, the result of calling it should be treated as extra information, and concatenated together.

Are there actually any cases where .getdoc() adds info to the normal docstring, or can we simplify it to only check .getdoc() if it doesn't get a normal docstring. Otherwise, one possible way round this is to use textwrap.dedent, then compare the two, and only show both if they differ. Or perhaps, if they're both over a certain length, only show one.

Fernando Perez fperez was assigned
Fernando Perez
Owner

@takluyver, agreed: we should probably change our behavior and only call getdoc if we didn't get a docstring. Should be an easy fix.

Thomas Kluyver
Owner

I wonder if we should possibly prefer .getdoc() over a normal docstring, on the basis that it might offer more customised information? I don't know how many or what objects implement getdoc.

Fernando Perez
Owner

That's a good point. I think it's fairly rare, so anyone implementing it must have had a good reason to do it, and we might as well honor it. Since using both is definitely a bug, I agree we could go with letting getdoc take precedence, unless what it returns is not a string, case in which we fall back to __doc__.

Fernando Perez fperez closed this in 8a4e8d9
Brian E. Granger ellisonbg referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
Fernando Perez fperez referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
Damián Avila damianavila referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
matthew von rocketstein mattvonrocketstein referenced this issue from a commit in mattvonrocketstein/ipython
Thomas Kluyver takluyver If object has a getdoc() method, override its normal docstring.
Closes gh-89
42a0be8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.