def add_to_database(connection, galaxy): """ Adds the specified galaxies to the database :param connection: :param galaxy: :return: """ galaxy_name = galaxy['name'] redshift = galaxy['redshift'] galaxy_type = galaxy['type'] input_file = galaxy['input_file'] priority = galaxy['priority'] run_id = galaxy['run_id'] sigma_in = galaxy['sigma'] tags = galaxy['tags'] integrated = galaxy['int'] integrated_snr = galaxy['int_snr'] rad = galaxy['rad'] rad_snr = galaxy['rad_snr'] transaction = connection.begin() try: try: sigma = float(sigma_in) sigma_filename = None except ValueError: sigma = 0.0 sigma_filename = sigma_in result = connection.execute( REGISTER.insert(), galaxy_name=galaxy_name, redshift=redshift, galaxy_type=galaxy_type, filename=input_file, priority=priority, register_time=datetime.now(), run_id=run_id, sigma=sigma, sigma_filename=sigma_filename, int_filename=integrated, int_sigma_filename=integrated_snr, rad_filename=rad, rad_sigma_filename=rad_snr ) register_id = result.inserted_primary_key[0] # Get the tag ids tag_ids = set() for tag_text in tags: tag_text = tag_text.strip() if len(tag_text) > 0: tag = connection.execute(select([TAG]).where(TAG.c.tag_text == tag_text)).first() if tag is None: result = connection.execute( TAG.insert(), tag_text=tag_text ) tag_id = result.inserted_primary_key[0] else: tag_id = tag[TAG.c.tag_id] tag_ids.add(tag_id) # Add the tag ids for tag_id in tag_ids: connection.execute( TAG_REGISTER.insert(), tag_id=tag_id, register_id=register_id ) transaction.commit() LOG.info('Registered %s %s %f %s %d %d', galaxy_name, galaxy_type, redshift, input_file, priority, run_id) for tag_text in tags: LOG.info('Tag: {0}'.format(tag_text)) except Exception: transaction.rollback() raise
if not os.path.isfile(INPUT_FILE): LOG.error('The file %s does not exist', INPUT_FILE) exit(1) # Connect to the database - the login string is set in the database package ENGINE = create_engine(DB_LOGIN) connection = ENGINE.connect() transaction = connection.begin() # If it is a float store it as the sigma otherwise assume it is a string pointing to a file containing the sigmas try: sigma = float(SIGMA) sigma_filename = None except ValueError: sigma = 0.0 sigma_filename = SIGMA connection.execute(REGISTER.insert(), galaxy_name=GALAXY_NAME, redshift=REDSHIFT, galaxy_type=GALAXY_TYPE, filename=INPUT_FILE, priority=PRIORITY, register_time=datetime.now(), run_id=RUN_ID, sigma=sigma, sigma_filename=sigma_filename) transaction.commit() LOG.info('Registered %s %s %f %s %d %d', GALAXY_NAME, GALAXY_TYPE, REDSHIFT, INPUT_FILE, PRIORITY, RUN_ID)
exit(1) # Connect to the database - the login string is set in the database package ENGINE = create_engine(DB_LOGIN) connection = ENGINE.connect() transaction = connection.begin() # If it is a float store it as the sigma otherwise assume it is a string pointing to a file containing the sigmas try: sigma = float(SIGMA) sigma_filename = None except ValueError: sigma = 0.0 sigma_filename = SIGMA result = connection.execute(REGISTER.insert(), galaxy_name=GALAXY_NAME, redshift=REDSHIFT, galaxy_type=GALAXY_TYPE, filename=INPUT_FILE, priority=PRIORITY, register_time=datetime.now(), run_id=RUN_ID, sigma=sigma, sigma_filename=sigma_filename) register_id = result.inserted_primary_key[0] # Get the tag ids tag_ids = set() for tag_text in TAGS:
exit(1) # Connect to the database - the login string is set in the database package ENGINE = create_engine(DB_LOGIN) connection = ENGINE.connect() transaction = connection.begin() # If it is a float store it as the sigma otherwise assume it is a string pointing to a file containing the sigmas try: sigma = float(SIGMA) sigma_filename = None except ValueError: sigma = 0.0 sigma_filename = SIGMA connection.execute( REGISTER.insert(), galaxy_name=GALAXY_NAME, redshift=REDSHIFT, galaxy_type=GALAXY_TYPE, filename=INPUT_FILE, priority=PRIORITY, register_time=datetime.now(), run_id=RUN_ID, sigma=sigma, sigma_filename=sigma_filename, ) transaction.commit() LOG.info("Registered %s %s %f %s %d %d", GALAXY_NAME, GALAXY_TYPE, REDSHIFT, INPUT_FILE, PRIORITY, RUN_ID)