This document is for an in-development version 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.util.pastescript package

Command for loading and serving wsgi apps taken from PasteScript


galaxy.util.pastescript.loadwsgi module

galaxy.util.pastescript.loadwsgi.loadapp(uri, name=None, **kw)[source]
galaxy.util.pastescript.loadwsgi.loadserver(uri, name=None, **kw)[source]
galaxy.util.pastescript.loadwsgi.loadfilter(uri, name=None, **kw)[source]
galaxy.util.pastescript.loadwsgi.appconfig(uri, name=None, relative_to=None, global_conf=None)[source]

galaxy.util.pastescript.serve module

galaxy.util.pastescript.serve.difflib = None

A subclass of optparse.OptionParser that allows boolean long options (like --verbose) to also take arguments (like --verbose=true). Arguments must use =.

class galaxy.util.pastescript.serve.BoolOptionParser(usage=None, option_list=None, option_class=<class 'optparse.Option'>, version=None, conflict_handler='error', description=None, formatter=None, add_help_option=True, prog=None, epilog=None)[source]

Bases: optparse.OptionParser

exception galaxy.util.pastescript.serve.BadCommand(message, exit_code=2)[source]

Bases: Exception

__init__(message, exit_code=2)[source]
property message

Getter for ‘message’; needed only to override deprecation in BaseException.

class galaxy.util.pastescript.serve.NoDefault[source]

Bases: object

class galaxy.util.pastescript.serve.Command(name)[source]

Bases: object

max_args = None
max_args_error = 'You must provide no more than %(max_args)s arguments'
min_args: Optional[int] = None
min_args_error = 'You must provide at least %(min_args)s arguments'
takes_config_file: Optional[int] = None
group_name = ''
required_args = ()
description: Optional[str] = None
usage = ''
hidden = False
default_verbosity = 0
default_interactive = 0
return_code = 0
exception BadCommand(message, exit_code=2)

Bases: Exception

__init__(message, exit_code=2)
property message

Getter for ‘message’; needed only to override deprecation in BaseException.

pad(s, length, dir='left')[source]
classmethod standard_parser(verbose=True, interactive=False, no_interactive=False, simulate=False, quiet=False, overwrite=False)

Create a standard OptionParser instance.

Typically used like:

class MyCommand(Command):
    parser = Command.standard_parser()

Subclasses may redefine standard_parser, so use the nearest superclass’s class method.


There’s a bug in Windows when running an executable that’s located inside a path with a space in it. This method handles that case, or on non-Windows systems or an executable with no spaces, it just leaves well enough alone.


Given variables like ['a=b', 'c=d'] turns it into {'a': 'b', 'c': 'd'}


Setup logging via the logging module’s fileConfig function with the specified config_file, if applicable.

ConfigParser defaults are specified for the special __file__ and here variables, similar to PasteDeploy config loading.

class galaxy.util.pastescript.serve.NotFoundCommand(name)[source]

Bases: galaxy.util.pastescript.serve.Command

exception galaxy.util.pastescript.serve.DaemonizeException[source]

Bases: Exception

class galaxy.util.pastescript.serve.ServeCommand(name)[source]

Bases: galaxy.util.pastescript.serve.Command

min_args: Optional[int] = 0
usage = 'CONFIG_FILE [start|stop|restart|status] [var=value]'
takes_config_file: Optional[int] = 1
summary = 'Serve the described application'
description: Optional[str] = "    This command serves a web application that uses a paste.deploy\n    configuration file for the server and application.\n\n    If start/stop/restart is given, then --daemon is implied, and it will\n    start (normal operation), stop (--stop-daemon), or do both.\n\n    You can also include variable assignments like 'http_port=8080'\n    and then use %(http_port)s in your config files.\n    "
requires_config_file = True
parser = <galaxy.util.pastescript.serve.BoolOptionParser object>
default_verbosity = 1
possible_subcommands = ('start', 'stop', 'restart', 'status')
change_user_group(user, group)[source]
class galaxy.util.pastescript.serve.LazyWriter(filename, mode='w')[source]

Bases: object

File-like object that opens a file lazily when it is first written to.

__init__(filename, mode='w')[source]

(pidfile:str) -> int | None Returns an int found in the named file, if there is one, and if there is a running process with that process id. Return None if no such process exists.

galaxy.util.pastescript.serve.ensure_port_cleanup(bound_addresses, maxtries=30, sleeptime=2)[source]

This makes sure any open ports are closed.

Does this by connecting to them until they give connection refused. Servers should call like:

import paste.script
ensure_port_cleanup([80, 443])
galaxy.util.pastescript.serve.invoke(command, command_name, options, args)[source]