def source_factory(): db = isotope_db_factory(os.path.join(get_data_dir(), SRC_NAME)) p = os.path.join(get_data_dir(), 'irradiation_import.xls') # add a production ratio with db.session_ctx(): db.add_irradiation_production(name='Triga PR', K4039=10) loader = XLSIrradiationLoader(db=db) loader.open(p) loader.load_irradiation(p, dry_run=False) db.verbose = False with db.session_ctx(): dbirrads = db.get_irradiations(order_func='asc') irrads = [i.name for i in dbirrads] levels = {} for di in dbirrads: levels[di.name] = tuple([li.name for li in di.levels]) return db, irrads, levels