Coverage for lasso/dimred/run.py: 0%

28 statements  

« prev     ^ index     » next       coverage.py v7.2.4, created at 2023-04-28 18:42 +0100

1from rich.console import Console 

2from rich.theme import Theme 

3 

4from lasso.dimred.dimred_run import ( 

5 DIMRED_STAGES, 

6 DimredRun, 

7 DimredRunError, 

8 DimredStage, 

9 parse_dimred_args, 

10) 

11 

12 

13def main(): 

14 """Runs the dimensionality reduction CLI""" 

15 

16 # parse command line stuff 

17 parser = parse_dimred_args() 

18 log_theme = Theme( 

19 {"info": "royal_blue1", "success": "green", "warning": "dark_orange3", "error": "bold red"} 

20 ) 

21 console = Console(theme=log_theme, record=True, highlight=False) 

22 

23 try: 

24 # parse settings from command line 

25 dimred_run = DimredRun( 

26 reference_run=parser.reference_run, 

27 simulation_runs=parser.simulation_runs, 

28 console=console, 

29 exclude_runs=parser.exclude_runs, 

30 project_dir=parser.project_dir, 

31 html_name=parser.html_name, 

32 html_set_timestamp=parser.html_timestamp, 

33 img_path=parser.embedding_images, 

34 logfile_filepath=parser.logfile_filepath, 

35 n_processes=parser.n_processes, 

36 part_id_filter=parser.part_ids, 

37 start_stage=parser.start_stage, 

38 end_stage=parser.end_stage, 

39 timestep=parser.timestep, 

40 cluster_args=parser.cluster_args, 

41 outlier_args=parser.outlier_args, 

42 ) 

43 

44 # do the thing 

45 console.print() 

46 console.print(" ---- Running Routines ---- ") 

47 console.print() 

48 

49 # initiate threading pool for handling jobs 

50 with dimred_run: 

51 

52 # setup 

53 if ( 

54 dimred_run.start_stage_index 

55 <= DIMRED_STAGES.index(DimredStage.REFERENCE_RUN.value) 

56 <= dimred_run.end_stage_index 

57 ): 

58 dimred_run.process_reference_run() 

59 

60 # import 

61 if ( 

62 dimred_run.start_stage_index 

63 <= DIMRED_STAGES.index(DimredStage.IMPORT_RUNS.value) 

64 <= dimred_run.end_stage_index 

65 ): 

66 dimred_run.subsample_to_reference_run() 

67 

68 # math 

69 if ( 

70 dimred_run.start_stage_index 

71 <= DIMRED_STAGES.index(DimredStage.REDUCTION.value) 

72 <= dimred_run.end_stage_index 

73 ): 

74 dimred_run.dimension_reduction_svd() 

75 

76 # clustering 

77 if ( 

78 dimred_run.start_stage_index 

79 <= DIMRED_STAGES.index(DimredStage.CLUSTERING.value) 

80 <= dimred_run.end_stage_index 

81 ): 

82 dimred_run.clustering_results() 

83 

84 # export 

85 if ( 

86 dimred_run.start_stage_index 

87 <= DIMRED_STAGES.index(DimredStage.EXPORT_PLOT.value) 

88 <= dimred_run.end_stage_index 

89 ): 

90 dimred_run.visualize_results() 

91 

92 # print logfile 

93 console.save_html(dimred_run.logfile_filepath) 

94 

95 # Catch if DimredrunError was called 

96 except DimredRunError as err: 

97 print(err) 

98 

99 

100if __name__ == "__main__": 

101 main()