def __init__(self, def_dict, api, wire_name, values, descriptions, parent):
    super(Enum, self).__init__(def_dict, api, parent=parent)
    name = def_dict.get('id') or wire_name
    self.ValidateName(name)
    self.SetTemplateValue('wireName', name)
    self.SetTemplateValue('className',
                          api.ToClassName(name, self, element_type='enum'))
    if values is None:
      values = def_dict.get('enum')
    if descriptions is None:
      descriptions = def_dict.get('enumDescriptions') or []

    self._elements = []
    for i in range(len(values)):
      v = values[i]
      # Sometimes the description list is too short.
      d = descriptions[i] if (i < len(descriptions)) else None
      self._elements.append(
          template_objects.Constant(v, description=d, parent=self))
    self.SetTemplateValue(
        'elements', self._elements,
        meaning='The individual possible values of an Enum data type.')

    # TODO(user): Migrate users away from the enum pairs to 'elements' and
    # delete the rest of this method.
    def FixName(name):
      name = name[0].isdigit() and 'VALUE_' + name or name.lstrip('@')
      return name.upper().replace('-', '_')
    names = [FixName(s) for s in values]
    def FixDescription(desc):
      return self.ValidateAndSanitizeComment(self.StripHTML(desc))
    pairs = zip(names, values, map(FixDescription, descriptions))
    self.SetTemplateValue('pairs', pairs)
Check if the limit is exempt.
dataset/ETHPy150Open google/apis-client-generator/src/googleapis/codegen/data_types.py/Enum.__init__--crossover with--dataset/ETHPy150Open alisaifee/flask-limiter/flask_limiter/extension.py/ExtLimit.is_exempt