[New-bugs-announce] [issue25011] Smarter rl complete: hide private and special names

Serhiy Storchaka report at bugs.python.org
Sat Sep 5 23:29:27 CEST 2015


New submission from Serhiy Storchaka:

When press tabulation just after the dot, the output is too long. It contains all attributes, most of them are dunder names.

>>> int.
int.__abs__(            int.__doc__             int.__int__(            int.__pos__(            int.__round__(          int.__truediv__(
int.__add__(            int.__eq__(             int.__invert__(         int.__pow__(            int.__rpow__(           int.__trunc__(
int.__and__(            int.__flags__           int.__itemsize__        int.__prepare__(        int.__rrshift__(        int.__weakrefoffset__
int.__base__(           int.__float__(          int.__le__(             int.__qualname__        int.__rshift__(         int.__xor__(
int.__bases__           int.__floor__(          int.__lshift__(         int.__radd__(           int.__rsub__(           int.bit_length(
int.__basicsize__       int.__floordiv__(       int.__lt__(             int.__rand__(           int.__rtruediv__(       int.conjugate(
int.__bool__(           int.__format__(         int.__mod__(            int.__rdivmod__(        int.__rxor__(           int.denominator
int.__call__(           int.__ge__(             int.__module__          int.__reduce__(         int.__setattr__(        int.from_bytes(
int.__ceil__(           int.__getattribute__(   int.__mro__             int.__reduce_ex__(      int.__sizeof__(         int.imag
int.__class__(          int.__getnewargs__(     int.__mul__(            int.__repr__(           int.__str__(            int.mro(
int.__delattr__(        int.__gt__(             int.__name__            int.__rfloordiv__(      int.__sub__(            int.numerator
int.__dict__            int.__hash__(           int.__ne__(             int.__rlshift__(        int.__subclasscheck__(  int.real
int.__dictoffset__      int.__index__(          int.__neg__(            int.__rmod__(           int.__subclasses__(     int.to_bytes(
int.__dir__(            int.__init__(           int.__new__(            int.__rmul__(           int.__subclasshook__(   
int.__divmod__(         int.__instancecheck__(  int.__or__(             int.__ror__(            int.__text_signature__  

Proposed patch hides underscored names and show dunder names only if a prefix starts with '__', and private members only if a prefix starts with '_'.

>>> int.
int.bit_length(  int.conjugate(   int.denominator  int.from_bytes(  int.imag         int.mro(         int.numerator    int.real         int.to_bytes(
>>> int.__
int.__abs__(            int.__divmod__(         int.__init__(           int.__neg__(            int.__rlshift__(        int.__sub__(
int.__add__(            int.__doc__             int.__instancecheck__(  int.__new__(            int.__rmod__(           int.__subclasscheck__(
int.__and__(            int.__eq__(             int.__int__(            int.__or__(             int.__rmul__(           int.__subclasses__(
int.__base__(           int.__flags__           int.__invert__(         int.__pos__(            int.__ror__(            int.__subclasshook__(
int.__bases__           int.__float__(          int.__itemsize__        int.__pow__(            int.__round__(          int.__text_signature__
int.__basicsize__       int.__floor__(          int.__le__(             int.__prepare__(        int.__rpow__(           int.__truediv__(
int.__bool__(           int.__floordiv__(       int.__lshift__(         int.__qualname__        int.__rrshift__(        int.__trunc__(
int.__call__(           int.__format__(         int.__lt__(             int.__radd__(           int.__rshift__(         int.__weakrefoffset__
int.__ceil__(           int.__ge__(             int.__mod__(            int.__rand__(           int.__rsub__(           int.__xor__(
int.__class__(          int.__getattribute__(   int.__module__          int.__rdivmod__(        int.__rtruediv__(       
int.__delattr__(        int.__getnewargs__(     int.__mro__             int.__reduce__(         int.__rxor__(           
int.__dict__            int.__gt__(             int.__mul__(            int.__reduce_ex__(      int.__setattr__(        
int.__dictoffset__      int.__hash__(           int.__name__            int.__repr__(           int.__sizeof__(         
int.__dir__(            int.__index__(          int.__ne__(             int.__rfloordiv__(      int.__str__(            

(The completion of int._ returns nothing because int has no private members).

----------
components: Library (Lib)
files: rlcomplete_filter_private.patch
keywords: patch
messages: 249928
nosy: pitrou, serhiy.storchaka, twouters
priority: normal
severity: normal
stage: patch review
status: open
title: Smarter rl complete: hide private and special names
type: enhancement
versions: Python 3.6
Added file: http://bugs.python.org/file40377/rlcomplete_filter_private.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue25011>
_______________________________________


More information about the New-bugs-announce mailing list