Skip to content

Commit

Permalink
zip only on demand
Browse files Browse the repository at this point in the history
  • Loading branch information
t0mdavid-m committed Apr 13, 2024
1 parent 8792902 commit cacedd5
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 40 deletions.
47 changes: 23 additions & 24 deletions pages/FLASHDeconvDownload.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import streamlit as st

from os.path import join, exists, dirname, isfile
from os.path import join, exists, dirname, isfile, basename
from os import listdir

from src.common import page_setup
Expand All @@ -16,10 +16,7 @@ def content():

if exists(dirpath):
directories = sorted(
[
entry for entry in listdir(dirpath)
if isfile(join(dirpath, entry, 'output.zip'))
]
[entry for entry in listdir(dirpath) if not isfile(entry)]
)
else:
directories = []
Expand All @@ -33,31 +30,33 @@ def content():
columns[0].write('**Run**')
columns[1].write('**Download**')

# if 'FLASHDeconvButtons' not in st.session_state:
# all_buttons = {}
# for directory in directories:
# all_buttons[directory] = False
# st.session_state['FLASHDeconvButtons'] = all_buttons

# Table Body
for i, directory in enumerate(directories):
st.divider()
columns = st.columns((0.4, 0.6))
columns[0].empty().write(directory)
button_placeholder = columns[1].empty()

# if st.session_state['FLASHDeconvButtons'][directory]:


clicked = button_placeholder.button('Prepare Download', key=i)
if clicked:
button_placeholder.empty()
with st.spinner():
with open(join(dirpath, directory, 'output.zip'), 'rb') as f:
button_placeholder.download_button(
"Download ⬇️", f,
file_name = f'{directory}.zip'
)
with columns[1]:
button_placeholder = st.empty()

clicked = button_placeholder.button('Prepare Download', key=i)
if clicked:
button_placeholder.empty()
with st.spinner():
out_zip = join(dirpath, directory, 'output.zip')
if not exists(out_zip):
with ZipFile(out_zip, 'w', ZIP_DEFLATED) as zip_file:
for output in listdir(join(dirpath, directory)):
try:
with open(join(dirpath, directory, output), 'r') as f:
zip_file.writestr(basename(output), f.read())
except:
continue
with open(out_zip, 'rb') as f:
button_placeholder.download_button(
"Download ⬇️", f,
file_name = f'{directory}.zip'
)

if __name__ == "__main__":
content()
16 changes: 0 additions & 16 deletions src/Workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -389,19 +389,3 @@ def execution(self) -> None:
'out_feature2' : [out_feature2],
}
)

self.logger.log(f"Creating zip file for {file_name}...")

out_zip = join(folder_path, 'output.zip')
with ZipFile(out_zip, 'w', ZIP_DEFLATED) as zip_file:
for output in all_outputs:

if not exists(output):
continue

with open(output, 'r') as f:
zip_file.writestr(basename(output), f.read())

def pp(self) -> None:
if 'FLASHDeconvButtons' in st.session_state:
del st.session_state['FLASHDeconvButtons']

0 comments on commit cacedd5

Please sign in to comment.