diff options
Diffstat (limited to 'slack/util.py')
-rw-r--r-- | slack/util.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/slack/util.py b/slack/util.py index f7d16f5..19a6166 100644 --- a/slack/util.py +++ b/slack/util.py @@ -3,6 +3,7 @@ from __future__ import annotations from functools import partial from itertools import islice from typing import ( + TYPE_CHECKING, Callable, Iterable, Iterator, @@ -18,6 +19,9 @@ import weechat from slack.shared import WeechatCallbackReturnType, shared +if TYPE_CHECKING: + from slack.task import Future + T = TypeVar("T") T2 = TypeVar("T2") @@ -28,6 +32,10 @@ def get_callback_name(callback: Callable[..., WeechatCallbackReturnType]) -> str return callback_id +def get_resolved_futures(futures: Iterable[Future[T]]) -> List[T]: + return [future.result() for future in futures if future.done_with_result()] + + def with_color(color: Optional[str], string: str, reset_color: str = "default"): if color: return f"{weechat.color(color)}{string}{weechat.color(reset_color)}" |