docs: def subproduct(self, ext):
          """Makes a subproduct filename by calling subproductPath(), then calls
          subproductUpToDate() to determine if it is up-to-date.
          Returns tuple of basename,path,uptodate
          """
          fname, fpath = self.subproductPath(ext)
          return fname, fpath, self.subproductUpToDate(fpath)