bpo-37540: vectorcall: keyword names must be strings (GH-14682)

The fact that keyword names are strings is now part of the vectorcall and `METH_FASTCALL` protocols. The biggest concrete change is that `_PyStack_UnpackDict` now checks that and raises `TypeError` if not.

CC @markshannon @vstinner 


https://bugs.python.org/issue37540
This commit is contained in:
Jeroen Demeyer 2019-08-16 12:41:27 +02:00 committed by Miss Islington (bot)
parent f3cb68f2e4
commit 0567786d26
10 changed files with 43 additions and 46 deletions

View file

@ -237,7 +237,7 @@ What about willful misconduct?
>>> f(**{1:2})
Traceback (most recent call last):
...
TypeError: f() keywords must be strings
TypeError: keywords must be strings
>>> h(**{'e': 2})
Traceback (most recent call last):