docs: def study_inputs(self):
          """
          Returns all inputs of the study used by the pipeline, including inputs
          of prerequisites (and their prerequisites recursively)
          """
          return set(chain(
              (i for i in self.inputs if not i.derived),
              *(self.study.pipeline(p, required_outputs=r).study_inputs
                for p, r in self.prerequisites.items())))