From 34d0126f21d892d3935fa9c7a09bc7ded44c68d9 Mon Sep 17 00:00:00 2001 From: Bincheng Wu Date: Fri, 3 Mar 2023 15:03:30 -0500 Subject: [PATCH 1/3] add is_python_enabled_on_server --- rsconnect/bundle.py | 9 +++++++++ rsconnect/main.py | 2 ++ 2 files changed, 11 insertions(+) diff --git a/rsconnect/bundle.py b/rsconnect/bundle.py index 80b81128..29bd1630 100644 --- a/rsconnect/bundle.py +++ b/rsconnect/bundle.py @@ -1062,6 +1062,15 @@ def fake_module_file_from_directory(directory: str): return join(directory, app_name + ".py") +def is_python_enabled_on_server(connect_details): + """ + Returns whether or not the Connect server has Python itself enabled. + + :error: The Posit Connect server does not have Python enabled. + """ + return any(connect_details["python"]["versions"]) + + def are_apis_supported_on_server(connect_details): """ Returns whether or not the Connect server has Python itself enabled and its license allows diff --git a/rsconnect/main.py b/rsconnect/main.py index 6d6c1b38..c0848255 100644 --- a/rsconnect/main.py +++ b/rsconnect/main.py @@ -40,6 +40,7 @@ from . import api, VERSION, validation from .api import RSConnectExecutor, RSConnectServer, RSConnectClient, filter_out_server_info from .bundle import ( + is_python_enabled_on_server, are_apis_supported_on_server, create_python_environment, default_title_from_manifest, @@ -1202,6 +1203,7 @@ def deploy_app( ( ce.validate_server() .validate_app_mode(app_mode=app_mode) + .check_server_capabilities([is_python_enabled_on_server]) .check_server_capabilities([are_apis_supported_on_server]) .make_bundle( make_api_bundle, From 7fc9d3ca03fce7ec8eef26c26c1d4ba10c56a96e Mon Sep 17 00:00:00 2001 From: Bincheng Wu Date: Mon, 6 Mar 2023 20:13:11 +0000 Subject: [PATCH 2/3] Update rsconnect/bundle.py Co-authored-by: Taylor Steinberg --- rsconnect/bundle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rsconnect/bundle.py b/rsconnect/bundle.py index 29bd1630..0c4d6099 100644 --- a/rsconnect/bundle.py +++ b/rsconnect/bundle.py @@ -1068,7 +1068,7 @@ def is_python_enabled_on_server(connect_details): :error: The Posit Connect server does not have Python enabled. """ - return any(connect_details["python"]["versions"]) + return any(connect_details.get("python", {}).get("versions", [])) def are_apis_supported_on_server(connect_details): From 74c5aaf31cc113fa68dfe3f984a11b5349566a85 Mon Sep 17 00:00:00 2001 From: Bincheng Wu Date: Mon, 6 Mar 2023 15:14:48 -0500 Subject: [PATCH 3/3] put all check on one line --- rsconnect/main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rsconnect/main.py b/rsconnect/main.py index c0848255..692aa738 100644 --- a/rsconnect/main.py +++ b/rsconnect/main.py @@ -1203,8 +1203,7 @@ def deploy_app( ( ce.validate_server() .validate_app_mode(app_mode=app_mode) - .check_server_capabilities([is_python_enabled_on_server]) - .check_server_capabilities([are_apis_supported_on_server]) + .check_server_capabilities([is_python_enabled_on_server, are_apis_supported_on_server]) .make_bundle( make_api_bundle, directory,