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/