On Fri, Apr 17, 2020 at 9:57 AM <
oliveira.rodrigo.m@gmail.com> wrote:
The mode-switch proposal though would not impede one to mix shorthand and longhand forms. This should be valid syntax:
```python
return render_template("index.html", *,
twitter, username=user["display_name"],
channel, channelid, error,
setups=database.list_setups(channelid),
sched_tz, schedule, sched_tweet,
checklist=database.get_checklist(channelid),
timers=database.list_timers(channelid),
tweets,
)
```
I definitely hate the above version. Intermixing auto-named values with bound values is super-confusing and a huge bug magnet.
How is it confusing? How is it a bug magnet?
I do think that example looks like a mess, but if each parameter is on its own line, I think it looks fine:
```
render_template(
"index.html",
*,
twitter,
username=user["display_name"],
channel,
channelid,
error,
setups=database.list_setups(channelid),
sched_tz,
schedule,
sched_tweet,
checklist=database.get_checklist(channelid),
timers=database.list_timers(channelid),
tweets,
)
```
However, the following does not look bad ONLY if the mode-switch is strictly to bare-names-only after the switch:
render_template("index.html",
username=user["display_name"],
setups=database.list_setups(channelid),
checklist=database.get_checklist(channelid),
timers=database.list_timers(channelid),
**,
twitter,
channel,
channelid,
error,
sched_tz,
schedule,
sched_tweet,
tweets,
**more_kwargs)
Putting the named parameters strictly first gives a hint to the fact that the rest are "special named parameters" (with auto-naming).
Why does that need emphasising? Are you thinking like Ricky and Steven D'Aprano that people might sometimes think that they're looking at positional arguments and get confused?