comparison COBRAxy/custom_data_generator.py @ 377:f4b83b3a3486 draft

Uploaded
author francesco_lapi
date Fri, 05 Sep 2025 06:16:00 +0000
parents 130043620f8d
children 0a3ca20848f3
comparison
equal deleted inserted replaced
376:a4db8d63dd98 377:f4b83b3a3486
190 writer.writeheader() 190 writer.writeheader()
191 191
192 for key, value in data.items(): 192 for key, value in data.items():
193 writer.writerow({ fieldNames[0] : key, fieldNames[1] : value }) 193 writer.writerow({ fieldNames[0] : key, fieldNames[1] : value })
194 194
195 def save_as_tabular_df(df: pd.DataFrame, path: str) -> None:
196 try:
197 os.makedirs(os.path.dirname(path) or ".", exist_ok=True)
198 df.to_csv(path, sep="\t", index=False)
199 except Exception as e:
200 raise utils.DataErr(path, f"failed writing tabular output: {e}")
201
202 def save_as_xlsx_df(df: pd.DataFrame, path: str) -> None:
203 try:
204 if not path.lower().endswith(".xlsx"):
205 path += ".xlsx"
206 os.makedirs(os.path.dirname(path) or ".", exist_ok=True)
207 df.to_excel(path, index=False)
208 except Exception as e:
209 raise utils.DataErr(path, f"failed writing xlsx output: {e}")
210
195 ###############################- ENTRY POINT -################################ 211 ###############################- ENTRY POINT -################################
196 def main(args:List[str] = None) -> None: 212 def main(args:List[str] = None) -> None:
197 """ 213 """
198 Initializes everything and sets the program in motion based on the fronted input arguments. 214 Initializes everything and sets the program in motion based on the fronted input arguments.
199 215
257 #merged.to_csv(out_file, sep = '\t', index = False) 273 #merged.to_csv(out_file, sep = '\t', index = False)
258 274
259 275
260 #### 276 ####
261 277
278 # write only the requested output
262 if ARGS.output_format == "xlsx": 279 if ARGS.output_format == "xlsx":
263 if not ARGS.out_xlsx: 280 if not ARGS.out_xlsx:
264 raise utils.ArgsErr("out_xlsx", "output path (--out_xlsx) is required when output_format == xlsx", ARGS.out_xlsx) 281 raise utils.ArgsErr("out_xlsx", "output path (--out_xlsx) is required when output_format == xlsx", ARGS.out_xlsx)
265 if not ARGS.out_xlsx.lower().endswith(".xlsx"): 282 save_as_xlsx_df(merged, ARGS.out_xlsx)
266 ARGS.out_xlsx += ".xlsx" 283 expected = ARGS.out_xlsx
267 merged.to_excel(ARGS.out_xlsx, index=False, sheet_name='Sheet_name_1')
268 else: 284 else:
269 if not ARGS.out_tabular: 285 if not ARGS.out_tabular:
270 raise utils.ArgsErr("out_tabular", "output path (--out_tabular) is required when output_format == tabular", ARGS.out_tabular) 286 raise utils.ArgsErr("out_tabular", "output path (--out_tabular) is required when output_format == tabular", ARGS.out_tabular)
271 merged.to_csv(ARGS.out_tabular, sep="\t", index=False) 287 save_as_tabular_df(merged, ARGS.out_tabular)
288 expected = ARGS.out_tabular
289
290 # verify output exists and non-empty
291 if not expected or not os.path.exists(expected) or os.path.getsize(expected) == 0:
292 raise utils.DataErr(expected, "Output non creato o vuoto")
272 293
273 print("CustomDataGenerator: completed successfully") 294 print("CustomDataGenerator: completed successfully")
274 295
275 if __name__ == '__main__': 296 if __name__ == '__main__':
276 main() 297 main()