diff --git a/src/executorlib/standalone/select.py b/src/executorlib/standalone/select.py index f0edc082..37a6cbbf 100644 --- a/src/executorlib/standalone/select.py +++ b/src/executorlib/standalone/select.py @@ -20,7 +20,20 @@ def __setattr__(self, name: str, value: Any): def result(self, timeout: Optional[float] = None) -> Any: result = self._future.result(timeout=timeout) if result is not None: - return result[self._selector] + if ( + isinstance(self._selector, int) and isinstance(result, (tuple, list)) + ) or self._selector in result: + return result[self._selector] + else: + raise KeyError( + str(self._selector) + + " of type " + + str(type(self._selector)) + + " is not in " + + str(result) + + " of type " + + str(type(result)) + ) else: return None