Created originally on Bitbucket by zyv (Yury Zaytsev)
Was already merged in Bitbucket before import, marked as merged by the import user
PyErr_BadArgument() return value is usually ignored because it's always zero in the current CPython implementation, but some tools like Cython, for instance, actually do depend on the correct signature being provided for the extensions to compile.