Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1from functools import partial 

2 

3import ipywidgets as widgets 

4from IPython.display import HTML, display 

5 

6from proteinsolver.dashboard.helper import save_sequences 

7from proteinsolver.dashboard.state import global_state 

8 

9 

10def create_download_button(output_folder): 

11 download_button = widgets.Button( 

12 description="Generate download link", 

13 tooltip="Generate download link", 

14 button_style="success", 

15 disabled=False, 

16 layout=widgets.Layout(width="auto"), 

17 ) 

18 

19 download_link_output = widgets.Output(layout=widgets.Layout(min_height="1.5rem")) 

20 

21 download_button.on_click( 

22 partial( 

23 generate_download_link, 

24 download_link_output=download_link_output, 

25 output_folder=output_folder, 

26 ) 

27 ) 

28 

29 return widgets.VBox([download_button, download_link_output]) 

30 

31 

32def generate_download_link(download_button, download_link_output, output_folder): 

33 download_button.description = "Generating..." 

34 download_button.icon = "running" 

35 download_button.button_style = "info" # 'success', 'info', 'warning', 'danger' or '' 

36 download_button.disabled = True 

37 

38 output_file = save_sequences(global_state.generated_sequences, output_folder) 

39 

40 download_link_output.clear_output(wait=True) 

41 with download_link_output: 

42 download_name = f"{output_file.stem[:8]}{output_file.suffix}" 

43 display( 

44 HTML( 

45 f'<a href="./voila/static/{output_file.name}" download{download_name}=>' 

46 f'<i class="fa fa-download"></i> Download sequences</a>' 

47 ) 

48 ) 

49 

50 download_button.description = "Update download link" 

51 download_button.icon = "" # check 

52 download_button.button_style = "success" 

53 download_button.disabled = False