From 0841e42613bd710d63881eb74957eac4180a5b2d Mon Sep 17 00:00:00 2001 From: jan-janssen Date: Tue, 30 Dec 2025 10:54:48 +0100 Subject: [PATCH 1/7] Extend selector error message --- src/executorlib/standalone/select.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/executorlib/standalone/select.py b/src/executorlib/standalone/select.py index f0edc082d..02191bf75 100644 --- a/src/executorlib/standalone/select.py +++ b/src/executorlib/standalone/select.py @@ -20,7 +20,10 @@ 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 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 From e2bba51e5274bfce93f499e922b04b2aeba8bcdd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 30 Dec 2025 09:59:22 +0000 Subject: [PATCH 2/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/executorlib/standalone/select.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/executorlib/standalone/select.py b/src/executorlib/standalone/select.py index 02191bf75..8f9a252e8 100644 --- a/src/executorlib/standalone/select.py +++ b/src/executorlib/standalone/select.py @@ -23,7 +23,15 @@ def result(self, timeout: Optional[float] = None) -> Any: if 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))) + raise KeyError( + str(self._selector) + + " of type " + + str(type(self._selector)) + + " is not in " + + str(result) + + " of type " + + str(type(result)) + ) else: return None From 688eafaad61520b929d9cef3cb0f7347e4688690 Mon Sep 17 00:00:00 2001 From: jan-janssen Date: Tue, 30 Dec 2025 11:05:52 +0100 Subject: [PATCH 3/7] extend condition --- src/executorlib/standalone/select.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/executorlib/standalone/select.py b/src/executorlib/standalone/select.py index 8f9a252e8..c1cc6ec26 100644 --- a/src/executorlib/standalone/select.py +++ b/src/executorlib/standalone/select.py @@ -20,7 +20,7 @@ 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: - if self._selector in result: + if (isinstance(self._selector, int) and isinstance(result, (tuple, list))) or self._selector in result: return result[self._selector] else: raise KeyError( From 0e937b941fbdb7557189c9ccc236d2e49a65da79 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 30 Dec 2025 10:06:06 +0000 Subject: [PATCH 4/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/executorlib/standalone/select.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/executorlib/standalone/select.py b/src/executorlib/standalone/select.py index c1cc6ec26..37a6cbbfb 100644 --- a/src/executorlib/standalone/select.py +++ b/src/executorlib/standalone/select.py @@ -20,7 +20,9 @@ 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: - if (isinstance(self._selector, int) and isinstance(result, (tuple, list))) or self._selector in result: + if ( + isinstance(self._selector, int) and isinstance(result, (tuple, list)) + ) or self._selector in result: return result[self._selector] else: raise KeyError( From 7e5162292e15bdfb8b3bbf4d9c9b657ec2538154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Jan=C3=9Fen?= Date: Sat, 13 Jun 2026 06:50:41 +0200 Subject: [PATCH 5/7] fix type hint --- src/executorlib/standalone/select.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/executorlib/standalone/select.py b/src/executorlib/standalone/select.py index 88c7efbe1..8d2bbaddf 100644 --- a/src/executorlib/standalone/select.py +++ b/src/executorlib/standalone/select.py @@ -1,5 +1,5 @@ from concurrent.futures import Future -from typing import Any, Optional +from typing import Any, Optional, SupportsIndex class FutureSelector(Future): @@ -15,7 +15,7 @@ class FutureSelector(Future): the desired element from the result. """ - def __init__(self, future: Future, selector: int | str): + def __init__(self, future: Future[SupportsIndex], selector: int | str): """ Args: future (Future): The underlying future whose result is a collection. From 429fedf9ccafe20ec58e0b038013c9e2e6a20315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Jan=C3=9Fen?= Date: Sat, 13 Jun 2026 07:02:05 +0200 Subject: [PATCH 6/7] fixes --- src/executorlib/standalone/select.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/executorlib/standalone/select.py b/src/executorlib/standalone/select.py index 8d2bbaddf..b5be1064d 100644 --- a/src/executorlib/standalone/select.py +++ b/src/executorlib/standalone/select.py @@ -1,5 +1,5 @@ from concurrent.futures import Future -from typing import Any, Optional, SupportsIndex +from typing import Any, Optional class FutureSelector(Future): @@ -15,7 +15,7 @@ class FutureSelector(Future): the desired element from the result. """ - def __init__(self, future: Future[SupportsIndex], selector: int | str): + def __init__(self, future: Future[Any], selector: int | str): """ Args: future (Future): The underlying future whose result is a collection. @@ -50,9 +50,9 @@ def result(self, timeout: Optional[float] = None) -> Any: """ result = self._future.result(timeout=timeout) if result is not None: - if ( - isinstance(self._selector, int) and isinstance(result, (tuple, list)) - ) or self._selector in result: + if isinstance(self._selector, int) and isinstance(result, (tuple, list)): + return result[self._selector] + elif isinstance(result, dict) and self._selector in result: return result[self._selector] else: raise KeyError( From 951ab0af386cf6216ea6b901fe1264449984e649 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 13 Jun 2026 05:02:21 +0000 Subject: [PATCH 7/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/executorlib/standalone/select.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/executorlib/standalone/select.py b/src/executorlib/standalone/select.py index b5be1064d..1dce8b2f9 100644 --- a/src/executorlib/standalone/select.py +++ b/src/executorlib/standalone/select.py @@ -50,9 +50,12 @@ def result(self, timeout: Optional[float] = None) -> Any: """ result = self._future.result(timeout=timeout) if result is not None: - if isinstance(self._selector, int) and isinstance(result, (tuple, list)): - return result[self._selector] - elif isinstance(result, dict) and self._selector in result: + if ( + isinstance(self._selector, int) + and isinstance(result, (tuple, list)) + or isinstance(result, dict) + and self._selector in result + ): return result[self._selector] else: raise KeyError(