'Returns the specified `result object` or some of its attributes.
The given ``handle`` specifies the process whose results should be
returned. If no ``handle`` is given, results of the current `active
process` are returned. In either case, the process must have been
finishes before this keyword can be used. In practice this means
that processes started with `Start Process` must be finished either
with `Wait For Process` or `Terminate Process` before using this
keyword.
If no other arguments than the optional ``handle`` are given, a whole
`result object` is returned. If one or more of the other arguments
are given any true value, only the specified attributes of the
`result object` are returned. These attributes are always returned
in the same order as arguments are specified in the keyword signature.
See `Boolean arguments` section for more details about true and false
values.
Examples:
| Run Process           | python             | -c            | print \'Hello, world!\' | alias=myproc |
| # Get result object   |                    |               |
| ${result} =           | Get Process Result | myproc        |
| Should Be Equal       | ${result.rc}       | ${0}          |
| Should Be Equal       | ${result.stdout}   | Hello, world! |
| Should Be Empty       | ${result.stderr}   |               |
| # Get one attribute   |                    |               |
| ${stdout} =           | Get Process Result | myproc        | stdout=true |
| Should Be Equal       | ${stdout}          | Hello, world! |
| # Multiple attributes |                    |               |
| ${stdout}             | ${stderr} =        | Get Process Result |  myproc | stdout=yes | stderr=yes |
| Should Be Equal       | ${stdout}          | Hello, world! |
| Should Be Empty       | ${stderr}          |               |
Although getting results of a previously executed process can be handy
in general, the main use case for this keyword is returning results
over the remote library interface. The remote interface does not
support returning the whole result object, but individual attributes
can be returned without problems.
New in Robot Framework 2.8.2.'

def get_process_result(self, handle=None, rc=False, stdout=False, stderr=False, stdout_path=False, stderr_path=False):

    result = self._results[self._processes[handle]]
    if (result.rc is None):
        raise RuntimeError('Getting    results    of    unfinished    processes    is    not    supported.')
    attributes = self._get_result_attributes(result, rc, stdout, stderr, stdout_path, stderr_path)
    if (not attributes):
        return result
    elif (len(attributes) == 1):
        return attributes[0]
    return attributes
