<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fabric_isl(self, **kwargs):
 """Set fabric ISL state. Args: int_type (str):
 Type of interface. (gigabitethernet, tengigabitethernet, etc) name (str):
 Name of interface. (1/0/5, 1/0/10, etc) enabled (bool):
 Is fabric ISL state enabled? (True, False) get (bool):
 Get config instead of editing config. (True, False) callback (function):
 A function executed upon completion of the method. The only parameter passed to `callback` will be the ``ElementTree`` `config`. Returns: Return value of `callback`. Raises: KeyError: if `int_type`, `name`, or `state` is not specified. ValueError: if `int_type`, `name`, or `state` is not a valid value. Examples: Traceback (most recent call last):
 KeyError """

        int_type = str(kwargs.pop('int_type').lower())
        name = str(kwargs.pop('name'))
        enabled = kwargs.pop('enabled', True)
        callback = kwargs.pop('callback', self._callback)

        int_types = [
            'tengigabitethernet',
            'fortygigabitethernet',
            'hundredgigabitethernet'
        ]

        if int_type not in int_types:
            raise ValueError("`int_type` must be one of: %s" %
                             repr(int_types))

        if not isinstance(enabled, bool):
            raise ValueError('`enabled` must be `True` or `False`.')

        fabric_isl_args = dict(name=name)

        if not pynos.utilities.valid_interface(int_type, name):
            raise ValueError("`name` must match `^[0-9]{1,3}/[0-9]{1,3}/[0-9]"
                             "{1,3}$`")

        config = getattr(
            self._interface,
            'interface_%s_fabric_fabric_isl_fabric_isl_enable' % int_type
        )(**fabric_isl_args)

        if not enabled:
            fabric_isl = config.find('.//*fabric-isl')
            fabric_isl.set('operation', 'delete')

        if kwargs.pop('get', False):
            return callback(config, handler='get_config')
        else:
            return callback(config)