I keep being tempted by this e-ink device 

I keep being tempted by this e-ink device 

Tempting price, but no built-in illuminator and maybe a proprietary ebook format? Not sure.
And it's opened up somewhat officially for alternate firmware like CrossPoint: https://github.com/crosspoint-reader/crosspoint-reader
Ah, but I am! In one spot in Ariadne's codebase, I'm wanting to assign functions to the values in a dictionary. So there is a key in the dictionary; I want to be able to refer to it via, say parsers['body']['html']['function'] (that way I can iterate through each metadata field in a standard way and call the function to parse it from a page) but for a multi-line function I have to name it separately and then reference it in the dictionary.
@mirabilos @amin @rl_dane @joel
or
def fun():
global parsers
a = "FOOOOOO!!!"
def bar():
print(a)
parsers['body']['html']['function'] = bar
either way, bar doesn't pollute the global namespace
@kabel42 @mirabilos @rl_dane @joel
Sure, but now fun() does. And it's a much less clear way to write the code than just assigning anonymous functions as values in a dictionary definition.
A fun trick in JS:
You can only use the await keyword inside an asynchronous function. You can make the entire script asynchronous by wrapping it in this:
(async () => {
// code goes here
})()
This creates and then immediately calls an asynchronous anonymous function that's wrapped around the whole script! :D