Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
galaxy.webapps.base package¶
Submodules¶
galaxy.webapps.base.controller module¶
Contains functionality needed in every web interface
-
class
galaxy.webapps.base.controller.
BaseController
(app)[source]¶ Bases:
object
Base class for Galaxy web application controllers.
-
get_class
(class_name)[source]¶ Returns the class object that a string denotes. Without this method, we’d have to do eval(<class_name>).
-
get_object
(trans, id, class_name, check_ownership=False, check_accessible=False, deleted=None)[source]¶ Convenience method to get a model object with the specified checks.
-
encode_all_ids
(trans, rval, recursive=False)[source]¶ Encodes all integer values in the dict rval whose keys are ‘id’ or end with ‘_id’
It might be useful to turn this in to a decorator
-
-
galaxy.webapps.base.controller.
Root
¶
-
class
galaxy.webapps.base.controller.
BaseUIController
(app)[source]¶
-
class
galaxy.webapps.base.controller.
BaseAPIController
(app)[source]¶ Bases:
galaxy.webapps.base.controller.BaseController
-
get_object
(trans, id, class_name, check_ownership=False, check_accessible=False, deleted=None)[source]¶ Convenience method to get a model object with the specified checks.
-
-
class
galaxy.webapps.base.controller.
JSAppLauncher
(app)[source]¶ Bases:
galaxy.webapps.base.controller.BaseUIController
A controller that launches JavaScript web applications.
-
JS_APP_MAKO_FILEPATH
= '/js-app.mako'¶ path to js app template
-
DEFAULT_ENTRY_FN
= 'app'¶ window-scoped js function to call to start the app (will be passed options, bootstrapped)
-
USER_BOOTSTRAP_KEYS
= ('id', 'email', 'username', 'is_admin', 'tags_used', 'total_disk_usage', 'nice_total_disk_usage', 'quota_percent', 'preferences')¶ keys used when serializing current user for bootstrapped data
-
client
(trans, **kwd)[source]¶ Endpoint for clientside routes. This ships the primary SPA client.
Should not be used with url_for – see (https://github.com/galaxyproject/galaxy/issues/1878) for why.
-
template
(trans, app_name: str, entry_fn: str = 'app', options=None, bootstrapped_data: Optional[dict] = None, masthead: Optional[bool] = True, **additional_options)[source]¶ Render and return the single page mako template that starts the app.
- Parameters
app_name – the first portion of the webpack bundle to as the app.
entry_fn – the name of the window-scope function that starts the app. Defaults to ‘app’.
bootstrapped_data – update containing any more data the app may need.
masthead – include masthead elements in the initial page dom.
additional_options – update to the options sent to the app.
-
-
class
galaxy.webapps.base.controller.
Datatype
(extension, dtype, type_extension, mimetype, display_in_upload)[source]¶ Bases:
object
Used for storing in-memory list of datatypes currently in the datatypes registry.
-
class
galaxy.webapps.base.controller.
CreatesApiKeysMixin
[source]¶ Bases:
object
Mixing centralizing logic for creating API keys for user objects.
Deprecated - please use api_keys.ApiKeyManager for new development.
-
class
galaxy.webapps.base.controller.
SharableItemSecurityMixin
[source]¶ Bases:
object
Mixin for handling security for sharable items.
-
class
galaxy.webapps.base.controller.
UsesLibraryMixinItems
[source]¶ Bases:
galaxy.webapps.base.controller.SharableItemSecurityMixin
-
get_library_dataset_dataset_association
(trans, id, check_ownership=False, check_accessible=True)[source]¶
-
-
class
galaxy.webapps.base.controller.
UsesVisualizationMixin
[source]¶ Bases:
galaxy.webapps.base.controller.UsesLibraryMixinItems
Mixin for controllers that use Visualization objects.
-
get_visualization
(trans, id, check_ownership=True, check_accessible=False)[source]¶ Get a Visualization from the database by id, verifying ownership.
-
get_visualizations_by_user
(trans, user, order_by=None, query_only=False)[source]¶ Return query or query results of visualizations filtered by a user.
Set order_by to a column or list of columns to change the order returned. Defaults to DEFAULT_ORDER_BY. Set query_only to return just the query for further filtering or processing.
Return query or query results for visualizations shared with the given user.
Set order_by to a column or list of columns to change the order returned. Defaults to DEFAULT_ORDER_BY. Set query_only to return just the query for further filtering or processing.
-
get_published_visualizations
(trans, exclude_user=None, order_by=None, query_only=False)[source]¶ Return query or query results for published visualizations optionally excluding the user in exclude_user.
Set order_by to a column or list of columns to change the order returned. Defaults to DEFAULT_ORDER_BY. Set query_only to return just the query for further filtering or processing.
-
get_visualization_summary_dict
(visualization)[source]¶ Return a set of summary attributes for a visualization in dictionary form. NOTE: that encoding ids isn’t done here should happen at the caller level.
-
get_visualization_dict
(visualization)[source]¶ Return a set of detailed attributes for a visualization in dictionary form. The visualization’s latest_revision is returned in its own sub-dictionary. NOTE: that encoding ids isn’t done here should happen at the caller level.
-
get_visualization_revision_dict
(revision)[source]¶ Return a set of detailed attributes for a visualization in dictionary form. NOTE: that encoding ids isn’t done here should happen at the caller level.
-
import_visualization
(trans, id, user=None)[source]¶ Copy the visualization with the given id and associate the copy with the given user (defaults to trans.user).
Raises ItemAccessibilityException if user is not passed and the current user is anonymous, and if the visualization is not importable. Raises ItemDeletionException if the visualization has been deleted.
-
create_visualization
(trans, type, title='Untitled Visualization', slug=None, dbkey=None, annotation=None, config=None, save=True)[source]¶ Create visualiation and first revision.
-
add_visualization_revision
(trans, visualization, config, title, dbkey)[source]¶ Adds a new VisualizationRevision to the given visualization with the given parameters and set its parent visualization’s latest_revision to the new revision.
-
save_visualization
(trans, config, type, id=None, title=None, dbkey=None, slug=None, annotation=None)[source]¶
-
get_visualization_config
(trans, visualization)[source]¶ Returns a visualization’s configuration. Only works for trackster visualizations right now.
-
-
class
galaxy.webapps.base.controller.
UsesStoredWorkflowMixin
[source]¶ Bases:
galaxy.webapps.base.controller.SharableItemSecurityMixin
,galaxy.model.item_attrs.UsesAnnotations
Mixin for controllers that use StoredWorkflow objects.
-
class
galaxy.webapps.base.controller.
UsesFormDefinitionsMixin
[source]¶ Bases:
object
Mixin for controllers that use Galaxy form objects.
-
class
galaxy.webapps.base.controller.
SharableMixin
[source]¶ Bases:
object
Mixin for a controller that manages an item that can be shared.
-
manager
= None¶
-
serializer
= None¶
-
create_item_slug
(sa_session, item)[source]¶ Create/set item slug. Slug is unique among user’s importable items for item’s class. Returns true if item’s slug was set/changed; false otherwise.
Handle sharing an item with a particular user.
-
-
class
galaxy.webapps.base.controller.
UsesTagsMixin
[source]¶ Bases:
galaxy.webapps.base.controller.SharableItemSecurityMixin
Return a list of distinct ‘user_tname:user_value’ strings that the given user has used.
user defaults to trans.user. Returns an empty list if no user is given and trans.user is anonymous.
-
class
galaxy.webapps.base.controller.
UsesExtendedMetadataMixin
[source]¶ Bases:
galaxy.webapps.base.controller.SharableItemSecurityMixin
Mixin for getting and setting item extended metadata.
-
get_item_extended_metadata_obj
(trans, item)[source]¶ Given an item object (such as a LibraryDatasetDatasetAssociation), find the object of the associated extended metadata
-
Bases:
Exception
Deprecated: BaseController used to be available under the name Root
galaxy.webapps.base.webapp module¶
-
class
galaxy.webapps.base.webapp.
WebApplication
(galaxy_app, session_cookie='galaxysession', name=None)[source]¶ Bases:
galaxy.web.framework.base.WebApplication
Base WSGI application instantiated for all Galaxy webapps.
A web application that:
adds API and UI controllers by scanning given directories and importing all modules found there.
has a security object.
builds mako template lookups.
generates GalaxyWebTransactions.
-
__init__
(galaxy_app, session_cookie='galaxysession', name=None)[source]¶ Create a new web application object. To actually connect some controllers use add_controller and add_route. Call finalize_config when all controllers and routes have been added and __call__ to handle a request (WSGI style).
-
handle_controller_exception
(e, trans, **kwargs)[source]¶ Allow handling of exceptions raised in controller methods.
-
class
galaxy.webapps.base.webapp.
GalaxyWebTransaction
(environ, app, webapp, session_cookie=None)[source]¶ Bases:
galaxy.web.framework.base.DefaultWebTransaction
,galaxy.managers.context.ProvidesAppContext
,galaxy.managers.context.ProvidesUserContext
,galaxy.managers.context.ProvidesHistoryContext
Encapsulates web transaction specific state for the Galaxy application (specifically the user’s “cookie” session and history)
-
__init__
(environ, app, webapp, session_cookie=None)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
set_cors_headers
()[source]¶ Allow CORS requests if configured to do so by echoing back the request’s ‘Origin’ header (if any) as the response header ‘Access-Control-Allow-Origin’
Preflight OPTIONS requests to the API work by routing all OPTIONS requests to a single method in the authenticate API (options method), setting CORS headers, and responding OK.
NOTE: raising some errors (such as httpexceptions), will remove the header (e.g. client will get both CORS error and 404 inside that)
-
property
user
¶ Return the current user if logged in or None.
Convenience method for getting a session cookie
Convenience method for setting a session cookie
-
get_or_create_remote_user
(remote_user_email)[source]¶ Create a remote user with the email remote_user_email and return it
-
handle_user_login
(user)[source]¶ - Login a new user (possibly newly created)
do some ‘system’ checks (if any) for this user
create a new session
associate new session with user
if old session had a history and it was not associated with a user, associate it with the new session, otherwise associate the current session’s history with the user
add the disk usage of the current session to the user’s total disk usage
-
handle_user_logout
(logout_all=False)[source]¶ - Logout the current user:
invalidate the current session
create a new session with no user associated
-
get_history
(create=False, most_recent=False)[source]¶ Load the current history.
If that isn’t available, we find the most recently updated history.
If that isn’t available, we get or create the default history.
Transactions will not always have an active history (API requests), so None is a valid response.
-
property
history
¶ Load the current history.
If that isn’t available, we find the most recently updated history.
If that isn’t available, we get or create the default history.
Transactions will not always have an active history (API requests), so None is a valid response.
-
get_or_create_default_history
()[source]¶ Gets or creates a default history and associates it with the current session.
-
new_history
(name=None)[source]¶ Create a new history and associate it with the current session and its associated user (if set).
-
template_context
¶ Property that replaces itself with a calculated value the first time it is used.
-
set_message
(message, type=None)[source]¶ Convenience method for setting the ‘message’ and ‘message_type’ element of the template context.
-
get_message
()[source]¶ Convenience method for getting the ‘message’ element of the template context.
-
show_message
(message, type='info', refresh_frames=None, cont=None, use_panels=False, active_view='')[source]¶ Convenience method for displaying a simple page with a single message.
- type: one of “error”, “warning”, “info”, or “done”; determines the
type of dialog box and icon displayed with the message
- refresh_frames: names of frames in the interface that should be
refreshed when the message is displayed
-
show_error_message
(message, refresh_frames=None, use_panels=False, active_view='')[source]¶ Convenience method for displaying an error message. See show_message.
-
show_ok_message
(message, refresh_frames=None, use_panels=False, active_view='')[source]¶ Convenience method for displaying an ok message. See show_message.
-
show_warn_message
(message, refresh_frames=None, use_panels=False, active_view='')[source]¶ Convenience method for displaying an warn message. See show_message.
-
property
session_csrf_token
¶
-