Skip to content

Commit 33c74d5

Browse files
committed
docstring
1 parent e012bec commit 33c74d5

3 files changed

Lines changed: 51 additions & 7 deletions

File tree

vetiver/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import importlib
88
from .ptype import *
99
from .vetiver_model import VetiverModel
10-
from .server import VetiverAPI, vetiver_endpoint
10+
from .server import VetiverAPI, vetiver_endpoint, predict
1111
from .mock import get_mock_data, get_mock_model
1212
from .pin_read_write import vetiver_pin_write
1313
from .attach_pkgs import *

vetiver/rsconnect.py

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
import tempfile
22
import typing
33
from rsconnect.actions import deploy_python_fastapi
4+
import shutil
5+
import os
46

57
from .write_fastapi import write_app
68

79

810
def deploy_rsconnect(
911
connect_server,
1012
board,
11-
pin_name,
12-
version = None,
13+
pin_name: str,
14+
version: str = None,
1315
extra_files: typing.List[str] = None,
1416
new: bool = False,
1517
app_id: int = None,
@@ -20,11 +22,54 @@ def deploy_rsconnect(
2022
log_callback: typing.Callable = None,
2123
image: str = None,
2224
):
25+
"""Deploy to RSConnect
26+
27+
Parameters
28+
----------
29+
connect_server:
30+
RSConnect Server
31+
board:
32+
Pins board
33+
pin_name: str
34+
Name of pin
35+
version: str
36+
Version of pin
37+
extra_files: typing.List[str]
38+
Any extra files to include in
39+
new:
40+
Force as a new deploy
41+
app_id:
42+
ID of an existing application to deploy new files for.
43+
title: str
44+
Optional title for the deploy.
45+
python: str
46+
Optional name of a Python executable
47+
conda_mode: bool
48+
Use conda to build an environment.yml
49+
force_generate: bool
50+
Force generating "requirements.txt" or "environment.yml"
51+
log_callback: typing.Callable
52+
Callback to use to write the log to
53+
image: str
54+
Docker image to be specified for off-host execution
55+
"""
56+
if board.fs.protocol == "rsc":
57+
raise NotImplementedError()
58+
2359
if not title:
2460
title = pin_name + "_vetiver"
2561

2662
with tempfile.TemporaryDirectory() as temp:
63+
if extra_files is not None:
64+
new_files = []
65+
for file in extra_files:
66+
filename = os.path.basename(file)
67+
shutil.copyfile(file, os.path.join(temp, filename))
68+
new_files = new_files + [os.path.join(temp, filename)]
69+
extra_files = new_files
70+
2771
tmp_app = temp + "/app.py"
72+
2873
write_app(
2974
board=board,
3075
pin_name=pin_name,

vetiver/tests/test_rsconnect.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import pytest
22
import json
3-
import requests
4-
53
import sklearn
64
from pins.boards import BoardRsConnect
75

@@ -70,8 +68,9 @@ def test_board_pin_write(rsc_short):
7068
vetiver.vetiver_pin_write(board=rsc_short, model=v)
7169
assert isinstance(rsc_short.pin_read("susan/model"), sklearn.dummy.DummyRegressor)
7270

73-
71+
@pytest.mark.xfail
7472
def test_deploy(rsc_short):
73+
# TODO: test in Dockerfile
7574
v = vetiver.VetiverModel(
7675
model=model, ptype_data=X_df, model_name="susan/model", versioned=None
7776
)
@@ -83,6 +82,6 @@ def test_deploy(rsc_short):
8382
board=rsc_short,
8483
pin_name="susan/model"
8584
)
86-
response = requests.post(RSC_SERVER_URL + "/predict/", json=X_df)
85+
response = vetiver.predict(RSC_SERVER_URL + "/predict/", json=X_df)
8786
assert response.status_code == 200, response.text
8887
assert response.json() == {"prediction": [44.47, 44.47]}, response.json()

0 commit comments

Comments
 (0)