[IPython-dev] object inspection behavior
Fernando Perez
fperez.net at gmail.com
Sat Oct 28 16:14:22 EDT 2006
On 10/28/06, Darren Dale <dd55 at cornell.edu> wrote:
> I was wondering if it is desireable (and possible) for object inspection to
> hide attributes and methods that begin with a leading underscore.
>
> For example, I have some code that reads a datafile with named columns and
> returns an object with each data column as one of the objects attributes.
> When I want to inspect the object to see what was recorded in the file, I
> don't really need to see the __whatever__ methods that get inherited
> from "object". I would also prefer not to list any methods or attributes that
> the developer has masked with an underscore to make clear they are not
> public.
>
> Is it possible to modify ipython such that tab would not list these
> methods/attributes, but perhaps something like ctrl+tab would?
>From the ipythonrc file:
# (iii) readline_omit__names: normally hitting <tab> after a '.' in a name
# will complete all attributes of an object, including all the special methods
# whose names start with single or double underscores (like __getitem__ or
# __class__).
# This variable allows you to control this completion behavior:
# readline_omit__names 1 -> completion will omit showing any names starting
# with two __, but it will still show names starting with one _.
# readline_omit__names 2 -> completion will omit all names beginning with one
# _ (which obviously means filtering out the double __ ones).
# Even when this option is set, you can still see those names by explicitly
# typing a _ after the period and hitting <tab>: 'name._<tab>' will always
# complete attribute names starting with '_'.
# This option is off by default so that new users see all attributes of any
# objects they are dealing with.
readline_omit__names 0
This should give you all the flexibility you need.
Cheers,
f
More information about the IPython-dev
mailing list