docs: def derivable(self):
          """
          Whether the spec (only valid for derived specs) can be derived
          given the inputs and switches provided to the study
          """
          try:
              # Just need to iterate all study inputs and catch relevant
              # exceptions
              list(self.pipeline.study_inputs)
          except (ArcanaOutputNotProducedException,
                  ArcanaMissingDataException):
              return False
          return True