'return stdout text from executing a system child process,
where the \'self\' path points to executable.
The process is directly invoked and not through a system shell.'

def sysexec(self, *argv, **popen_opts):

    from subprocess import Popen, PIPE
    argv = map_as_list(str, argv)
    popen_opts['stdout'] = popen_opts['stderr'] = PIPE
    proc = Popen(([str(self)] + argv), **popen_opts)
    (stdout, stderr) = proc.communicate()
    ret = proc.wait()
    if py.builtin._isbytes(stdout):
        stdout = py.builtin._totext(stdout, sys.getdefaultencoding())
    if (ret != 0):
        if py.builtin._isbytes(stderr):
            stderr = py.builtin._totext(stderr, sys.getdefaultencoding())
        raise py.process.cmdexec.Error(ret, ret, str(self), stdout, stderr)
    return stdout
