Skip to main content

CherryPy plugins and tools for integration with various libraries, including logging, Redis, SQLAlchemy and Jinja2 and webassets.

Project description

Same as CherryPy, just with a different filling.

What is it?

BlueberryPy is a CherryPy project skeleton generator and a collection of tools, plugins and utilities for CherryPy - the minimalist Python web framework.

What does it offer?

BlueberryPy is offered as a set of CherryPy tools, WSPB plugins and extra utility modules. All the components are optional and completely pluggable without any intermodule dependencies, so you can safely pick and choose just the components you want.

  • SQLAlchemy ORM plugin with two-phase commit support

  • Per-request SQLAlchemy ORM session tool

  • Redis session storage

  • Jinja2 template engine

  • Webassets asset pipeline integrated with Jinja2

  • Application specific logging

  • CherryPy project skeleton generator

  • Preconfigured console for experimenting inside a generated project

  • YAML configuration for CherryPy, Python’s logging module and Webassets

  • Convenient Email module for sending text and HTML emails

  • JSON tools to convert to and from SQLAlchemy models

  • CSRF token

Installation

Stable version:

$ pip install blueberrypy

Development version:

$ pip install https://bitbucket.org/wyuenho/blueberrypy

Note: You should probably install it inside a virtualenv.

Usage

Once BlueberryPy is installed, a script called blueberrypy should be available on your PATH.

usage: blueberrypy [-h] [-v] [-C CONFIG_DIR] [command]

BlueberryPy lightweight pluggable Web application framework command line interface.

   Type 'blueberrypy -h' or 'blueberrypy --help' for general help.
   Type 'blueberrypy help <command>' for help on that specific command.

commands:

   help                print this help or a command's if an argument is given
   create              create a project skeleton
   console             BlueberryPy REPL for experimentations
   bundle              bundles up web assets (type 'blueberrypy help bundle' for details)
   serve               spawn a new CherryPy server process

positional arguments:
   command               the action to perform

optional arguments:
   -h, --help            show this help message and exit
   -v, --version         print version information and exit.
   -C CONFIG_DIR, --config_dir CONFIG_DIR
                         path to the config directory

To create a project skeleton:

$ blueberrypy create

After you’ve answered a couple of questions, you should see something similar to this:

===========================================================================
Your project skeleton has been created under /path/to/your/project .


Subsystems chosen
-----------------
Routes (RESTful controllers): True
Jinja2: True
webassets: True
redis: False
SQLAlchemy: True
...

If you install a development version of your package now, the dependencies will be automatically installed for you as well:

$ pip install -e .

You can install the optional speedup packages too:

$ pip install blueberrypy[speedups]

Finally, you need to install a database driver such as psycopg2:

$ pip install psycopg2

Now your package is ready to be served:

$ blueberrypy serve

Type http://localhost:8080 into your browser’s location bar and voila!

Happy coding!

TODO

  1. write sphinx doc

  2. minimalist, conditional validators for json utils and form inputs

  3. babel integration

  4. request handler cache decorator

  5. search engine integration

  6. alembic or sqlalchemy-migrate integration

  7. modularize skeleton generation and commands

  8. better test coverage

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

blueberrypy-0.5.4.tar.gz (52.0 kB view details)

Uploaded Source

File details

Details for the file blueberrypy-0.5.4.tar.gz.

File metadata

  • Download URL: blueberrypy-0.5.4.tar.gz
  • Upload date:
  • Size: 52.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for blueberrypy-0.5.4.tar.gz
Algorithm Hash digest
SHA256 76d67e2dffa7855c43b5d20ea18c4e89bd1d62ebadc8130a4876be1502e449f7
MD5 012d998fe4a69c0e14f189b920bbe57e
BLAKE2b-256 657ef731f1e6ca8ca5f510fbc258e5a865956e5f6f2ae694a99da00eff578f44

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