From 9571b7fbe753c91f4a7460d6a7c16ce13f33b98f Mon Sep 17 00:00:00 2001 From: afourney Date: Mon, 9 Oct 2023 16:27:54 -0700 Subject: [PATCH] Display a warning if use_docker evlauates to True but the python docker package is not available. (#172) Co-authored-by: Qingyun Wu --- autogen/code_utils.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/autogen/code_utils.py b/autogen/code_utils.py index ff97f567de53..a338e642e67b 100644 --- a/autogen/code_utils.py +++ b/autogen/code_utils.py @@ -218,7 +218,7 @@ def execute_code( timeout: Optional[int] = None, filename: Optional[str] = None, work_dir: Optional[str] = None, - use_docker: Optional[Union[List[str], str, bool]] = docker is not None, + use_docker: Optional[Union[List[str], str, bool]] = True, lang: Optional[str] = "python", ) -> Tuple[int, str, str]: """Execute code in a docker container. @@ -257,6 +257,15 @@ def execute_code( logger.error(error_msg) raise AssertionError(error_msg) + # Warn if docker was requested but cannot be provided. In this case + # the current behavior is to fall back to run natively, but this behavior + # is subject to change. + if use_docker and docker is None: + use_docker = False + logger.warning( + "execute_code was called with use_docker evaluating to True, but the python docker package is not available. Falling back to native code execution. Note: this fallback behavior is subject to change" + ) + timeout = timeout or DEFAULT_TIMEOUT original_filename = filename if WIN32 and lang in ["sh", "shell"] and (not use_docker):