|
11 | 11 | import subprocess |
12 | 12 | import sys |
13 | 13 | import traceback |
| 14 | +from typing import IO |
14 | 15 | from warnings import warn |
15 | | -from .exception import RSConnectException |
16 | | - |
17 | | -try: |
18 | | - import typing |
19 | | -except ImportError: |
20 | | - typing = None |
21 | | - |
22 | 16 | from os.path import abspath, basename, dirname, exists, isdir, join, relpath, splitext |
23 | 17 | from pprint import pformat |
24 | | - |
| 18 | +from .exception import RSConnectException |
25 | 19 | from . import api |
26 | 20 | from .bundle import ( |
27 | 21 | make_api_bundle, |
28 | 22 | make_api_manifest, |
| 23 | + make_html_bundle, |
29 | 24 | make_manifest_bundle, |
30 | 25 | make_notebook_html_bundle, |
31 | 26 | make_notebook_source_bundle, |
|
40 | 35 | from .log import logger |
41 | 36 | from .metadata import AppStore |
42 | 37 | from .models import AppModes, AppMode |
| 38 | +from .api import RSConnectExecutor, filter_out_server_info |
43 | 39 |
|
44 | 40 | import click |
45 | 41 | from six.moves.urllib_parse import urlparse |
46 | 42 |
|
| 43 | +try: |
| 44 | + import typing |
| 45 | +except ImportError: |
| 46 | + typing = None |
| 47 | + |
47 | 48 | line_width = 45 |
48 | 49 | _module_pattern = re.compile(r"^[A-Za-z0-9_]+:[A-Za-z0-9_]+$") |
49 | 50 | _name_sub_pattern = re.compile(r"[^A-Za-z0-9_ -]+") |
@@ -597,6 +598,47 @@ def write_manifest_json(manifest_path, manifest): |
597 | 598 | f.write("\n") |
598 | 599 |
|
599 | 600 |
|
| 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 | + |
600 | 642 | def deploy_jupyter_notebook( |
601 | 643 | connect_server: api.RSConnectServer, |
602 | 644 | file_name: str, |
|
0 commit comments