Skip to content

Commit c2628a4

Browse files
committed
change app file output
1 parent 5f0bbe0 commit c2628a4

5 files changed

Lines changed: 48 additions & 34 deletions

File tree

vetiver/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""vetiver - Python parallel to R vetiver package"""
22

3-
__version__ = "0.1.4"
3+
__version__ = "0.1.3"
44
__author__ = "Isabel Zimmerman <isabel.zimmerman@rstudio.com>"
55
__all__ = []
66

vetiver/pin_read_write.py

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
from .meta import _model_meta
77
from .write_fastapi import _choose_version
88

9-
def vetiver_pin_write(board, model: VetiverModel, versioned: bool=True):
9+
10+
def vetiver_pin_write(board, model: VetiverModel, versioned: bool = True):
1011
"""
1112
Pin a trained VetiverModel along with other model metadata.
12-
13+
1314
Parameters
1415
----------
1516
board:
@@ -20,16 +21,18 @@ def vetiver_pin_write(board, model: VetiverModel, versioned: bool=True):
2021
Whether or not the pin should be versioned
2122
"""
2223
if not board.allow_pickle_read:
23-
raise NotImplementedError # must be pickle-able
24+
raise NotImplementedError # must be pickle-able
2425

2526
board.pin_write(
2627
model.model,
27-
name = model.model_name,
28-
type = "joblib",
29-
description = model.description,
30-
metadata = {"required_pkgs": model.metadata.get("required_pkgs"),
31-
"ptype": None if model.ptype == None else model.ptype().json()},
32-
versioned=versioned
28+
name=model.model_name,
29+
type="joblib",
30+
description=model.description,
31+
metadata={
32+
"required_pkgs": model.metadata.get("required_pkgs"),
33+
"ptype": None if model.ptype == None else model.ptype().json(),
34+
},
35+
versioned=versioned,
3336
)
3437

3538
# to do: Model card
@@ -45,15 +48,15 @@ def vetiver_pin_write(board, model: VetiverModel, versioned: bool=True):
4548
def vetiver_pin_read(board, name: str, version: str = None) -> VetiverModel:
4649
"""
4750
Read pin and populate VetiverModel
48-
51+
4952
Parameters
5053
----------
5154
board:
5255
A pin board, created by `pins.board_folder()` or another `board_` function.
5356
name: string
5457
Pin name
5558
version: str
56-
Retrieve a specific version of a pin.
59+
Retrieve a specific version of a pin.
5760
5861
Returns
5962
--------
@@ -62,26 +65,35 @@ def vetiver_pin_read(board, name: str, version: str = None) -> VetiverModel:
6265
Notes
6366
-----
6467
If reading a board from RSConnect, the `board` argument must be in "username/modelname" format.
65-
68+
6669
"""
6770

68-
raise DeprecationWarning("vetiver_pin_read is now a classmethod VetiverModel.from_pin()")
71+
warnings.warn(
72+
"vetiver_pin_read will be removed in v1.0.0. Use classmethod VetiverModel.from_pin() instead",
73+
DeprecationWarning,
74+
)
6975

70-
version = version if version is not None else _choose_version(board.pin_versions(name))
76+
version = (
77+
version if version is not None else _choose_version(board.pin_versions(name))
78+
)
7179

7280
model = board.pin_read(name, version)
7381
meta = board.pin_meta(name)
7482

75-
v = VetiverModel(model = model,
76-
model_name = name,
77-
description = meta.description,
78-
metadata = _model_meta(user = meta.user,
79-
version = version,
80-
url = meta.user.get("url"), # None all the time, besides Connect
81-
required_pkgs = meta.user.get("required_pkgs")
83+
v = VetiverModel(
84+
model=model,
85+
model_name=name,
86+
description=meta.description,
87+
metadata=_model_meta(
88+
user=meta.user,
89+
version=version,
90+
url=meta.user.get("url"), # None all the time, besides Connect
91+
required_pkgs=meta.user.get("required_pkgs"),
8292
),
83-
ptype_data = json.loads(meta.user.get("ptype")) if meta.user.get("ptype") else None,
84-
versioned = True
85-
)
86-
93+
ptype_data=json.loads(meta.user.get("ptype"))
94+
if meta.user.get("ptype")
95+
else None,
96+
versioned=True,
97+
)
98+
8799
return v

vetiver/tests/test_build_vetiver_model.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from numpy import isin
21
import pytest
32
import sklearn
43

@@ -77,6 +76,7 @@ def test_vetiver_model_no_ptype():
7776
assert vt4.model == model
7877
assert vt4.ptype == None
7978

79+
8080
def test_vetiver_model_from_pin():
8181

8282
v = vt.VetiverModel(
@@ -90,7 +90,7 @@ def test_vetiver_model_from_pin():
9090
board = pins.board_temp(allow_pickle_read=True)
9191
vt.vetiver_pin_write(board=board, model=v)
9292
v2 = vt.VetiverModel.from_pin(board, "model")
93-
assert isinstance(v2, vt.VetiverModel)
93+
assert isinstance(v2, vt.VetiverModel)
9494
assert isinstance(v2.model, sklearn.base.BaseEstimator)
9595
assert isinstance(v2.ptype.construct(), pydantic.BaseModel)
96-
board.pin_delete("model")
96+
board.pin_delete("model")

vetiver/tests/test_write_app.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ def test_write_app():
1818
os.remove(file)
1919
version = model_board.pin_versions("model").sort_values(by='created', ascending=False)
2020
version = version.version[0]
21-
assert(contents == f"""import vetiver
21+
assert(contents == f"""from vetiver import VetiverModel
22+
import vetiver
2223
import pins
2324
2425
2526
b = pins.board_folder('.', allow_pickle_read=True)
26-
v = vetiver.vetiver_pin_read(b, 'model', version = '{version}')
27+
v = VetiverModel.from_pin(b, 'model', version = '{version}')
2728
2829
vetiver_api = vetiver.VetiverAPI(v)
2930
api = vetiver_api.app

vetiver/write_fastapi.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,19 @@ def write_app(board, pin_name: str, version: str = None, file: str = "app.py"):
7070
if not version:
7171
version = board.pin_versions(pin_name)
7272
version = _choose_version(version)
73-
pin_read = f"v = vetiver.vetiver_pin_read(b, {repr(pin_name)}, version = {repr(version)})"
73+
pin_read = f"v = VetiverModel.from_pin(b, {repr(pin_name)}, version = {repr(version)})"
7474

7575
else:
76-
pin_read = f"v = vetiver.pin_read_write.vetiver_pin_read(b, {repr(pin_name)})"
76+
pin_read = f"v = VetiverModel.from_pin(b, {repr(pin_name)})"
7777

7878
infra_pkgs = ["vetiver", "pins"]
7979

8080
load_board = pins.board_deparse(board)
8181

8282
f = open(file, "x")
8383

84-
app = f"""{_glue_required_pkgs(infra_pkgs)}
84+
app = f"""from vetiver import VetiverModel
85+
{_glue_required_pkgs(infra_pkgs)}
8586
8687
b = pins.{load_board}
8788
{pin_read}

0 commit comments

Comments
 (0)