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)
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
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)
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
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)
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)
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)