galaxy.util.pastescript package

Command for loading and serving wsgi apps taken from PasteScript

Submodules

galaxy.util.pastescript.loadwsgi module

galaxy.util.pastescript.loadwsgi.loadapp(uri, name=None, **kw)[source]
galaxy.util.pastescript.loadwsgi.loadfilter(uri, name=None, **kw)[source]
galaxy.util.pastescript.loadwsgi.loadserver(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: exceptions.Exception

__init__(message, exit_code=2)[source]
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

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

Bases: exceptions.Exception

__init__(message, exit_code=2)
message

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

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

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.

quote_first_command_arg(arg)[source]

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.

parse_vars(args)[source]

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

logging_file_config(config_file)[source]

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

run(args)[source]
exception galaxy.util.pastescript.serve.DaemonizeException[source]

Bases: exceptions.Exception

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

Bases: galaxy.util.pastescript.serve.Command

min_args = 0
usage = 'CONFIG_FILE [start|stop|restart|status] [var=value]'
takes_config_file = 1
summary = 'Serve the described application'
description = " 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 instance>
default_verbosity = 1
possible_subcommands = ('start', 'stop', 'restart', 'status')
command()[source]
daemonize()[source]
record_pid(pid_file)[source]
stop_daemon()[source]
show_status()[source]
restart_with_reloader()[source]
restart_with_monitor(reloader=False)[source]
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]
open()[source]
write(text)[source]
writelines(text)[source]
flush()[source]
galaxy.util.pastescript.serve.live_pidfile(pidfile)[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.read_pidfile(filename)[source]
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.run(args=None)[source]
galaxy.util.pastescript.serve.invoke(command, command_name, options, args)[source]