Skip to content

Commit 7927db9

Browse files
committed
experiment with get_board_pkgs
1 parent 53e9000 commit 7927db9

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

vetiver/pin_read_write.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from .utils import inform
44
import warnings
55
import logging
6+
from typing import List
67

78
_log = logging.getLogger(__name__)
89

@@ -112,3 +113,36 @@ def vetiver_pin_read(board, name: str, version: str = None) -> VetiverModel:
112113
v = VetiverModel.from_pin(board=board, name=name, version=version)
113114

114115
return v
116+
117+
118+
def get_board_pkgs(board) -> List[str]:
119+
"""
120+
Extract packages required for pin board authorization
121+
122+
Parameters
123+
----------
124+
board:
125+
A pin board, created by `pins.board_folder()` or another `board_` function.
126+
127+
Returns
128+
--------
129+
list[str]
130+
"""
131+
prot = board.fs.protocol
132+
133+
if prot == "rsc":
134+
return ["rsconnect-python"]
135+
elif prot == "file":
136+
return []
137+
elif prot == ["s3", "s3a"]:
138+
return ["s3fs"]
139+
elif prot == "abfs":
140+
return ["adlfs"]
141+
elif prot == ("gcs", "gs"):
142+
return ["gcsfs"]
143+
else:
144+
warnings.warn(
145+
f"required packages unknown for protocol: {prot}, "
146+
"add to model's metadata to ensure they are exported"
147+
)
148+
return []

0 commit comments

Comments
 (0)