title: Automatically setting an enum member's value to its name
body: <p>I've been messing around with python's enum library and have come across a conundrum. In the docs, they show an example of an <a href="https://docs.python.org/3/library/enum.html#autonumber" rel="noreferrer">auto-numbering enum</a>, wherein something is defined:</p>
  
  <pre><code>class Color(AutoNumber):
      red = ()
      green = ()
      ...
  </code></pre>
  
  <p>I want to make a similar class, but the value would automatically be set from the name of the member AND keep the functionality that you get from doing the <code>str</code> and <code>enum</code> <a href="https://docs.python.org/3/library/enum.html#intenum" rel="noreferrer">mixin stuff</a></p>
  
  <p>So something like:</p>
  
  <pre><code>class Animal(MagicStrEnum):
      horse = ()
      dog = ()
  
  Animal.dog == 'dog' # True
  </code></pre>
  
  <p>I've looked at the source code of the enum module and tried a lot of variations messing around with <code>__new__</code> and the <code>EnumMeta</code> class</p>