<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def enable_streaming(self):
 """Open the streaming interface and accumute reports in a queue. This method is safe to call multiple times in a single device connection. There is no way to check if the streaming interface is opened or to close it once it is opened (apart from disconnecting from the device). The first time this method is called, it will open the streaming interface and return a queue that will be filled asynchronously with reports as they are received. Subsequent calls will just empty the queue and return the same queue without interacting with the device at all. Returns: queue.Queue: A queue that will be filled with reports from the device. """


        if not self.connected:
            raise HardwareError("Cannot enable streaming if we are not in a connected state")

        if self._reports is not None:
            _clear_queue(self._reports)
            return self._reports

        self._reports = queue.Queue()
        self._loop.run_coroutine(self.adapter.open_interface(0, 'streaming'))

        return self._reports