Easy utils for creating a script runner
Project description
Overview
clue_script is used for defining subcommands with a special focus on web-style apps. The functionality is inspired by the Django manage.py script.
Requirements
Python 2.6 or 2.7 (not tested with Python 3.x)
runserver support (optional)
Paste
argparse (if deploying on Python < 2.7)
Usage
A simple example to add a command that prints “hello world”:
from clue_script import command, Commander @command def helloworld(): print 'hello world' if __name__ == '__main__': Commander.scan(globals()).run()
To do a more complicated command you can use something similar to Python 2.7’s argparse (also available on 2.6).
import argparse from clue_script import command, Commander @command def foo(*argv): parser = argparse.ArgumentParser() parser.add_argument('-x', help='simple test', default='yes', metavar='x') ns = parser.parse_args(argv) # do something if __name__ == '__main__': Commander.scan(globals()).run()
Provided Commands
There are currently two provided command factories.
make_reloadable_server_command (see above note about requirements for runserver)
make_syncdb_command
A typical web app could use these commands as follows:
if __name__ == '__main__': def createtables(session): models.Base.metadata.create_all(session.bind) settings = init_settings() commander = script.Commander([script.make_reloadable_server_command(make_app), script.make_syncdb_command(settings['spitter.db_session_factory'], createtables)]) commander.scan(globals()) commander.run()
Running the script with no args will yield something similar to:
Commands: runserver Run a reloadable development web server. syncdb Update the database.
Credits
Developed and maintained by Rocky Burt <rocky AT serverzen DOT com>
Changes
0.3.1 (Jul-27-2011)
Fixed silly bug where print_usage() was being called wrong
0.3 (Jul-10-2011)
Added rfoo support for launching a shell to connect with live-running server http://code.google.com/p/rfoo/
Improved formatting of command usage
Removed mostly useless make_syncdb command
Made Commander.commands a little more exposed
0.2.4 (Mar-3-2011)
Fixed problem where the non-reloader portion would shut down the app if code was changed
0.2.3 (Feb-20-2011)
Renamed from Khufu-Script to clue_script
0.2.2 (Feb-16-2011)
Updated project urls
0.2.1 (Jan-26-2011)
Fixed scan() method to return commander instance
0.2 (Jan-3-2011)
first release
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
File details
Details for the file clue_script-0.3.1.tar.gz
.
File metadata
- Download URL: clue_script-0.3.1.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cf32c97e18b9347428a9fb825baa63fe99d63f7fcd335d346d49ff66ef97e54 |
|
MD5 | a5b09c456ceddbab47c0f1a19f673b38 |
|
BLAKE2b-256 | ba1e9f9bf0d3f0f2b70f8817a4240fd5fdcc567dee3b956768a15a0620cc59a7 |