
I think you have a wrong understanding of what those APIs are meant for. They don't check for an object *being* of a certain (sub)type, but instead check whether they *expose* certain C APIs.
PySequence_Check() checks for presence of the tp_as_sequence->sq_item slot which is prerequisite for many other PySequence_*() APIs.
PyMapping_Check() checks for the tp_as_mapping->mp_subscript slot, which is which is prerequisite for many other PyMapping_*() APIs.
Nothing more, nothing less :-)
They do not implement ABC checks, type flag checks, subtype checks, etc.
If you want the latter, you should suggest new APIs which then cater to those use cases, in case other APIs don't already provide this logic. PyObject_IsInstance() will go a long way for many of those, BTW.
-- Marc-Andre Lemburg eGenix.com
Professional Python Services directly from the Experts (#1, Jan 24 2022)
Python Projects, Coaching and Support ... https://www.egenix.com/ Python Product Development ... https://consulting.egenix.com/
::: We implement business ideas - efficiently in both time and costs :::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 https://www.egenix.com/company/contact/ https://www.malemburg.com/