<div>To me this is really surprising that 28 years old language has some weird methods like str.swapcase(), but none to cut string from left or right, and two of them which exist only accept string mask.</div><br><div class="gmail_quote_attribution">On март 30 2019, at 12:21 дня, Paul Moore <p.f.moore@gmail.com> wrote:</div><blockquote><div><div>On Fri, 29 Mar 2019 at 23:07, Christopher Barker <pythonchb@gmail.com> wrote:</div><blockquote><div>The proposal at hand is to add two fairly straightforward methods to string. So:</div></blockquote><br><div>Some of what you are calling digressions are actually questioning the</div><div>design choice behind that proposal. Specifically, there's no</div><div>particular justification given for making these methods rather than</div><div>standalone functions. But OK, let's stick to the points you want to</div><div>make here.</div><br><blockquote><blockquote><blockquote><div>We are balancing equities here. We have a plethora of changes, on the</div></blockquote><div>one side taken by itself each of which is an improvement, but on the</div><div>other taken as a group they greatly increase the difficulty of</div><div>learning to read Python programs fluently.</div></blockquote><br><div>Unless the methods are really poorly named, then this will make them maybe a tiny bit more readable, not less. But tiny. So “irrelevant” may be appropriate here.</div></blockquote><br><div>And how do we decide if they are poorly named, given that it's *very*</div><div>hard to get real-world usage experience for a core Python change</div><div>before it's released (essentially no-one uses pre-releases for</div><div>anything other than testing that the release doesn't break their</div><div>code).</div><br><div>Note that the proposed name (trim) is IMO "poorly named", because a</div><div>number of languages in my experience use that name for what Python</div><div>calls "strip", so there would be continual confusion (for me at least)</div><div>over which name meant which behaviour...</div><br><blockquote><blockquote><div>So we set a bar that the</div><div>change must clear, and the ability of the change to clear it depends</div><div>on the balance of equities.</div></blockquote><br><div>Exactly — small impact, low bar.</div></blockquote><br><div>If we accept your statement that it's a small impact. I contend that</div><div>the confusion that this would cause between strip and trim is not</div><div>small. It's not *huge*, but it's not small... We can agree to differ,</div><div>but if we do then don't expect me to agree to your statement that the</div><div>bar can be low, you need to persuade me to agree that the impact is</div><div>low if you want me to agree on the matter of the bar.</div><br><blockquote><blockquote><div>In this case, where it requires C support and is not possible to "from</div><div>__future__", the fact that library maintainers can't use it until they</div><div>drop support for past versions of Python weakens the argument for the</div><div>change by excluding important bodies of code from using it.</div></blockquote><br><div>But there is no need for __future__ — it’s not a breaking change. It could be back ported to any version we want. Same as a __future__ import.</div></blockquote><br><div>OTOH, it's a new feature, so it won't be acceptable for backporting.</div><div>Sorry, but those are the rules. What "we" want isn't relevant here,</div><div>unless the "we" in question is the Python core devs, and the core devs</div><div>have established the "no backports of new features" rule over many</div><div>years, and won't be likely to change it for something that you</div><div>yourself are describing as "small impact".</div><br><div>Paul</div><div>_______________________________________________</div><div>Python-ideas mailing list</div><div>Python-ideas@python.org</div><div>https://mail.python.org/mailman/listinfo/python-ideas</div><div>Code of Conduct: http://python.org/psf/codeofconduct/</div></div></blockquote><img class="mailspring-open" alt="Sent from Mailspring" width="0" height="0" style="border:0; width:0; height:0;" src="https://link.getmailspring.com/open/061FBF45-02FD-4C3E-B792-EB09C05ED98E@getmailspring.com?recipient=cHl0aG9uLWlkZWFzQHB5dGhvbi5vcmc%3D">