On 1 June 2018 at 16:36, Chris Angelico <ros...@gmail.com> wrote: > On Sat, Jun 2, 2018 at 12:57 AM, Paul Moore <p.f.mo...@gmail.com> wrote:
>> Why does this need to be a string method? Why can't it be a standalone >> function? Maybe you should publish an implementation on PyPI, collect >> some data on how popular it is, and then if it's widely used, propose >> it for inclusion in the stdlib at that point? By making it a string >> method, you're also restricting its use to users of recent versions of >> Python, whereas a PyPI implementation would work for everyone. > > The biggest reason to make it a string method is to give the > possibility of optimization. Python cannot optimize int(1.2) down to > the constant 1 because you might have shadowed int; but a method on a > string literal cannot be shadowed, and could potentially be > constant-folded. Include that in the initial post to preempt this > recommendation. So the optimisation should probably be an explicit part of the proposal. Without the optimisation, factors like "won't be usable in code that wants to support older Python", "why not just make it a standalone function", etc. will probably result in the proposal not getting accepted. On 1 June 2018 at 16:20, Dan Strohl <d.str...@f5.com> wrote: > > Good point, so, basically, there already is a function for this built in > textwrap.dedent() and textwrap.indent(), I would think (hope) that that would > answer that question. OK, so unless the argument is "provide a string method, that's guaranteed to be constant folded"[1] I suspect that it's pretty unlikely that a proposal to add a string method that simply replicated the textwrap functions would get very far. But regardless, there's no point in me trying to second guess what might come up on python-ideas, you should just post there and see what reception you get. Paul [1] There's two possibilities here, of course. First, provide an implementation for CPython that includes the constant folding, or second, make constant folding a language guarantee that other implementations also have to implement. I doubt the second option is going to be practical, though. -- https://mail.python.org/mailman/listinfo/python-list