def create_program(self, skip_rebuild=False):
    self.program_files = []
    self._bytecode_files = []
    for location in self.input_location:
      scan_dir(location, self.program_files, ('py', 'pyc'))

    # Do we need to compile all the files?
    py_files, pyc_files = Program.split_program_source_bc(self.program_files)

    logger.debug("Force rebuilding? %s", self.options.get('force-rebuild'))

    if not skip_rebuild:
      if len(py_files) != len(pyc_files) or self.instrumentation.get_option('force-rebuild'):
        self.compile_program()
    else:
      self._bytecode_files = list(pyc_files)
      logger.debug("Bytecode := %s", pyc_files)
Accepts a dictionary of metadata key/value pairs and updates the
dataset/ETHPy150Open neuroo/equip/equip/prog.py/Program.create_program--crossover with--dataset/ETHPy150Open rackspace/pyrax/pyrax/object_storage.py/ContainerManager.set_object_metadata