code: def blink(
              self, on_time=1, off_time=1, fade_in_time=0, fade_out_time=0,
              n=None, background=True):
          
          self._stop_blink()
          self._blink_thread = GPIOThread(
              target=self._blink_device,
              args=(on_time, off_time, fade_in_time, fade_out_time, n)
          )
          self._blink_thread.start()
          if not background:
              self._blink_thread.join()
              self._blink_thread = None
docs: Make the device turn on and off repeatedly.
  
          :param float on_time:
              Number of seconds on. Defaults to 1 second.
  
          :param float off_time:
              Number of seconds off. Defaults to 1 second.
  
          :param float fade_in_time:
              Number of seconds to spend fading in. Defaults to 0.
  
          :param float fade_out_time:
              Number of seconds to spend fading out. Defaults to 0.
  
          :type n: int or None
          :param n:
              Number of times to blink; :data:`None` (the default) means forever.
  
          :param bool background:
              If :data:`True` (the default), start a background thread to
              continue blinking and return immediately. If :data:`False`, only
              return when the blink is finished (warning: the default value of
              *n* will result in this method never returning).