> When the char* type is used, the function has usually the suffix
> String. I prefer the PyIdentifier API because it avoids to create a
> temporary Python Unicode object.
This is a convenience API, not a performance "optimization".
> It's the first type that I see a function getting an attribute which
> also checks for its type. I don't know if the check should be done
> in PyState_GetModuleAttr() or in the _csv module.
The aim is to help writing extension modules, which is why the type
check is done inside the helper function.