Skip to content

Commit b6e75d5

Browse files
committed
add deploy_html as an action & unify its implementation across main and actions
1 parent 6193b3c commit b6e75d5

File tree

2 files changed

+72
-24
lines changed

2 files changed

+72
-24
lines changed

rsconnect/actions.py

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,16 @@
1111
import subprocess
1212
import sys
1313
import traceback
14+
from typing import IO
1415
from warnings import warn
15-
from .exception import RSConnectException
16-
17-
try:
18-
import typing
19-
except ImportError:
20-
typing = None
21-
2216
from os.path import abspath, basename, dirname, exists, isdir, join, relpath, splitext
2317
from pprint import pformat
24-
18+
from .exception import RSConnectException
2519
from . import api
2620
from .bundle import (
2721
make_api_bundle,
2822
make_api_manifest,
23+
make_html_bundle,
2924
make_manifest_bundle,
3025
make_notebook_html_bundle,
3126
make_notebook_source_bundle,
@@ -40,10 +35,16 @@
4035
from .log import logger
4136
from .metadata import AppStore
4237
from .models import AppModes, AppMode
38+
from .api import RSConnectExecutor, filter_out_server_info
4339

4440
import click
4541
from six.moves.urllib_parse import urlparse
4642

43+
try:
44+
import typing
45+
except ImportError:
46+
typing = None
47+
4748
line_width = 45
4849
_module_pattern = re.compile(r"^[A-Za-z0-9_]+:[A-Za-z0-9_]+$")
4950
_name_sub_pattern = re.compile(r"[^A-Za-z0-9_ -]+")
@@ -597,6 +598,47 @@ def write_manifest_json(manifest_path, manifest):
597598
f.write("\n")
598599

599600

601+
def deploy_html(
602+
connect_server: api.RSConnectServer = None,
603+
path: str = None,
604+
entrypoint: str = None,
605+
extra_files=None,
606+
excludes=None,
607+
title: str = None,
608+
env_vars=None,
609+
verbose: bool = False,
610+
new: bool = False,
611+
app_id: str = None,
612+
name: str = None,
613+
server: str = None,
614+
api_key: str = None,
615+
insecure: bool = False,
616+
cacert: IO = None,
617+
):
618+
kwargs = locals()
619+
ce = None
620+
if connect_server:
621+
kwargs = filter_out_server_info(**kwargs)
622+
ce = RSConnectExecutor.fromConnectServer(connect_server, **kwargs)
623+
else:
624+
ce = RSConnectExecutor(**kwargs)
625+
626+
(
627+
ce.validate_server()
628+
.validate_app_mode(app_mode=AppModes.STATIC)
629+
.make_bundle(
630+
make_html_bundle,
631+
path,
632+
entrypoint,
633+
extra_files,
634+
excludes,
635+
)
636+
.deploy_bundle()
637+
.save_deployed_info()
638+
.emit_task_log()
639+
)
640+
641+
600642
def deploy_jupyter_notebook(
601643
connect_server: api.RSConnectServer,
602644
file_name: str,

rsconnect/main.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
)
3636

3737
from . import api, VERSION
38-
from .api import RSConnectExecutor
38+
from .api import RSConnectExecutor, filter_out_server_info
3939
from .bundle import (
4040
are_apis_supported_on_server,
4141
create_python_environment,
@@ -919,24 +919,30 @@ def deploy_quarto(
919919
)
920920
@cli_exception_handler
921921
def deploy_html(
922-
name,
923-
server,
924-
api_key,
925-
insecure,
926-
cacert,
927-
new,
928-
app_id,
929-
title,
930-
verbose,
931-
path,
932-
env_vars,
933-
entrypoint,
934-
extra_files,
935-
excludes,
922+
connect_server: api.RSConnectServer = None,
923+
path: str = None,
924+
entrypoint: str = None,
925+
extra_files=None,
926+
excludes=None,
927+
title: str = None,
928+
env_vars=None,
929+
verbose: bool = False,
930+
new: bool = False,
931+
app_id: str = None,
932+
name: str = None,
933+
server: str = None,
934+
api_key: str = None,
935+
insecure: bool = False,
936+
cacert: typing.IO = None,
936937
):
937938
kwargs = locals()
939+
ce = None
940+
if connect_server:
941+
kwargs = filter_out_server_info(**kwargs)
942+
ce = RSConnectExecutor.fromConnectServer(connect_server, **kwargs)
943+
else:
944+
ce = RSConnectExecutor(**kwargs)
938945

939-
ce = RSConnectExecutor(**kwargs)
940946
(
941947
ce.validate_server()
942948
.validate_app_mode(app_mode=AppModes.STATIC)

0 commit comments

Comments
 (0)