<div dir="ltr"><div>>>> from flufl.enum import IntEnum</div><div>>>> class A(IntEnum):</div><div>...   a = 3</div><div>...</div><div>>>> A.a</div><div><EnumValue: A.a [value=3]></div><div><br>
</div><div><br></div><div>Alex</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Dec 10, 2013 at 8:23 AM, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 12/10/2013 09:55 AM, Adam Young wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 12/10/2013 05:24 AM, Flavio Percoco wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 09/12/13 19:45 -0800, Alex Gaynor wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Would it make sense to use the `enum34` package, which is a backport<br>
of teh<br>
enum package from py3k?<br>
</blockquote>
<br>
+1<br>
<br>
This is what we were using in Marconi.<br>
</blockquote>
So... they seem to be doing something different from Flufl, as IntEnums<br>
are not working the same way.  I wonder if it is just update lag, and<br>
Flufl is the Upstream for the changes.<br>
<br>
With only a change to the import and requirements, it builds and runs,<br>
but raises:<br>
<br>
Traceback (most recent call last):<br>
   File "keystone/tests/test_revoke.<u></u>py", line 65, in test_list_is_sorted<br>
     valid_until=valid_until))<br>
   File "keystone/contrib/revoke/core.<u></u>py", line 74, in __init__<br>
     setattr(self, k, v)<br>
   File "keystone/contrib/revoke/core.<u></u>py", line 82, in scope_type<br>
     self._scope_type = ScopeType[value]<br>
   File<br>
"/opt/stack/keystone/.venv/<u></u>lib/python2.7/site-packages/<u></u>enum/__init__.py", line<br>
352, in __getitem__<br>
     return cls._member_map_[name]<br>
KeyError: 1<br>
<br>
This seems to say that you cannot access an IntEnum as an integer, which<br>
just seems broken.<br>
</blockquote>
<br></div></div>
What precisely is the benefit of an IntEnum? From the example in the flufl.enum docs:<br>
<br>
>>> from flufl.enum import IntEnum<br>
>>> class Animals(IntEnum):<br>
...     ant = 1<br>
...     bee = 2<br>
...     cat = 3<br>
<br>
>>> int(Animals.bee)<br>
2<br>
<br>
Wow. That is so amazing. Thank goodness there is a library for that.<br>
<br>
Oh wait... I can do exactly the same thing without flufl.enum or any other library:<br>
<br>
>>> class Animals:<br>
...     ant = 1<br>
...     bee = 2<br>
...     cat = 3<br>
...<br>
>>> int(Animals.bee)<br>
2<br>
<br>
The IntEnum is my new definition of the most worthless class ever invented in the Python ecosystem -- taking the place of zope.interface on my personal wall of worthlessness.<br>
<br>
Best,<br>
-jay<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.<u></u>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">"I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire)<br>
"The people's good is the highest law." -- Cicero<br><div>GPG Key fingerprint: 125F 5C67 DFE9 4084</div></div>
</div>