bpo-38140: Make dict and weakref offsets opaque for C heap types by eduardo-elizondo · Pull Request #16076 · python/cpython
This makes tp_dictoffset and tp_weaklistoffset completely opaque for C heap allocated types created through PyType_FromSpec.
The type system already provides a way to pass in readonly primitive types. This uses that mechanism to pass in the offset values through the two keywords: __dictoffset__ and __weaklistoffset__. This then extends the type system to sniff for these values to set the offsets into the type.
To provide uniformity, the passed in member types are required to have a T_PYSSIZET as well as being READONLY