コード例 #1
0
def make_request(connection, email_address, galaxy_ids, features, layers, pixel_types):
    """
    Makes a request in the database for the provided galaxies.
    :param connection: The database connection
    :param email_address: The email address requesting the galaxies
    :param galaxy_ids: The database IDs of the galaxies
    :param features: The features of the galaxies to request
    :param layers: The layers of the galaxies to request
    :param pixel_types: The pixel types of the galaxies to request
    :return:
    """

    # Make some new DB entries for these galaxies
    transaction = connection.begin()

    try:

        LOG.info("Making HDF5_REQUEST entry...")
        result = connection.execute(HDF5_REQUEST.insert(), profile_id=0, email=email_address,
                                    created_at=datetime.datetime.utcnow())

        LOG.info("Making features, layers, pixel types entries...")
        insert_features_layers_pixel_types_db_ids(connection, result.inserted_primary_key, features, layers, pixel_types)

        LOG.info("Making galaxy entries...")
        for galaxy in galaxy_ids:
            # We already checked to ensure these are valid, so throw em in.
            connection.execute(HDF5_REQUEST_GALAXY.insert(), hdf5_request_id=result.inserted_primary_key,
                               galaxy_id=galaxy)

        transaction.commit()
    except:
        transaction.rollback()
        raise
コード例 #2
0
def make_request(connection, email_address, galaxy_ids, features, layers,
                 pixel_types):
    """
    Makes a request in the database for the provided galaxies.
    :param connection: The database connection
    :param email_address: The email address requesting the galaxies
    :param galaxy_ids: The database IDs of the galaxies
    :param features: The features of the galaxies to request
    :param layers: The layers of the galaxies to request
    :param pixel_types: The pixel types of the galaxies to request
    :return:
    """

    # Make some new DB entries for these galaxies
    transaction = connection.begin()

    try:

        LOG.info("Making HDF5_REQUEST entry...")
        result = connection.execute(HDF5_REQUEST.insert(),
                                    profile_id=0,
                                    email=email_address,
                                    created_at=datetime.datetime.utcnow())

        LOG.info("Making features, layers, pixel types entries...")
        insert_features_layers_pixel_types_db_ids(connection,
                                                  result.inserted_primary_key,
                                                  features, layers,
                                                  pixel_types)

        LOG.info("Making galaxy entries...")
        for galaxy in galaxy_ids:
            # We already checked to ensure these are valid, so throw em in.
            connection.execute(HDF5_REQUEST_GALAXY.insert(),
                               hdf5_request_id=result.inserted_primary_key,
                               galaxy_id=galaxy)

        transaction.commit()
    except:
        transaction.rollback()
        raise
コード例 #3
0
features, layers, pixel_types = get_features_and_layers_pixeltypes_cmd_line(
    args)
if len(features) == 0 or len(layers) == 0:
    parser.print_help()
    exit(1)

# Create a new request
# Need to make:
# HDF5_request
# HDF5_request_feature
# HDF5_request_galaxy
# HDF5_request_layer
# HDF5_request_pixel
transaction = connection.begin()
result = connection.execute(HDF5_REQUEST.insert(),
                            profile_id=47016,
                            email=args['email'],
                            created_at=time.time())

connection.execute(HDF5_REQUEST_GALAXY.insert(),
                   hdf5_request_id=result.inserted_primary_key,
                   galaxy_id=args['galaxy_id'])

for pixel_type in pixel_types:
    connection.execute(HDF5_REQUEST_PIXEL_TYPE.insert(),
                       hdf5_request_id=result.inserted_primary_key,
                       hdf5_pixel_type_id=pixel_type +
                       1)  # database entries start at 1

for layer in layers:
コード例 #4
0
connection = engine.connect()

features, layers, pixel_types = get_features_and_layers_pixeltypes_cmd_line(args)
if len(features) == 0 or len(layers) == 0:
    parser.print_help()
    exit(1)

# Create a new request
# Need to make:
# HDF5_request
# HDF5_request_feature
# HDF5_request_galaxy
# HDF5_request_layer
# HDF5_request_pixel
transaction = connection.begin()
result = connection.execute(HDF5_REQUEST.insert(), profile_id=47016, email=args['email'], created_at=time.time())

connection.execute(HDF5_REQUEST_GALAXY.insert(), hdf5_request_id=result.inserted_primary_key, galaxy_id=args['galaxy_id'])

for pixel_type in pixel_types:
    connection.execute(HDF5_REQUEST_PIXEL_TYPE.insert(), hdf5_request_id=result.inserted_primary_key, hdf5_pixel_type_id=pixel_type+1) # database entries start at 1

for layer in layers:
    connection.execute(HDF5_REQUEST_LAYER.insert(), hdf5_request_id=result.inserted_primary_key, hdf5_layer_id=LAYERS[layer]+1)

for feature in features:
    connection.execute(HDF5_REQUEST_FEATURE.insert(), hdf5_request_id=result.inserted_primary_key, hdf5_feature_id=FEATURES[feature]+1)
transaction.commit()
LOG.info('All done')
connection.close()