Skip to main content

Sprockets command line application runner

Project description

The sprockets CLI interface for running applications. Applications are meant to be run by a controller that is managed by the sprockets CLI interface.

The sprockets CLI interface loads controller applications that are registered using setuptools entry points.

Version Downloads Status Coverage License

Example CLI Usage

Help:

# sprockets --help

usage: sprockets [-h] [--apps] [--plugins] [-e [PLUGIN]] [-s] [-v] [--version]
                 CONTROLLER ... [APP]

Command line tool for starting a Sprockets application

positional arguments:
  CONTROLLER            Available sprockets application controllers
    http                HTTP Application Controller
    amqp                RabbitMQ Worker Controller
  APP                   Application to run

optional arguments:
  -h, --help            show this help message and exit
  --apps                List installed applications
  --plugins             List installed plugins
  -e [PLUGIN], --enable [PLUGIN]
                        Enable a plugin
  -s, --syslog          Log to syslog
  -v, --verbose         Verbose logging output, use -vv for DEBUG level
                        logging
  --version             show program's version number and exit

Find more Sprockets controllers and plugins at
https://sprockets.readthedocs.org

Starting a Web App with the NewRelic plugin:

# sprockets -e newrelic http my_web_app

Controllers

Each controller is expected to expose at least a main(application, args) method that would be invoked when starting the application. Additional, a controller can implement a add_cli_arguments(parser) method that will be invoked when setting up the command line parameters. This allows controllers to inject configuration directives into the cli.

Controller API Summary:

module.add_cli_arguments(ArgumentParser)     # optional
module.main(app_module, argparse.Namespace)

Plugins

Plugins are able to inject themselves at multiple points in the application lifecycle. Plugins that implement a initialization(controller) method will see that method invoked before a controller is started. In addition, if a on_startup(controller) method is defined, it will be invoked after a Controller has started a application. Finally if a on_shutdown(controller) method is defined, it will be invoked when a controller has shutdown.

Plugin API Summary:

plugin.initialize(controller_module)   # optional
plugin.on_start(controller_module)     # optional
plugin.on_shutdown(controller_module)  # optional

Example Entrypoints

Controller:

{'sprockets.controller': ['http=sprockets.controllers.http:None']},

Application:

{'sprockets.http.app': ['app-name=package.or.module:None']}

(Replace app-name with the name of your application)

Applications

Applications can be a python package or module and if they are registered to a specific controller, can be referenced by an alias. Application contracts vary by controller.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sprockets.cli-0.1.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

sprockets.cli-0.1.0-py2.py3-none-any.whl (8.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file sprockets.cli-0.1.0.tar.gz.

File metadata

File hashes

Hashes for sprockets.cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4431e8044ff7605dc16961d9653704b21404f1cc31710bc5da8f84e1e459ee14
MD5 5c867c92a5baaeb276374fb7d3450d99
BLAKE2b-256 252693c5de757f28f3fd27755703ae99d2ff9bb557d239653004b1d1e09c0ab4

See more details on using hashes here.

File details

Details for the file sprockets.cli-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for sprockets.cli-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8d2deb39d1b46de9e3d3680beda1abecfa8c50a8da8643d08266fba3e7f23e44
MD5 1d46c365bb6118b52b7071a179d31653
BLAKE2b-256 55c6b2c0e5b5612ce8edda0803feccac9d8843ae07e303bcf5bd49975913edbb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page