Fix some decoding of subsubtypes in general and std::Object in particular (#938)
I ran into a few things here: - The object.pyx code to handle decoding to subclasses only looks at `__subclasses__`, and so misses grandchildren types. I clearly remember thinking about this and testing the grandchild case, but apparently I missed something there. - Descendants of std::Object in particular get immediately screwy, because user-facing types don't inherit from std::Object directly, but instead their `__shapes__` do. - The new "`tname__` in `__shapes__`" mechanism (#926) was putting wrong stuff in the map in some cases. My approach is to explicitly indicate which classes should be considered the canonical decoding classes with a `__gel_is_canonical__ = True` field on the class. And for now, I'm populating it explicitly, though we can probably write a bunch of nasty logic to figure it out too.
M
Michael J. Sullivan committed
8a4d5aa0b62858a1bf1bee8a4a21553e798e319e
Parent: 06d8a21
Committed by GitHub <noreply@github.com>
on 9/30/2025, 1:46:16 AM