Skip to content
Snippets Groups Projects

Data explorer

1 file
+ 34
13
Compare changes
  • Side-by-side
  • Inline
+ 34
13
@@ -37,10 +37,20 @@ class Interface:
"""Used to reset outputs with the clear button"""
return None
def update_root_path(self, new_path):
def update_explorer(self, new_path):
new_path = os.path.expanduser(new_path)
return gr.update(root=new_path, label=new_path)
# In case we have a directory
if os.path.isdir(new_path):
return gr.update(root=new_path, label=new_path)
elif os.path.isfile(new_path):
parent_dir = os.path.dirname(new_path)
file_name = str(os.path.basename(new_path))
return gr.update(root=parent_dir, label=parent_dir, value=file_name)
else:
raise ValueError("Invalid path")
def set_visible(self):
return gr.update(visible=True)
@@ -78,7 +88,7 @@ class Interface:
container=False,
label="Base path",
elem_classes="h-36",
value=os.path.expanduser("~"),
value=os.getcwd(),
)
with gr.Column(scale=1, min_width=36):
reload_base_path = gr.Button(
@@ -86,8 +96,8 @@ class Interface:
)
explorer = gr.FileExplorer(
glob="{*/,}{*.*}",
root=".",
label=os.getcwd(),
root=os.getcwd(),
label=None,
render=True,
file_count="single",
interactive=True,
@@ -170,6 +180,7 @@ class Interface:
# Inputs
inputs = [
operations,
base_path,
explorer,
zpos,
ypos,
@@ -193,7 +204,8 @@ class Interface:
### Listeners
# fmt: off
reload_base_path.click(fn=self.update_root_path,inputs=base_path, outputs=explorer)
reload_base_path.click(fn=self.update_explorer,inputs=base_path, outputs=explorer)
btn_run.click(
fn=self.set_spinner, inputs=[], outputs=btn_run).success(
fn=self.start_session, inputs=inputs, outputs=session).success(
@@ -232,13 +244,22 @@ class Interface:
session.root_path = os.path.expanduser("~")
session.interface = "gradio"
session.operations = args[0]
session.file_path = args[1]
session.zpos = args[2]
session.ypos = args[3]
session.xpos = args[4]
session.cmap = args[5]
session.dataset_name = args[6]
session.virtual_stack = args[7]
session.base_path = args[1]
session.explorer = args[2]
session.zpos = args[3]
session.ypos = args[4]
session.xpos = args[5]
session.cmap = args[6]
session.dataset_name = args[7]
session.virtual_stack = args[8]
# Get the file path from the explorer or base path
if session.base_path and os.path.isfile(session.base_path):
session.file_path = session.base_path
elif session.explorer and os.path.isfile(session.explorer):
session.file_path = session.explorer
else:
raise ValueError("Invalid file path")
return session
Loading