I am trying to use the pipeline to:
- Stage 1: Select a
user
from a dropdown menuusers_sel
. - Stage 2: Use the
user
selected toglob.glob(f'/users/{user}')
and update the objects available in infiles_sel
- Stage 3: Download selected file.
Can’t seem to get from Stage 1 to Stage 2 though. Any ideas appreciated!
import glob
class Stage1(param.Parameterized):
users_sel = param.ObjectSelector(
default='abc', objects=['abc', 'def', 'ghi'])
@param.output(param.String)
def user(self):
return self.users_sel
@param.depends('users_sel')
def view(self):
return pn.widgets.TextInput(value=self.users_sel)
def panel(self):
return pn.Row(self.param, self.view)
class Stage2(param.Parameterized):
user = param.String()
files_sel = param.ObjectSelector()
@param.output(param.List)
def file(self):
return self.users
@param.depends('user')
def view(self):
self.files_sel.objects = glob.glob('/users/{user}/*')
return pn.widgets.TextInput(value=", ".join(self.files_sel))
def panel(self):
return pn.Row(self.param, self.view)
pipeline = pn.pipeline.Pipeline(
stages=[('User Input', Stage1), ('Files Input', Stage2)],
debug=True
)
pipeline