code: def compile(self, root, relpaths):
      
      with named_temporary_file() as fp:
        fp.write(to_bytes(_COMPILER_MAIN % {'root': root, 'relpaths': relpaths}, encoding='utf-8'))
        fp.flush()
  
        try:
          out, _ = Executor.execute([self._interpreter.binary, '-sE', fp.name])
        except Executor.NonZeroExit as e:
          raise self.CompilationFailure(
            'encountered %r during bytecode compilation.\nstderr was:\n%s\n' % (e, e.stderr)
          )
  
        return out.splitlines()
docs: Compiles the given python source files using this compiler's interpreter.
  
      :param string root: The root path all the source files are found under.
      :param list relpaths: The realtive paths from the `root` of the source files to compile.
      :returns: A list of relative paths of the compiled bytecode files.
      :raises: A :class:`Compiler.Error` if there was a problem bytecode compiling any of the files.