docs: def get_promise(self):
          """Return the special set of promises for run_instruction.
  
          Run Instruction has to support multiple promises (one for
          reading data, and one for reading back the status from IR. All
          other primitives have a single promise, so fitting multiple
          into this system causes some API consistencies.
  
          This should be reviewed to see if a more coherent alternative
          is available.
  
          """
          if self._promise is None:
              promise = []
              if self.read:
                  promise.append(TDOPromise(self._chain, 0, self.bitcount))
              else:
                  promise.append(None)
              if self.read_status:
                  promise.append(TDOPromise(self._chain, 0,
                                            self.dev._desc._ir_length))
              else:
                  promise.append(None)
              self._promise = promise
          return self._promise