comparison COBRAxy/ras_generator.py @ 401:6c7ddf68381a draft

Uploaded
author francesco_lapi
date Sun, 07 Sep 2025 20:29:23 +0000
parents e94735cb40fa
children ccccb731c953
comparison
equal deleted inserted replaced
400:e94735cb40fa 401:6c7ddf68381a
645 # filenamePath = None 645 # filenamePath = None
646 646
647 #if filenamePath.ext is utils.FileFormat.PICKLE: return utils.readPickle(datFilePath) 647 #if filenamePath.ext is utils.FileFormat.PICKLE: return utils.readPickle(datFilePath)
648 648
649 dict_rule = {} 649 dict_rule = {}
650 for line in utils.readCsv(datFilePath, delimiter = "\t"): 650
651 if line[2] == "": 651 try:
652 dict_rule[line[0]] = ruleUtils.OpList([""]) 652 # Proviamo prima con delimitatore tab
653 else: 653 for line in utils.readCsv(datFilePath, delimiter = "\t"):
654 dict_rule[line[0]] = ruleUtils.parseRuleToNestedList(line[2]) 654 if len(line) < 3: # Controlliamo che ci siano almeno 3 colonne
655 655 utils.logWarning(f"Skipping malformed line: {line}", ARGS.out_log)
656 continue
657
658 if line[2] == "":
659 dict_rule[line[0]] = ruleUtils.OpList([""])
660 else:
661 dict_rule[line[0]] = ruleUtils.parseRuleToNestedList(line[2])
662
663 except Exception as e:
664 # Se fallisce con tab, proviamo con virgola
665 try:
666 dict_rule = {}
667 for line in utils.readCsv(datFilePath, delimiter = ","):
668 if len(line) < 3:
669 utils.logWarning(f"Skipping malformed line: {line}", ARGS.out_log)
670 continue
671
672 if line[2] == "":
673 dict_rule[line[0]] = ruleUtils.OpList([""])
674 else:
675 dict_rule[line[0]] = ruleUtils.parseRuleToNestedList(line[2])
676 except Exception as e2:
677 raise ValueError(f"Unable to parse rules file. Tried both tab and comma delimiters. Original errors: Tab: {e}, Comma: {e2}")
678
679 if not dict_rule:
680 raise ValueError("No valid rules found in the uploaded file. Please check the file format.")
656 # csv rules need to be parsed, those in a pickle format are taken to be pre-parsed. 681 # csv rules need to be parsed, those in a pickle format are taken to be pre-parsed.
657 return dict_rule 682 return dict_rule
683
658 684
659 def main(args:List[str] = None) -> None: 685 def main(args:List[str] = None) -> None:
660 """ 686 """
661 Initializes everything and sets the program in motion based on the fronted input arguments. 687 Initializes everything and sets the program in motion based on the fronted input arguments.
662 688