1212
1313class LinkPrinting (_m .Tool ()):
1414 results_path = _m .Attribute (str )
15+ scenarios = _m .Attribute (list )
1516
1617 def __init__ (self ):
1718 """Tool with click-button that can be imported in the Modeller GUI.
@@ -23,9 +24,12 @@ def __init__(self):
2324 def page (self ):
2425 pb = _m .ToolPageBuilder (self )
2526 pb .title = "Print link attributes to file"
27+ pb .add_select_scenario (tool_attribute_name = "scenarios" ,
28+ title = "Scenarios:" ,
29+ note = "Scenario selection for link printing." )
2630 pb .add_select_file (
2731 "results_path" , "directory" , file_filter = "" , start_path = "" ,
28- title = "Directory to save file in:" )
32+ title = "Directory to save file(s) in:" )
2933 if self .tool_run_msg :
3034 pb .add_html (self .tool_run_msg )
3135 return pb .render ()
@@ -36,12 +40,16 @@ def run(self):
3640 def __call__ (self ):
3741 """Print link attributes for current scenario.
3842 """
39- scen = _m .Modeller ().scenario
40- print_links (scen .get_network (), ResultsData (self .results_path ))
41- msg = "Link attributes for scenario {} printed to links.txt!" .format (
42- scen .id )
43+ if self .scenarios == []:
44+ self .scenarios .append (_m .Modeller ().scenario )
45+ msg_strings = []
46+ for scen in self .scenarios :
47+ print_links (scen , ResultsData (self .results_path ))
48+ scen_msg = f"Link attributes for scenario { scen .id } printed to links_{ scen .id } .txt!"
49+ msg_strings .append (scen_msg )
50+ msg = ("<br>" ).join (msg_strings )
4351 self .write (msg )
44- self .tool_run_msg = _m .PageBuilder .format_info (msg )
52+ self .tool_run_msg = _m .PageBuilder .format_info (msg , escape = False )
4553
4654 def write (self , message ):
4755 _m .logbook_write (message )
0 commit comments