You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Smarter rl complete: hide private and special names #69199
Here is improved patch. The completion of empty prefix now returns the list of private names if there are no public names. The completion of empty prefix or prefix '_' now returns the list of dunder names if there are no non-dunder names. For example try "None.".
In addition attr_matches() no longer returns duplicated names.
Activity
serhiy-storchaka commentedon Sep 5, 2015
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 '_'.
(The completion of int._ returns nothing because int has no private members).
pitrou commentedon Sep 6, 2015
I like the idea, though some people may object to breaking their worflow (tm). Nosy'ing David just in case ;-)
bitdancer commentedon Sep 7, 2015
Sounds good to me, especially the __ part.
I don't actually use completions, though :)
serhiy-storchaka commentedon Sep 8, 2015
Here is improved patch. The completion of empty prefix now returns the list of private names if there are no public names. The completion of empty prefix or prefix '_' now returns the list of dunder names if there are no non-dunder names. For example try "None.".
In addition attr_matches() no longer returns duplicated names.
serhiy-storchaka commentedon Sep 19, 2015
If no one has objections, I'll commit the patch.
python-dev commentedon Sep 27, 2015
New changeset 4dbb315fe667 by Serhiy Storchaka in branch 'default':
Issue bpo-25011: rlcomplete now omits private and special attribute names unless
https://hg.python.org/cpython/rev/4dbb315fe667