homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Smarter rl complete: hide private and special names
Type: enhancement Stage: resolved
Components: Library (Lib) Versions: Python 3.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: serhiy.storchaka Nosy List: pitrou, python-dev, r.david.murray, serhiy.storchaka, twouters
Priority: normal Keywords: patch

Created on 2015年09月05日 21:29 by serhiy.storchaka, last changed 2022年04月11日 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
rlcomplete_filter_private.patch serhiy.storchaka, 2015年09月05日 21:29 review
rlcomplete_filter_private_2.patch serhiy.storchaka, 2015年09月08日 03:07 review
Messages (6)
msg249928 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015年09月05日 21:29
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).
msg250025 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2015年09月06日 22:07
I like the idea, though some people may object to breaking their worflow (tm). Nosy'ing David just in case ;-)
msg250134 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2015年09月07日 22:27
Sounds good to me, especially the __ part.
I don't actually use completions, though :)
msg250147 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015年09月08日 03:07
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.
msg251064 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015年09月19日 08:10
If no one has objections, I'll commit the patch.
msg251699 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015年09月27日 10:44
New changeset 4dbb315fe667 by Serhiy Storchaka in branch 'default':
Issue #25011: rlcomplete now omits private and special attribute names unless
https://hg.python.org/cpython/rev/4dbb315fe667 
History
Date User Action Args
2022年04月11日 14:58:20adminsetgithub: 69199
2015年09月27日 16:04:05berker.peksagsetstage: patch review -> resolved
2015年09月27日 10:48:14serhiy.storchakasetstatus: open -> closed
resolution: fixed
2015年09月27日 10:44:55python-devsetnosy: + python-dev
messages: + msg251699
2015年09月19日 08:10:00serhiy.storchakasetassignee: serhiy.storchaka
messages: + msg251064
2015年09月08日 03:07:43serhiy.storchakasetfiles: + rlcomplete_filter_private_2.patch

messages: + msg250147
2015年09月07日 22:27:55r.david.murraysetmessages: + msg250134
2015年09月06日 22:07:28pitrousetnosy: + r.david.murray
messages: + msg250025
2015年09月05日 21:29:27serhiy.storchakacreate

AltStyle によって変換されたページ (->オリジナル) /