Пример #1
0
def create_ConPlot(plot_click, refresh_click, factor, contact_marker_size,
                   track_marker_size, track_separation, track_selection,
                   cmap_selection, transparent, superimpose, distance_matrix,
                   verbose_labels, selected_palettes, session_id):
    trigger = dash.callback_context.triggered[0]
    cache = keydb.KeyDB(connection_pool=keydb_pool)

    if not callback_utils.ensure_triggered(trigger):
        return no_update, None, no_update, no_update
    elif session_utils.is_expired_session(session_id, cache, app.logger):
        return components.PlotPlaceHolder(), components.SessionTimedOutModal(
        ), components.DisplayControlCard(), True

    app.logger.info('Session {} plot requested'.format(session_id))

    if any([
            True for x in (factor, contact_marker_size, track_marker_size,
                           track_separation) if x is None or x < 0
    ]):
        app.logger.info(
            'Session {} invalid display control value detected'.format(
                session_id))
        return no_update, components.InvalidInputModal(), no_update, no_update
    elif superimpose and ('--- Empty ---' in cmap_selection
                          or len(set(cmap_selection)) == 1):
        return no_update, components.InvalidMapSelectionModal(
        ), no_update, no_update

    app.logger.info('Session {} creating conplot'.format(session_id))
    return plot_utils.create_ConPlot(
        session_id, cache, trigger, track_selection, cmap_selection,
        selected_palettes, factor, contact_marker_size, track_marker_size,
        track_separation, transparent, superimpose, distance_matrix,
        verbose_labels)
Пример #2
0
def remove_dataset(alerts_open, session_id):
    trigger = dash.callback_context.triggered[-1]
    cache = keydb.KeyDB(connection_pool=keydb_pool)

    if not callback_utils.ensure_triggered(trigger):
        return None
    elif session_utils.is_expired_session(session_id, cache, app.logger):
        return components.SessionTimedOutModal()

    data_utils.remove_dataset(trigger, cache, session_id, app.logger)

    return None
Пример #3
0
def create_user(n_clicks, username, password, email, session_id):
    trigger = dash.callback_context.triggered[0]
    cache = keydb.KeyDB(connection_pool=keydb_pool)

    if session_utils.is_expired_session(session_id, cache, app.logger):
        return no_update, components.SessionTimedOutModal(
        ), no_update, no_update, no_update, no_update
    elif not callback_utils.ensure_triggered(trigger):
        return no_update, no_update, no_update, no_update, no_update, no_update

    return app_utils.create_user(username, password, email, session_id, cache,
                                 app.logger)
Пример #4
0
def submit_contact_form(n_clicks, name, email, subject, description,
                        session_id):
    trigger = dash.callback_context.triggered[0]
    cache = keydb.KeyDB(connection_pool=keydb_pool)

    if session_utils.is_expired_session(session_id, cache, app.logger):
        return components.SessionTimedOutModal(), None, None, None, None
    elif not callback_utils.ensure_triggered(trigger):
        return no_update, no_update, no_update, no_update, no_update

    return callback_utils.submit_form(name, email, subject, description,
                                      app.logger), None, None, None, None
Пример #5
0
def upload_additional_track(fname, fcontent, input_format, fname_alerts,
                            session_id):
    trigger = dash.callback_context.triggered[0]
    cache = keydb.KeyDB(connection_pool=keydb_pool)

    if session_utils.is_expired_session(session_id, cache, app.logger):
        return no_update, None, components.SessionTimedOutModal()
    elif not callback_utils.ensure_triggered(trigger):
        return callback_utils.retrieve_additional_fnames(session_id,
                                                         cache), None, None

    return data_utils.upload_dataset(fname, fcontent, input_format,
                                     fname_alerts, session_id, cache,
                                     app.logger)
Пример #6
0
def upload_sequence(fname, fcontent, session_id):
    trigger = dash.callback_context.triggered[0]
    cache = keydb.KeyDB(connection_pool=keydb_pool)

    if session_utils.is_expired_session(session_id, cache, app.logger):
        return no_update, None, components.SessionTimedOutModal()
    elif not callback_utils.ensure_triggered(trigger):
        return callback_utils.retrieve_sequence_fname(session_id,
                                                      cache), None, None
    elif not cache_utils.is_valid_fname(fname):
        return no_update, no_update, components.InvalidFnameModal(fname)

    return data_utils.upload_sequence(fname, fcontent, session_id, cache,
                                      app.logger)
Пример #7
0
def upload_contact(fname, fcontent, input_format, fname_alerts, session_id):
    trigger = dash.callback_context.triggered[0]
    cache = keydb.KeyDB(connection_pool=keydb_pool)

    if session_utils.is_expired_session(session_id, cache, app.logger):
        return no_update, None, components.SessionTimedOutModal()
    elif not callback_utils.ensure_triggered(trigger):
        return callback_utils.retrieve_contact_fnames(session_id,
                                                      cache), None, None
    elif not cache_utils.is_valid_fname(fname):
        return no_update, no_update, components.InvalidFnameModal(fname)

    return data_utils.upload_dataset(
        fname,
        fcontent,
        input_format,
        fname_alerts,
        session_id,
        cache,
        app.logger,
        dataset=loaders.DatasetReference.CONTACT_MAP.value)