class_docstr: Track enum member order and ensure member names are not reused.
  
  EnumMeta will use the names found in self._member_names as the
  enumeration member names.
class_docstr_tok: ["Track","enum","member","order","and","ensure","member","names","are","not","reused",".","EnumMeta","will","use","the","names","found","in","self._member_names","as","the","enumeration","member","names","."]
docstr: Changes anything not dundered or not a descriptor.
  
  If a descriptor is added with the same name as an enum member, the name
  is removed from _member_names (this may leave a hole in the numerical
  sequence of values).
  
  If an enum member name is used twice, an error is raised; duplicate
  values are not checked for.
  
  Single underscore (sunder) names are reserved.
  
  Note:   in 3.x __order__ is simply discarded as a not necessary piece
          leftover from 2.x
docstr_tok: ["Changes","anything","not","dundered","or","not","a","descriptor",".","If","a","descriptor","is","added","with","the","same","name","as","an","enum","member",",","the","name","is","removed","from","_member_names","(","this","may","leave","a","hole","in","the","numerical","sequence","of","values",")",".","If","an","enum","member","name","is","used","twice",",","an","error","is","raised",";","duplicate","values","are","not","checked","for",".","Single","underscore","(","sunder",")","names","are","reserved",".","Note",":","in","3.x","__order__","is","simply","discarded","as","a","not","necessary","piece","leftover","from","2.x"]
code: def __setitem__(self, key, value):
      """Changes anything not dundered or not a descriptor.
  
      If a descriptor is added with the same name as an enum member, the name
      is removed from _member_names (this may leave a hole in the numerical
      sequence of values).
  
      If an enum member name is used twice, an error is raised; duplicate
      values are not checked for.
  
      Single underscore (sunder) names are reserved.
  
      Note:   in 3.x __order__ is simply discarded as a not necessary piece
              leftover from 2.x
  
      """
      if pyver >= 3.0 and key in ("_order_", "__order__"):
          return
      elif key == "__order__":
          key = "_order_"
      if _is_sunder(key):
          if key != "_order_":
              raise ValueError(
                  "_names_ are reserved for future Enum use"
              )
      elif _is_dunder(key):
          pass
      elif key in self._member_names:
          # descriptor overwriting an enum?
          raise TypeError("Attempted to reuse key: %r" % key)
      elif not _is_descriptor(value):
          if key in self:
              # enum overwriting a descriptor?
              raise TypeError("Key already defined as: %r" % self[key])
          self._member_names.append(key)
      super(_EnumDict, self).__setitem__(key, value)
  
imports: import sys
label_desc: Use image node_id 2 for calling the _EnumDict obj's underlying member method code with example usage: obj.__setitem__(key, value) without return types