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

Subpackages

Submodules

tool_shed.webapp.app module

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

Bases: ToolShedApp, SentryClientMixin, HaltableContainer

Encapsulates the state of a Universe application

__init__(**kwd) None[source]
repository_types_registry: RepositoryTypesRegistry
model: mapping.ToolShedModelMapping
security_agent: CommunityRBACAgent
hgweb_config_manager: HgWebConfigManager
repository_registry: RepositoryRegistry

tool_shed.webapp.buildapp module

Provides factory methods to assemble the Galaxy web application

class tool_shed.webapp.buildapp.ToolShedGalaxyWebTransaction(environ: Dict[str, Any], app: BasicSharedApp, webapp: WebApplication, session_cookie: str | None = None)[source]

Bases: GalaxyWebTransaction

property repositories_hostname: str
get_or_create_default_history()[source]

Gets or creates a default history and associates it with the current session.

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

Bases: WebApplication

injection_aware: bool = True
transaction_chooser(environ, galaxy_app: BasicSharedApp, session_cookie: str)[source]
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.get_openapi_schema() Dict[str, Any][source]

Dumps openAPI schema without starting a full app and webserver.

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]