semvec/pypi-packages huggingface dataset:
clue_script 0.3.1
Easy utils for creating a script runner
License: BSD
Keywords: web

.. -*-rst-*-

=============
 clue_script
=============

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.

  1. ``make_reloadable_server_command`` *(see above note about requirements for runserver)*

  2. ``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>


.. -*-rst-*-

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