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]

Initialize self. See help(type(self)) for accurate signature.

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


Initialize self. See help(type(self)) for accurate signature.

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)

Initialize self. See help(type(self)) for accurate signature.

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]

Initialize self. See help(type(self)) for accurate signature.


(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])[source]
galaxy.util.pastescript.serve.invoke(command, command_name, options, args)[source]