diff --git a/rsconnect/bundle.py b/rsconnect/bundle.py index 9824ce95..0ff27c38 100644 --- a/rsconnect/bundle.py +++ b/rsconnect/bundle.py @@ -1432,6 +1432,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.get("python", {}).get("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 ee473204..97e412a3 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, @@ -1306,7 +1307,7 @@ def deploy_app( ( ce.validate_server() .validate_app_mode(app_mode=app_mode) - .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,