The difficulty of making custom data types in Python is certainly an issue I've run into myself (to the point of starting to write similar, but no where near as complete decorators for classes). There's only so many @property.setter decorators you can write before you go "eff-it, I'll use a bare dict instread".
( via LWN https://lwn.net/Articles/697146/ )
( via LWN https://lwn.net/Articles/697146/ )