code: def _addPredecessor(self, predecessorJob):
          
          if predecessorJob in self._directPredecessors:
              raise RuntimeError("The given job is already a predecessor of this job")
          self._directPredecessors.add(predecessorJob)
docs: Adds a predecessor job to the set of predecessor jobs. Raises a \
          RuntimeError if the job is already a predecessor.