On Fri, Apr 17, 2020 at 10:29 AM Alex Hall <alex.moj...@gmail.com> wrote:

> Perhaps an easier next step would be to get better data about people's
> opinions with a simple poll? Is there a standard way to vote on things in
> this list?
>

No, but if you want to create a poll I would strongly advise that you
create a poll at https://discuss.python.org/c/ideas/6 and post the link
here (Discourse has built-in poll support). Otherwise you will get a swarm
of votes intertwined with comments and keeping track of it all will be
difficult.

-Brett


>
> I say we do a simple approval vote. Everyone ticks all the syntaxes that
> they think would be acceptable to include in the language. It's not very
> precise but it's easy and may inform what to do next.
>
> Here is a script to generate a bunch of options:
>
> ```
> for template in [
>     'foo(bar, baz="thing", %s)',
>     '{"baz": "thing", %s}',
> ]:
>     for affix in ["=", ":", "::"]:
>         for rest in [
>             f'spam{affix}, stuff{affix}',
>             f'{affix}spam, {affix}stuff',
>         ]:
>             print(template % rest)
>
> for template in [
>     'foo(bar, baz="thing", %s, spam, stuff)',
>     '{"baz": "thing", %s, spam, stuff}',
> ]:
>     for separator in ["*", "**", ":", "::", "="]:
>         print(template % separator)
>
> # These options are currently valid syntax that are guaranteed to fail at
> runtime
> print("""\
> foo(bar, baz="thing", **(spam, stuff))
> foo(bar, baz="thing", **{spam, stuff})
> {{"baz": "thing", spam, stuff}}
> """)
> ```
>
> The output:
>
> ```
> foo(bar, baz="thing", spam=, stuff=)
> foo(bar, baz="thing", =spam, =stuff)
> foo(bar, baz="thing", spam:, stuff:)
> foo(bar, baz="thing", :spam, :stuff)
> foo(bar, baz="thing", spam::, stuff::)
> foo(bar, baz="thing", ::spam, ::stuff)
> {"baz": "thing", spam=, stuff=}
> {"baz": "thing", =spam, =stuff}
> {"baz": "thing", spam:, stuff:}
> {"baz": "thing", :spam, :stuff}
> {"baz": "thing", spam::, stuff::}
> {"baz": "thing", ::spam, ::stuff}
> foo(bar, baz="thing", *, spam, stuff)
> foo(bar, baz="thing", **, spam, stuff)
> foo(bar, baz="thing", :, spam, stuff)
> foo(bar, baz="thing", ::, spam, stuff)
> foo(bar, baz="thing", =, spam, stuff)
> {"baz": "thing", *, spam, stuff}
> {"baz": "thing", **, spam, stuff}
> {"baz": "thing", :, spam, stuff}
> {"baz": "thing", ::, spam, stuff}
> {"baz": "thing", =, spam, stuff}
> foo(bar, baz="thing", **(spam, stuff))
> foo(bar, baz="thing", **{spam, stuff})
> {{"baz": "thing", spam, stuff}}
> ```
>
> Are there any other options to consider? If people think this list looks
> complete I can create an online poll with them. I'm open to suggestions
> about preferred software/websites.
>
> On Fri, Apr 17, 2020 at 6:41 PM Eric V. Smith <e...@trueblade.com> wrote:
>
>> On 4/17/2020 12:28 PM, Chris Angelico wrote:
>> > On Sat, Apr 18, 2020 at 1:54 AM David Mertz <me...@gnosis.cx> wrote:
>> >> Hmmm... I disagree with Chris.
>> >>
>> >> I'm definitely -1 on a magic dangling 'foo=' after variable names. And
>> something less than -1 on the even more magic "Lisp symbol that isn't a
>> symbol" ':foo'.
>> >>
>> >> Those are just ugly and mysterious.
>> >>
>> >> However, I don't HATE the "mode switch" use of '*' or '**' in function
>> calls. I've certainly written plenty of code where I use the same variable
>> name in the calling scope as I bind in the call. Moreover, function
>> *definitions* have an an analogous mode switch with an isolated '*'.
>> >>
>> > It sounds to me like there's a lot of weak support or weak opposition,
>> > with some of it spread between the proposal itself and the individual
>> > spellings.
>> >
>> > Rodrigo, it may be time to start thinking about writing a PEP. If the
>> > Steering Council approves, I would be willing to be a (non-core-dev)
>> > sponsor; alternatively, there may be others who'd be willing to
>> > sponsor it. A PEP will gather all the different syntax options and the
>> > arguments for/against each, and will mean we're not going round and
>> > round on the same discussion points all the times.
>>
>> I've been around for a while, and I can't imagine that any of these
>> proposals would be accepted (but I've been accused of having a bad
>> imagination). I'm saying that not to dissuade anyone from writing a PEP:
>> far from it. I think it would be useful to have this on paper and
>> accepted or rejected, either way. I'm saying this to set expectations: a
>> PEP is a ton of work, and it can be disheartening to put in so much work
>> for something that is rejected.
>>
>> So, I'd be willing to sponsor such a PEP, but I'd be arguing that it get
>> rejected.
>>
>> And  I say this as someone who has maybe 20 hours of work left on a PEP
>> of my own that I think has less than a 50% chance of success. I already
>> probably have 10 to 15 hours invested in it already.
>>
>> Eric
>> _______________________________________________
>> Python-ideas mailing list -- python-ideas@python.org
>> To unsubscribe send an email to python-ideas-le...@python.org
>> https://mail.python.org/mailman3/lists/python-ideas.python.org/
>> Message archived at
>> https://mail.python.org/archives/list/python-ideas@python.org/message/K46TLULIGNUSYBH3GEK7HFBQSOGRDOHE/
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/TVPJ5C7ZFGUSFHWHE6E5D7H2LMG5OYLF/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/GON7CZMRRR6JGRI3SM2K7CEP4EXAXJI4/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to