<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _check_keys(self, rdict):
 """Call this from _local_update to validate response keys disallowed server-response json keys: 1. The string-literal '_meta_data' 2. strings that are not valid Python 2.7 identifiers 3. strings beginning with '__'. :param rdict: from response.json() :raises: DeviceProvidesIncompatibleKey :returns: checked response rdict """

        if '_meta_data' in rdict:
            error_message = "Response contains key '_meta_data' which is "\
                "incompatible with this API!!\n Response json: %r" % rdict
            raise DeviceProvidesIncompatibleKey(error_message)
        for x in rdict:
            if not re.match(tokenize.Name, x):
                error_message = "Device provided %r which is disallowed"\
                    " because it's not a valid Python 2.7 identifier." % x
                raise DeviceProvidesIncompatibleKey(error_message)
            elif keyword.iskeyword(x):
                # If attribute is keyword, append underscore to attribute name
                rdict[x + '_'] = rdict[x]
                rdict.pop(x)
            elif x.startswith('__'):
                error_message = "Device provided %r which is disallowed"\
                    ", it mangles into a Python non-public attribute." % x
                raise DeviceProvidesIncompatibleKey(error_message)
        return rdict