On Sun, Apr 19, 2020 at 11:40 PM Steven D'Aprano <st...@pearwood.info> wrote:
def M(*vals): # ... magic stuff ... return dct > py> alpha = 'something' > py> M(alpha) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "<stdin>", line 5, in M > TypeError: 'NoneType' object is not subscriptable > Yep. It works in IPython and it works in a script, but I didn't try the plain Python shell. I'm using Python 3.8, but I imagine the same problem exists between IPython and Python shell in other versions. etc, and how many hours of debugging it will take to get it to work. > Some positive but finite number of hours to deal with the edge cases. For the discussion, can we just stipulate some future L() that is a better version of M()? (base) 551-bin % python auto-dict.py {'alpha': 'something'} args: () kws: {'alpha': 'something', 'beta': 'else', 'gamma': 'again'} (base) 552-bin % cat auto-dict.py from magic import M alpha = 'something' beta = 'else' gamma = 'again' print(M(alpha)) def show(*args, **kws): print('args:', args) print('kws:', kws) show(**M(alpha, beta, gamma)) > I'm also looking at that call to eval and wondering if someone smarter > than me can use that to trick me into evaluating something I don't like. > Yes... in L() is should be `ast.literal_eval()`. Maybe I'll write a better L() in the next day or two. But I really AM NOT pushing for anyone to use such a thing, just to consider the conceptual space it occupies vs. having new syntax. -- Keeping medicines from the bloodstreams of the sick; food from the bellies of the hungry; books from the hands of the uneducated; technology from the underdeveloped; and putting advocates of freedom in prisons. Intellectual property is to the 21st century what the slave trade was to the 16th.
_______________________________________________ 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/ZG2PADDC7QQMZ72HI6KCOP2EEP3PLUGI/ Code of Conduct: http://python.org/psf/codeofconduct/