def __update_data(self, data):
        """
        Automatically updates the contents of the 'data' object with any fields
        that are set in the object but weren't specified in the data. This makes
        method calls simpler.

        This method will also verify the data in the dictionary.

        :param data: A map of Slack API fields to desired values.
        :type  data: dict
        :returns: A copy of the `data` dictionary, but with extra values if they
            were specified in the object constructor.
        """
        # Duplicate the data to make this method non-destructive.
        return_data = dict(data)
        # Iterate over each of the supported fields.
        for field in supported_fields:
            # Let's see if we have a value defined for that attribute.
            # Note that this requires the object's attributes to have the same
            # name as the Slack API fields.
            try:
                value = getattr(self, field)
            except __HOLE__:
                # Didn't have it, but let's not throw an error. Just continue.
                continue
            # If the field isn't already in the data, add it.
            # This ensure that overriding calls are not overridden themselves.
            if value is not None and not field in return_data:
                return_data[field] = value
        # Ensure the dictionary is good-to-go.
        self.__verify_data(data)
        return return_data
dataset/ETHPy150Open univ-of-utah-marriott-library-apple/management_tools/management_tools/slack.py/IncomingWebhooksSender.__update_data