tool_shed.webapp package

The Galaxy Tool Shed application.

tool_shed.webapp.url_for(*args, **kwargs) str

Tries to resolve the URL using the routes module.

This only works in a WSGI app so a deprecation message is returned when running an ASGI app.

tool_shed.webapp.expose(func)[source]

Decorator: mark a function as ‘exposed’ and thus web accessible

Submodules

tool_shed.webapp.app module

class tool_shed.webapp.app.UniverseApplication(**kwd)[source]

Bases: BasicSharedApp, SentryClientMixin, HaltableContainer

Encapsulates the state of a Universe application

__init__(**kwd) None[source]
Parameters

container – Optional container if provided the existing definitions will be copied

:param log_undefined_deps indicates if a log message should be emmited when an undefined dep is loaded

name: str
config: Any
application_stack: ApplicationStack
datatypes_registry: Registry
model: SharedModelMapping
security: IdEncodingHelper
auth_manager: AuthManager
security_agent: Any
quota_agent: QuotaAgent
toolbox: Any

tool_shed.webapp.buildapp module

Provides factory methods to assemble the Galaxy web application

class tool_shed.webapp.buildapp.CommunityWebApplication(galaxy_app, session_cookie='galaxysession', name=None)[source]

Bases: WebApplication

tool_shed.webapp.buildapp.add_ui_controllers(webapp, app)[source]

Search for controllers in the ‘galaxy.webapps.controllers’ module and add them to the webapp.

tool_shed.webapp.buildapp.app_factory(*args, **kwargs)[source]

Return a wsgi application serving the root object

tool_shed.webapp.buildapp.app_pair(global_conf, load_app_kwds=None, **kwargs)[source]

Return a wsgi application serving the root object

tool_shed.webapp.buildapp.wrap_in_middleware(app, global_conf, application_stack, **local_conf)[source]

Based on the configuration wrap app in a set of common and useful middleware.

tool_shed.webapp.config module

Universe configuration builder.

class tool_shed.webapp.config.ToolShedAppConfiguration(**kwargs)[source]

Bases: BaseAppConfiguration, CommonConfigurationMixin

default_config_file_name = 'tool_shed.yml'
add_sample_file_to_defaults: Set[str] = {'datatypes_config_file'}
__init__(**kwargs)[source]
property shed_tool_data_path
check()[source]
object_store_store_by: str
tool_shed.webapp.config.Configuration

alias of ToolShedAppConfiguration

tool_shed.webapp.fast_app module

tool_shed.webapp.fast_app.add_request_id_middleware(app: FastAPI)[source]
tool_shed.webapp.fast_app.initialize_fast_app(gx_webapp, tool_shed_app)[source]

tool_shed.webapp.fast_factory module

Module containing factory class for building uvicorn app for the Galaxy Tool Shed.

Information on uvicorn, its various settings, and how to invoke it can be found at https://www.uvicorn.org/.

The Galaxy Tool Shed can be launched with uvicorn using the following invocation:

uvicorn --app-dir lib --factory tool_shed.webapp.fast_factory:factory

Use the environment variable TOOL_SHED_CONFIG_FILE to specify a Tool Shed configuration file.

TOOL_SHED_CONFIG_FILE=config/tool_shed.yml uvicorn --app-dir lib --factory tool_shed.webapp.fast_factory:factory

Note

Information on additional ways to configure uvicorn can be found at https://www.uvicorn.org/.

Gunicorn is a server with more complex management options.

This factory function can be executed as a uvicorn worker managed with gunicorn with the following command-line.

gunicorn 'tool_shed.webapp.fast_factory:factory()' --env TOOL_SHED_CONFIG_FILE=config/tool_shed.yml --pythonpath lib -w 4 -k uvicorn.workers.UvicornWorker --config lib/galaxy/web_stack/gunicorn_config.py
tool_shed.webapp.fast_factory.factory()[source]