<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_device(self, path):
 		"""Add a device to a libinput context. 		If successful, the device will be added to the internal list and 		re-opened on :meth:`~libinput.LibInput.resume`. The device can be 		removed with :meth:`remove_device`. 		If the device was successfully initialized, it is returned. 		Args: 			path (str):
 Path to an input device. 		Returns: 			~libinput.define.Device: A device object or :obj:`None`. 		"""


		hdevice = self._libinput.libinput_path_add_device(
			self._li, path.encode())
		if hdevice:
			return Device(hdevice, self._libinput)
		return None