The requirement that an enumerator name be all caps is not documented. While this is the style shown in the documentation of the standard enum library, it is not enforced. Removing the .isupper() checks resolves this issue. You might, however, want to substitute checks to see if an attribute is a callable method for the .isupper() calls.