New submission from Ethan Furman: Due to the odd nature of Enum classes and instances, the normal methods used by inspect.getmembers and inspect.classify_class_attrs are insufficient.
By special casing Enum inside those two functions the correct information can be returned. Here is an example of the problem: ======================================================================================= --> class Test(enum.Enum): ... this = 'that' ... these = 'those' ... whose = 'mine' ... name = 'Python' ... value = 'awesome' ... def what(self): ... return "%s is %s!" % (self.name, self.value) ... --> help(Test) Help on Test in module __main__ object: class Test(enum.Enum) | Method resolution order: | Test | enum.Enum | builtins.object | | Data and other attributes defined here: | | these = <Test.these: 'those'> | | this = <Test.this: 'that'> | | whose = <Test.whose: 'mine'> | | ---------------------------------------------------------------------- | Data descriptors inherited from enum.Enum: | | name | The name of the Enum member. | | value | The value of the Enum member. | | ---------------------------------------------------------------------- | Data descriptors inherited from enum.EnumMeta: | | __members__ | Returns a mapping of member name->value. | | This mapping lists all enum members, including aliases. Note that this | is a read-only view of the internal mapping. (END) ======================================================================================= As can be seen, 'name' and 'value' are not showing up as enum members. ---------- messages: 197844 nosy: barry, eli.bendersky, ethan.furman, ncoghlan, pitrou priority: normal severity: normal status: open title: Make inspect.getmembers and inspect.classify_class_attrs Enum aware type: behavior versions: Python 3.4 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue19030> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com