code: def extend(self, *keys, **kwargs):
          
          this = copy.deepcopy(self)
  
          value_type = kwargs.get('value_type', EnumValue)
  
          if not keys:
              raise EnumEmptyError()
  
          keys = tuple(keys)
          values = [None] * len(keys)
  
          for i, key in enumerate(keys):
              value = value_type(this, i, key)
              values[i] = value
              try:
                  super(Enum, this).__setattr__(key, value)
              except TypeError:
                  raise EnumBadKeyError(key)
  
          this.__dict__['_keys'] = this.__dict__['_keys'] + keys
          this.__dict__['_values'] += values
  
          return this
docs: Return a new enumeration object extended with the specified items.