'Enables features that are disabled by default to maintain backward
compatibility. Once enabled, a feature cannot be disabled and a new
control connection must be opened to get a connection with the feature
disabled. Feature names are case-insensitive.
The following features are currently accepted:
* EXTENDED_EVENTS - Requests the extended event syntax
* VERBOSE_NAMES - Replaces ServerID with LongName in events and GETINFO results
:param str,list features: a single feature or a list of features to be enabled
:raises:
* :class:`stem.ControllerError` if the call fails
* :class:`stem.InvalidArguments` if features passed were invalid'

def enable_feature(self, features):

    if isinstance(features, (bytes, str_type)):
        features = [features]
    response = self.msg(('USEFEATURE    %s' % '    '.join(features)))
    stem.response.convert('SINGLELINE', response)
    if (not response.is_ok()):
        if (response.code == '552'):
            invalid_feature = []
            if response.message.startswith('Unrecognized    feature    "'):
                invalid_feature = [response.message[22:response.message.find('"', 22)]]
            raise stem.InvalidArguments(response.code, response.message, invalid_feature)
        raise stem.ProtocolError(('USEFEATURE    provided    an    invalid    response    code:    %s' % response.code))
    self._enabled_features += [entry.upper() for entry in features]
