docs: def profiler(profiles, projectpath,parameters,serviceid,servicename,serviceurl,printdebug=None):
      """Given input files and parameters, produce metadata for outputfiles. Returns a list of matched profiles (empty if none match), and a program."""
  
      parameters = sanitizeparameters(parameters)
  
      matched = []
      program = Program(projectpath)
      for profile in profiles:
          if profile.match(projectpath, parameters)[0]:
              matched.append(profile)
              program.update( profile.generate(projectpath,parameters,serviceid,servicename,serviceurl) )
  
      return matched, program