-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
evolution-proposedtheme: the C languageissues related to the way we use the C languageissues related to the way we use the C language
Description
The C type system is weak, compared to Java or Rust, but we should use it where possible.
The function PyTuple_Size()
should be infallible; all tuples have a size.
Yet, it can fail if passed a non-tuple, which can only happen because it is weakly typed.
Like PyTuple_Size(PyObject *)
, many API functions take PyObject *
when they should take more specific types.
Here are a few examples:
PyTuple_Size()
PyList_Append()
PyDict_GetItem()
The error handling of these functions is awful. PyTuple_Size()
and PyList_Append()
raise a SystemError
, not a TypeError
if passed the wrong type. PyDict_GetItem()
just acts as if the item is not in the container, not raising at all.
encukou and synodrivererlend-aasland
Metadata
Metadata
Assignees
Labels
evolution-proposedtheme: the C languageissues related to the way we use the C languageissues related to the way we use the C language