<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_trunk_groups(self, vid, value=None, default=False, disable=False):
 """ Configures the list of trunk groups support on a vlan This method handles configuring the vlan trunk group value to default if the default flag is set to True. If the default flag is set to False, then this method will calculate the set of trunk group names to be added and to be removed. EosVersion: 4.13.7M Args: vid (str):
 The VLAN ID to configure value (str):
 The list of trunk groups that should be configured for this vlan id. default (bool):
 Configures the trunk group value to default if this value is true disable (bool):
 Negates the trunk group value if set to true Returns: True if the operation was successful otherwise False """

        if default:
            return self.configure_vlan(vid, 'default trunk group')
        if disable:
            return self.configure_vlan(vid, 'no trunk group')

        current_value = self.get(vid)['trunk_groups']
        failure = False

        value = make_iterable(value)

        for name in set(value).difference(current_value):
            if not self.add_trunk_group(vid, name):
                failure = True

        for name in set(current_value).difference(value):
            if not self.remove_trunk_group(vid, name):
                failure = True

        return not failure