Display a warning if use_docker evlauates to True but the python docker package is not available. (#172)

Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
This commit is contained in:
afourney 2023-10-09 16:27:54 -07:00 committed by GitHub
parent 4522900487
commit 9571b7fbe7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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):