Skip to content

Commit 9533565

Browse files
committed
move to requirements to VetiverModel
1 parent 5a63fee commit 9533565

2 files changed

Lines changed: 14 additions & 18 deletions

File tree

vetiver/pin_read_write.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,10 @@ def vetiver_pin_write(board, model: VetiverModel, versioned: bool = True):
4444
>>> vetiver.vetiver_pin_write(model_board, v)
4545
"""
4646
if not board.allow_pickle_read:
47-
raise NotImplementedError # must be pickle-able
47+
raise ValueError(
48+
"board does not allow pickled models. Set "
49+
"allow_pickle_read to True on board creation."
50+
)
4851

4952
inform(
5053
_log,
@@ -61,8 +64,6 @@ def vetiver_pin_write(board, model: VetiverModel, versioned: bool = True):
6164
if isinstance(model.metadata, dict):
6265
model.metadata = VetiverMeta.from_dict(model.metadata)
6366

64-
required_pkgs = get_board_pkgs(board) + model.metadata.required_pkgs
65-
6667
board.pin_write(
6768
model.model,
6869
name=model.model_name,
@@ -71,7 +72,7 @@ def vetiver_pin_write(board, model: VetiverModel, versioned: bool = True):
7172
metadata={
7273
"user": model.metadata.user,
7374
"vetiver_meta": {
74-
"required_pkgs": required_pkgs,
75+
"required_pkgs": model.metadata.required_pkgs,
7576
"prototype": None if not model.prototype else model.prototype().json(),
7677
"python_version": None
7778
if not model.metadata.python_version
@@ -117,7 +118,7 @@ def vetiver_pin_read(board, name: str, version: str = None) -> VetiverModel:
117118
return v
118119

119120

120-
def get_board_pkgs(board) -> List[str]:
121+
def _get_board_pkgs(board) -> List[str]:
121122
"""
122123
Extract packages required for pin board authorization
123124
@@ -144,7 +145,7 @@ def get_board_pkgs(board) -> List[str]:
144145
return ["gcsfs"]
145146
else:
146147
warnings.warn(
147-
f"required packages unknown for protocol: {prot}, "
148-
"add to model's metadata to ensure they are exported"
148+
f"required packages unknown for board protocol: {prot}, "
149+
"add to model's metadata to export"
149150
)
150151
return []

vetiver/vetiver_model.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22
from warnings import warn
33
from vetiver.handlers.base import create_handler
4+
from .pin_read_write import _get_board_pkgs
45

56

67
class NoModelAvailableError(Exception):
@@ -52,8 +53,6 @@ class VetiverModel:
5253
Parameter `ptype_data` was changed to `prototype_data`. Handling of `ptype_data`
5354
will be removed in a future version.
5455
55-
56-
5756
Examples
5857
-------
5958
>>> from vetiver import mock, VetiverModel
@@ -101,19 +100,15 @@ def from_pin(cls, board, name: str, version: str = None):
101100

102101
if "vetiver_meta" in meta.user:
103102
get_prototype = meta.user.get("vetiver_meta").get("prototype", None)
104-
required_pkgs = meta.user.get("vetiver_meta").get("required_pkgs", None)
103+
required_pkgs = meta.user.get("vetiver_meta").get(
104+
"required_pkgs", None
105+
) + _get_board_pkgs(board)
105106
python_version = meta.user.get("vetiver_meta").get("python_version", None)
106107
meta.user.pop("vetiver_meta")
108+
# old pin type
107109
else:
108-
# ptype = meta.user.get("ptype", None)
109-
110110
get_prototype = meta.user.get("ptype")
111-
# elif meta.user.get("prototype"):
112-
# get_prototype = meta.user.get("prototype")
113-
# else:
114-
# get_prototype = None
115-
116-
required_pkgs = meta.user.get("required_pkgs")
111+
required_pkgs = meta.user.get("required_pkgs") + _get_board_pkgs(board)
117112
python_version = meta.user.get("python_version")
118113

119114
return cls(

0 commit comments

Comments
 (0)