code: def _Enum(docstring, *names):
    
    enums = dict(zip(names, range(len(names))))
    reverse = dict((value, key) for key, value in enums.iteritems())
    enums['reverse_mapping'] = reverse
    enums['__doc__'] = docstring
    return type('Enum', (object,), enums)
docs: Utility to generate enum classes used by annotations.
  
    Args:
      docstring: Docstring for the generated enum class.
      *names: Enum names.
  
    Returns:
      A class that contains enum names as attributes.