weed out the not-so-pretty ExtensionClass.__init__ trick
Exploring Zope code finally revealed what we needed in the code, to allow removing the "trick". It's a "trick" because we have no real reason to call again the __init__ method of a metaclass: it's nicer to understand what we need to do and to do it explicitely. In this case, the __get__ slot was missing after the __bases__ assignement (bases are recomputed and as a result __get__ is null'ed), and there is a method exposed in Zope's ExtensionClass to do exactly this and only this. The InitializeClass calls are included because ExtensionClass.__init__ calls __class_init__, which sets correctly roles and security on the class. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@39752 20353a03-c40f-0410-a6d1-a30d3c3de9de
Showing
Please register or sign in to comment