### Navigation

- index
- modules |
- next |
- previous |
- TurboGears 2.1.5 documentation »
- Search:
- Extended Table of Contents »
- The Gears in Detail »
- Modules »

# `pylons.commands` – Command line functions

Paster Commands, for use with paster in your project

The following commands are made available via paster utilizing setuptools points discovery. These can be used from the command line when the directory is the Pylons project.

Commands available:

`controller`
  Create a Controller and accompanying functional test
`restcontroller`
  Create a REST Controller and accompanying functional test
`shell`
  Open an interactive shell with the Pylons app loaded

Example usage:

    ~/sample$ paster controller account
    Creating /Users/ben/sample/sample/controllers/account.py
    Creating /Users/ben/sample/sample/tests/functional/test_account.py
    ~/sample$

How it Works

paster is a command line script (from the PasteScript package) that allows the creation of context sensitive commands. paster looks in the current directory for a `.egg-info` directory, then loads the `paster_plugins.txt` file.

Using setuptools entry points, paster looks for functions registered with setuptools as `paste.paster_command()`. These are defined in the entry_points block in each packages `setup.py` module.

This same system is used when running paster create to determine what templates are available when creating new projects.

## Module Contents

class `pylons.commands.``ControllerCommand`(name)

  Create a Controller and accompanying functional test

  The Controller command will create the standard controller template file and associated functional test to speed creation of controllers.

  Example usage:

      yourproj% paster controller comments
      Creating yourproj/yourproj/controllers/comments.py
      Creating yourproj/yourproj/tests/functional/test_comments.py

  If you’d like to have controllers underneath a directory, just include the path as the controller name and the necessary directories will be created for you:

      yourproj% paster controller admin/trackback
      Creating yourproj/controllers/admin
      Creating yourproj/yourproj/controllers/admin/trackback.py
      Creating yourproj/yourproj/tests/functional/test_admin_trackback.py

class `pylons.commands.``RestControllerCommand`(name)

  Create a REST Controller and accompanying functional test

  The RestController command will create a REST-based Controller file for use with the `resource()` REST-based dispatching. This template includes the methods that `resource()` dispatches to in addition to doc strings for clarification on when the methods will be called.

  The first argument should be the singular form of the REST resource. The second argument is the plural form of the word. If its a nested controller, put the directory information in front as shown in the second example below.

  Example usage:

      yourproj% paster restcontroller comment comments
      Creating yourproj/yourproj/controllers/comments.py
      Creating yourproj/yourproj/tests/functional/test_comments.py

  If you’d like to have controllers underneath a directory, just include the path as the controller name and the necessary directories will be created for you:

      yourproj% paster restcontroller admin/tracback admin/trackbacks
      Creating yourproj/controllers/admin
      Creating yourproj/yourproj/controllers/admin/trackbacks.py
      Creating yourproj/yourproj/tests/functional/test_admin_trackbacks.py

class `pylons.commands.``ShellCommand`(name)

  Open an interactive shell with the Pylons app loaded

  The optional CONFIG_FILE argument specifies the config file to use for the interactive shell. CONFIG_FILE defaults to ‘development.ini’.

  This allows you to test your mapper, models, and simulate web requests using `paste.fixture`.

  Example:

      $ paster shell my-development.ini