Skip to content

Commit 16a9228

Browse files
committed
remove ptype attr for ptrototype
1 parent 61fa10f commit 16a9228

5 files changed

Lines changed: 26 additions & 17 deletions

File tree

vetiver/pin_read_write.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,20 @@ def vetiver_pin_write(board, model: VetiverModel, versioned: bool = True):
5151
"with vetiver.model_card()",
5252
)
5353

54+
# convert older model's ptype to prototype
55+
if hasattr(model, "ptype"):
56+
model.prototype = model.ptype
57+
5458
board.pin_write(
5559
model.model,
5660
name=model.model_name,
5761
type="joblib",
5862
description=model.description,
5963
metadata={
6064
"required_pkgs": model.metadata.get("required_pkgs"),
61-
"ptype": None if model.ptype is None else model.ptype().json(),
65+
"ptype": None
66+
if model.prototype is None
67+
else model.prototype().json(), # ptype_change
6268
},
6369
versioned=versioned,
6470
)

vetiver/server.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,14 @@ def vetiver_post(self, endpoint_fx: Callable, endpoint_name: str = None, **kw):
151151
if not endpoint_name:
152152
endpoint_name = endpoint_fx.__name__
153153

154+
if hasattr(self.model, "ptype"):
155+
self.model.prototype = self.model.ptype
156+
154157
if self.check_prototype is True:
155158

156159
@self.app.post(urljoin("/", endpoint_name), name=endpoint_name)
157160
async def custom_endpoint(
158-
input_data: Union[self.model.ptype, List[self.model.ptype]]
161+
input_data: Union[self.model.prototype, List[self.model.prototype]]
159162
):
160163

161164
if isinstance(input_data, List):

vetiver/tests/test_build_vetiver_model.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,62 +18,62 @@ def test_vetiver_model_array_ptype():
1818
vt1 = vt.VetiverModel(
1919
model=model,
2020
prototype_data=X_array,
21-
model_name="iris",
21+
model_name="model",
2222
versioned=None,
2323
description=None,
2424
metadata=None,
2525
)
2626

2727
assert vt1.model == model
28-
assert isinstance(vt1.ptype.construct(), pydantic.BaseModel)
29-
assert list(vt1.ptype.__fields__.values())[0].type_ == int
28+
assert isinstance(vt1.prototype.construct(), pydantic.BaseModel)
29+
assert list(vt1.prototype.__fields__.values())[0].type_ == int
3030

3131

3232
def test_vetiver_model_df_ptype():
3333
# build VetiverModel, df ptype_data
3434
vt2 = vt.VetiverModel(
3535
model=model,
3636
prototype_data=X_df,
37-
model_name="iris",
37+
model_name="model",
3838
versioned=None,
3939
description=None,
4040
metadata=None,
4141
)
4242

4343
assert vt2.model == model
44-
assert isinstance(vt2.ptype.construct(), pydantic.BaseModel)
45-
assert list(vt2.ptype.__fields__.values())[0].type_ == int
44+
assert isinstance(vt2.prototype.construct(), pydantic.BaseModel)
45+
assert list(vt2.prototype.__fields__.values())[0].type_ == int
4646

4747

4848
def test_vetiver_model_dict_ptype():
4949
dict_data = {"B": 0, "C": 0, "D": 0}
5050
vt3 = vt.VetiverModel(
5151
model=model,
5252
prototype_data=dict_data,
53-
model_name="iris",
53+
model_name="model",
5454
versioned=None,
5555
description=None,
5656
metadata=None,
5757
)
5858

5959
assert vt3.model == model
60-
assert isinstance(vt3.ptype.construct(), pydantic.BaseModel)
61-
assert list(vt3.ptype.__fields__.values())[0].type_ == int
60+
assert isinstance(vt3.prototype.construct(), pydantic.BaseModel)
61+
assert list(vt3.prototype.__fields__.values())[0].type_ == int
6262

6363

6464
def test_vetiver_model_no_ptype():
6565
# build VetiverModel, no ptype
6666
vt4 = vt.VetiverModel(
6767
model=model,
6868
prototype_data=None,
69-
model_name="iris",
69+
model_name="model",
7070
versioned=None,
7171
description=None,
7272
metadata=None,
7373
)
7474

7575
assert vt4.model == model
76-
assert vt4.ptype is None
76+
assert vt4.prototype is None
7777

7878

7979
def test_vetiver_model_from_pin():
@@ -91,5 +91,5 @@ def test_vetiver_model_from_pin():
9191
v2 = vt.VetiverModel.from_pin(board, "model")
9292
assert isinstance(v2, vt.VetiverModel)
9393
assert isinstance(v2.model, sklearn.base.BaseEstimator)
94-
assert isinstance(v2.ptype.construct(), pydantic.BaseModel)
94+
assert isinstance(v2.prototype.construct(), pydantic.BaseModel)
9595
board.pin_delete("model")

vetiver/tests/test_custom_handler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def test_custom_vetiver_model():
4040

4141
assert v.description == "A regression model for testing purposes"
4242
assert isinstance(v.model, sklearn.dummy.DummyRegressor)
43-
assert isinstance(v.ptype.construct(), pydantic.BaseModel)
43+
assert isinstance(v.prototype.construct(), pydantic.BaseModel)
4444

4545

4646
def test_custom_vetiver_model_no_ptype():
@@ -58,4 +58,4 @@ def test_custom_vetiver_model_no_ptype():
5858

5959
assert v.description == "A regression model for testing purposes"
6060
assert isinstance(v.model, sklearn.dummy.DummyRegressor)
61-
assert isinstance(v.ptype.construct(), pydantic.BaseModel)
61+
assert isinstance(v.prototype.construct(), pydantic.BaseModel)

vetiver/vetiver_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def __init__(
8484
translator = create_handler(model, prototype_data)
8585

8686
self.model = translator.model
87-
self.ptype = translator.construct_ptype()
87+
self.prototype = translator.construct_ptype()
8888
self.model_name = model_name
8989
self.description = description if description else translator.describe()
9090
self.versioned = versioned

0 commit comments

Comments
 (0)