88
99import pandas as pd
1010import numpy as np
11- from pydantic import BaseModel , create_model
12-
13-
14- class NoAvailablePTypeError (Exception ):
15- """
16- Throw an error if we cannot create
17- a 0 row input data prototype for `model`
18- """
19-
20- def __init__ (
21- self ,
22- message = "There is no method to create a 0-row input data prototype for `model`" ,
23- ):
24- self .message = message
25- super ().__init__ (self .message )
11+ import pydantic
12+ from warnings import warn
13+ from .types import create_prototype
2614
2715
2816class InvalidPTypeError (Exception ):
@@ -39,14 +27,14 @@ def __init__(
3927
4028
4129CREATE_PTYPE_TPL = """\
42- Failed to create a data prototype (ptype) from data of \
30+ Failed to create a data prototype from data of \
4331 type {_data_type}. If your datatype is not one of \
4432 (pd.DataFrame, pydantic.BaseModel, np.ndarry, dict), \
45- you should write a function to create the ptype . Here is \
33+ you should write a function to create the prototype . Here is \
4634 a template for such a function: \
4735
4836 from pydantic import create_model
49- from vetiver.ptype import vetiver_create_ptype
37+ from vetiver.prototype import vetiver_create_ptype
5038
5139 @vetiver_create_ptype.register
5240 def _(data: {_data_type}):
@@ -59,8 +47,20 @@ def _(data: {_data_type}):
5947"""
6048
6149
62- @singledispatch
6350def vetiver_create_ptype (data ):
51+
52+ warn (
53+ "argument for creating input data prototypes has changed to "
54+ "vetiver_create_prototype, from vetiver_create_ptype" ,
55+ DeprecationWarning ,
56+ stacklevel = 2 ,
57+ )
58+
59+ return vetiver_create_prototype (data )
60+
61+
62+ @singledispatch
63+ def vetiver_create_prototype (data ):
6464 """Create zero row structure to save data types
6565
6666 Parameters
@@ -77,7 +77,7 @@ def vetiver_create_ptype(data):
7777 raise InvalidPTypeError (message = CREATE_PTYPE_TPL .format (_data_type = type (data )))
7878
7979
80- @vetiver_create_ptype .register
80+ @vetiver_create_prototype .register
8181def _ (data : pd .DataFrame ):
8282 """
8383 Create input data prototype for a pandas dataframe
@@ -117,11 +117,11 @@ def _(data: pd.DataFrame):
117117 True
118118 """
119119 dict_data = data .iloc [0 , :].to_dict ()
120- ptype = create_model ( "ptype" , ** dict_data )
121- return ptype
120+ prototype = create_prototype ( ** dict_data )
121+ return prototype
122122
123123
124- @vetiver_create_ptype .register
124+ @vetiver_create_prototype .register
125125def _ (data : np .ndarray ):
126126 """
127127 Create input data prototype for a numpy array
@@ -156,11 +156,11 @@ def _item(value):
156156 dict_data = dict (enumerate (data [0 ], 0 ))
157157 # pydantic requires strings as indicies
158158 dict_data = {f"{ key } " : _item (value ) for key , value in dict_data .items ()}
159- ptype = create_model ( "ptype" , ** dict_data )
160- return ptype
159+ prototype = create_prototype ( ** dict_data )
160+ return prototype
161161
162162
163- @vetiver_create_ptype .register
163+ @vetiver_create_prototype .register
164164def _ (data : dict ):
165165 """
166166 Create input data prototype for a dict
@@ -170,11 +170,11 @@ def _(data: dict):
170170 data : dict
171171 Dictionary
172172 """
173- return create_model ( "ptype" , ** data )
173+ return create_prototype ( ** data )
174174
175175
176- @vetiver_create_ptype .register
177- def _ (data : BaseModel ):
176+ @vetiver_create_prototype .register
177+ def _ (data : pydantic . BaseModel ):
178178 """
179179 Create input data prototype for a pydantic BaseModel object
180180
@@ -186,7 +186,7 @@ def _(data: BaseModel):
186186 return data
187187
188188
189- @vetiver_create_ptype .register
189+ @vetiver_create_prototype .register
190190def _ (data : NoneType ):
191191 """
192192 Create input data prototype for None
0 commit comments