[issue36410] Proposal to make strip/lstrip/rstrip more explicit

2019-03-23 Thread Alex Grigoryev


New submission from Alex Grigoryev :

These methods have confusing implicit behavior. I propose to make it explicit, 
either strip the exact sequence or chars or leave the string as is.

In [1]: 'mailto:ma...@gmail.com'.lstrip('mailto')
Out[1]: ':ma...@gmail.com'

In [2]: 'mailto:ma...@gmail.com'.lstrip('mailto:')
Out[2]: 'r...@gmail.com'

In [3]: 'mailto:ma...@gmail.com'.lstrip('ailto:')
Out[3]: 'mailto:ma...@gmail.com'

--
messages: 338695
nosy: Alex Grigoryev
priority: normal
severity: normal
status: open
title: Proposal to make strip/lstrip/rstrip more explicit
type: behavior
versions: Python 2.7, Python 3.5, Python 3.6, Python 3.7, Python 3.8, Python 3.9

___
Python tracker 
<https://bugs.python.org/issue36410>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36410] Proposal to make strip/lstrip/rstrip more explicit

2019-03-23 Thread Alex Grigoryev

Alex Grigoryev  added the comment:

https://docs.python.org/2/library/string.html#string.lstrip 
(https://link.getmailspring.com/link/4c83e422-2f29-440a-8ce3-0ae8b13f5...@getmailspring.com/0?redirect=https%3A%2F%2Fdocs.python.org%2F2%2Flibrary%2Fstring.html%23string.lstrip&recipient=cmVwb3J0QGJ1Z3MucHl0aG9uLm9yZw%3D%3D)
Here should be clarified better. Yes I think API for explicit behavior should 
be discussed, because the other way is this
In [1]: "ma...@gmail.com".split("mailto:";)[-1]
Out[1]: 'ma...@gmail.com'
In [2]: "maria@gmail.commailto:".split("mailto:";)[-1]
Out[2]: ''
On март 23 2019, at 10:39 вечера, Karthikeyan Singaravelan 
 wrote:
>
> Karthikeyan Singaravelan  added the comment:
> https://docs.python.org/3.8/library/stdtypes.html?highlight=lstrip#str.lstrip
> > Return a copy of the string with leading characters removed. The chars 
> > argument is a string specifying the set of characters to be removed. If 
> > omitted or None, the chars argument defaults to removing whitespace. The 
> > chars argument is not a prefix; rather, all combinations of its values are 
> > stripped:
> The last sentence talks about the report. In the given examples it strips all 
> the given characters in chars from left until it finds a character that is 
> not found as part of the given chars argument.
> In [2]: 'mailto:ma...@gmail.com'.lstrip('mailto:') # Stops at 'r' that 
> doesn't need to be stripped
> Out[2]: 'r...@gmail.com'
>
> In [3]: 'mailto:ma...@gmail.com'.lstrip('ailto:') # 'm' is the first 
> character and is not found in chars 'ailto:'
> Out[3]: 'mailto:ma...@gmail.com'
>
> Changing this would break a lot of old code and adding an API for two 
> different behaviors would require a larger discussion. Perhaps did you find 
> any part of docs that you would like to improve to clarify this better?
> --
> nosy: +xtreak
> versions: -Python 3.5, Python 3.6, Python 3.9
>
> ___
> Python tracker 
> <https://bugs.python.org/issue36410>
> ___
>

--

___
Python tracker 
<https://bugs.python.org/issue36410>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com