While Python 3 has enumerated types, Python 2 does not, and the standard package to provide id, Flufl.enum, is not yet part of our code base. Is there any strong objection to including Flufl.enum? http://pythonhosted.org/flufl.enum/ It makes for some very elegant code, especially for enumerated integer types. For an example See ScopeType in https://review.openstack.org/#/c/55908/4/keystone/contrib/revoke/core.py Line 62. the getter/setter in RevokeEvent do not need to do any conditional logic if passed either an integer or a ScopeType.