docs: def open(self, baudrate=None, no_reader_thread=False):
          """Opens the device.
  
          If the device cannot be opened, an exception is thrown.  In that
          case, open() can be called repeatedly to try and open the
          connection.
  
          :param baudrate: baudrate used for the device.  Defaults to the lower-level device default.
          :type baudrate: int
          :param no_reader_thread: Specifies whether or not the automatic reader
                                   thread should be started.
          :type no_reader_thread: bool
          """
          self._wire_events()
          try:
              self._device.open(baudrate=baudrate,
                                no_reader_thread=no_reader_thread)
          except:
              self._unwire_events
              raise
  
          return self