<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_seat_logical_name(self, seat):
 		"""Change the logical seat associated with this device by removing 		the device and adding it to the new seat. 		This command is identical to physically unplugging the device, then 		re-plugging it as a member of the new seat. libinput will generate 		a :attr:`~libinput.constant.EventType.DEVICE_REMOVED` event and this 		:class:`Device` is considered removed from the context; it will not 		generate further events. 		A :attr:`~libinput.constant.EventType.DEVICE_ADDED` event is 		generated with a new :class:`Device`. It is the caller's 		responsibility to update references to the new device accordingly. 		If the logical seat name already exists in the device's physical seat, 		the device is added to this seat. Otherwise, a new seat is created. 		Note: 			This change applies to this device until removal or 			:meth:`~libinput.LibInput.suspend`, whichever happens earlier. 		Args: 			seat (str):
 The new logical seat name. 		Raises: 			AssertionError 		"""


		rc = self._libinput.libinput_device_set_seat_logical_name(
			self._handle, seat.encode())
		assert rc == 0, 'Cannot assign device to {}'.format(seat)