Mercurial > repos > bimib > cobraxy
comparison COBRAxy/marea.py @ 146:88cf4543e210 draft
Uploaded
author | bimib |
---|---|
date | Wed, 06 Nov 2024 10:12:52 +0000 |
parents | 0f5564819296 |
children | 3fca9b568faf |
comparison
equal
deleted
inserted
replaced
145:0f5564819296 | 146:88cf4543e210 |
---|---|
18 import copy | 18 import copy |
19 | 19 |
20 ERRORS = [] | 20 ERRORS = [] |
21 ########################## argparse ########################################## | 21 ########################## argparse ########################################## |
22 ARGS :argparse.Namespace | 22 ARGS :argparse.Namespace |
23 def process_args() -> argparse.Namespace: | 23 def process_args(args=None) -> argparse.Namespace: |
24 """ | 24 """ |
25 Interfaces the script of a module with its frontend, making the user's choices for various parameters available as values in code. | 25 Interfaces the script of a module with its frontend, making the user's choices for various parameters available as values in code. |
26 | 26 |
27 Args: | 27 Args: |
28 args : Always obtained (in file) from sys.argv | 28 args : Always obtained (in file) from sys.argv |
145 '-cm', '--custom_map', | 145 '-cm', '--custom_map', |
146 type = str, | 146 type = str, |
147 help='custom map to use') | 147 help='custom map to use') |
148 | 148 |
149 parser.add_argument( | 149 parser.add_argument( |
150 '-idop', '--output_path', | |
151 type = str, | |
152 default='result', | |
153 help = 'output path for maps') | |
154 | |
155 parser.add_argument( | |
150 '-mc', '--choice_map', | 156 '-mc', '--choice_map', |
151 type = utils.Model, default = utils.Model.HMRcore, | 157 type = utils.Model, default = utils.Model.HMRcore, |
152 choices = [utils.Model.HMRcore, utils.Model.ENGRO2, utils.Model.Custom]) | 158 choices = [utils.Model.HMRcore, utils.Model.ENGRO2, utils.Model.Custom]) |
153 | 159 |
154 args :argparse.Namespace = parser.parse_args() | 160 args :argparse.Namespace = parser.parse_args(args) |
155 if args.using_RAS and not args.using_RPS: args.net = False | 161 if args.using_RAS and not args.using_RPS: args.net = False |
156 | 162 |
157 return args | 163 return args |
158 | 164 |
159 ############################ dataset input #################################### | 165 ############################ dataset input #################################### |
649 f"{dataset1Name}_vs_{dataset2Name}" + (f" ({details})" if details else ""), | 655 f"{dataset1Name}_vs_{dataset2Name}" + (f" ({details})" if details else ""), |
650 # ^^^ yes this string is built every time even if the form is the same for the same 2 datasets in | 656 # ^^^ yes this string is built every time even if the form is the same for the same 2 datasets in |
651 # all output files: I don't care, this was never the performance bottleneck of the tool and | 657 # all output files: I don't care, this was never the performance bottleneck of the tool and |
652 # there is no other net gain in saving and re-using the built string. | 658 # there is no other net gain in saving and re-using the built string. |
653 ext, | 659 ext, |
654 prefix = "result") | 660 prefix = ARGS.output_path) |
655 | 661 |
656 FIELD_NOT_AVAILABLE = '/' | 662 FIELD_NOT_AVAILABLE = '/' |
657 def writeToCsv(rows: List[list], fieldNames :List[str], outPath :utils.FilePath) -> None: | 663 def writeToCsv(rows: List[list], fieldNames :List[str], outPath :utils.FilePath) -> None: |
658 fieldsAmt = len(fieldNames) | 664 fieldsAmt = len(fieldNames) |
659 with open(outPath.show(), "w", newline = "") as fd: | 665 with open(outPath.show(), "w", newline = "") as fd: |
863 | 869 |
864 dataset = dataset.drop(dataset.columns[0], axis = "columns").to_dict("list") | 870 dataset = dataset.drop(dataset.columns[0], axis = "columns").to_dict("list") |
865 return { id : list(map(utils.Float("Dataset values, not an argument"), values)) for id, values in dataset.items() }, IDs | 871 return { id : list(map(utils.Float("Dataset values, not an argument"), values)) for id, values in dataset.items() }, IDs |
866 | 872 |
867 ############################ MAIN ############################################# | 873 ############################ MAIN ############################################# |
868 def main() -> None: | 874 def main(args=None) -> None: |
869 """ | 875 """ |
870 Initializes everything and sets the program in motion based on the fronted input arguments. | 876 Initializes everything and sets the program in motion based on the fronted input arguments. |
871 | 877 |
872 Returns: | 878 Returns: |
873 None | 879 None |
874 | 880 |
875 Raises: | 881 Raises: |
876 sys.exit : if a user-provided custom map is in the wrong format (ET.XMLSyntaxError, ET.XMLSchemaParseError) | 882 sys.exit : if a user-provided custom map is in the wrong format (ET.XMLSyntaxError, ET.XMLSchemaParseError) |
877 """ | 883 """ |
878 global ARGS | 884 global ARGS |
879 ARGS = process_args() | 885 ARGS = process_args(args) |
880 | 886 |
881 if not os.path.isdir('result'): | 887 if not os.path.isdir(ARGS.output_path): |
882 os.makedirs('result') | 888 os.makedirs(ARGS.output_path) |
883 | 889 |
884 core_map: ET.ElementTree = ARGS.choice_map.getMap( | 890 core_map: ET.ElementTree = ARGS.choice_map.getMap( |
885 ARGS.tool_dir, | 891 ARGS.tool_dir, |
886 utils.FilePath.fromStrPath(ARGS.custom_map) if ARGS.custom_map else None) | 892 utils.FilePath.fromStrPath(ARGS.custom_map) if ARGS.custom_map else None) |
887 | 893 |