<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def add_custom_request_attribute(self, key, value):
        '''Adds a custom request attribute to the current active tracer.

            :param str key: The name of the custom request attribute, the name is mandatory and
                may not be None.
            :param value: The value of the custom request attribute. Currently supported types
                are integer, float and string values. The value is mandatory and may
                not be None.
            :type value: str or int or float

            .. versionadded:: 1.1.0
        '''

        if isinstance(value, int):
            self._nsdk.customrequestattribute_add_integer(key, value)
        elif isinstance(value, float):
            self._nsdk.customrequestattribute_add_float(key, value)
        elif isinstance(value, six.string_types):
            self._nsdk.customrequestattribute_add_string(key, value)
        else:
            warn = self._nsdk.agent_get_logging_callback()
            if warn:
                warn('Can\'t add custom request attribute \'{0}\' '
                     'because the value type \'{1}\' is not supported!'.format(key, type(value)))