Skip to content

Commit 35c2bfb

Browse files
committed
don't return python version if None is supplied
1 parent 7a2eaf8 commit 35c2bfb

3 files changed

Lines changed: 37 additions & 3 deletions

File tree

vetiver/meta.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,14 @@ def from_dict(cls, metadata, pip_name=None) -> "VetiverMeta":
2626
user = metadata.get("user", metadata)
2727
version = metadata.get("version", None)
2828
url = metadata.get("url", None)
29-
required_pkgs = metadata.get("required_pkgs", [])
30-
python_version = tuple(metadata.get("python_version", sys.version_info))
29+
# give correct value if key doesnt exist or if value is None
30+
required_pkgs = (
31+
[]
32+
if not metadata.get("required_pkgs")
33+
else metadata.get("required_pkgs", [])
34+
)
35+
python_version = metadata.get("python_version", sys.version_info)
36+
python_version = python_version if not python_version else tuple(python_version)
3137

3238
if pip_name:
3339
if not list(filter(lambda x: pip_name in x, required_pkgs)):

vetiver/pin_read_write.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ def vetiver_pin_write(board, model: VetiverModel, versioned: bool = True):
7070
"vetiver_meta": {
7171
"required_pkgs": model.metadata.required_pkgs,
7272
"prototype": None if not model.prototype else model.prototype().json(),
73-
"python_version": list(model.metadata.python_version),
73+
"python_version": None
74+
if not model.metadata.python_version
75+
else list(model.metadata.python_version),
7476
},
7577
},
7678
versioned=versioned,

vetiver/tests/test_build_vetiver_model.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,3 +177,29 @@ def test_vetiver_model_from_pin_user_metadata():
177177
assert v2.metadata.python_version == tuple(custom_meta["python_version"])
178178

179179
board.pin_delete("model")
180+
181+
182+
def test_vetiver_model_from_pin_no_version():
183+
"""
184+
Test if standard keys as part of :dataclass:`VetiverMeta` are picked
185+
"""
186+
custom_meta = {
187+
"required_pkgs": None,
188+
"python_version": None,
189+
}
190+
191+
v = vt.VetiverModel(
192+
model=model,
193+
prototype_data=X_df,
194+
model_name="model",
195+
metadata=custom_meta,
196+
)
197+
198+
board = pins.board_temp(allow_pickle_read=True)
199+
vt.vetiver_pin_write(board=board, model=v)
200+
v2 = vt.VetiverModel.from_pin(board, "model")
201+
202+
assert v2.metadata.required_pkgs == ["scikit-learn"]
203+
assert v2.metadata.python_version is None
204+
205+
board.pin_delete("model")

0 commit comments

Comments
 (0)