notmm 0.2.12 - diindolylmethane

About

Synopsis

The notmm toolkit is a heterogeneous web application framework on top of Django. It aims to provides a scalable (thus non-monolithic) library for building stand-alone WSGI applications in concert with the Django framework.

Description

Initially designed as a standard Django application, the notmm toolkit provides additional enhancements and patches for developing non-monolithic WSGI web applications.

For customizing the Django framework, the notmm toolkit requires the MqExtension bundled with Mercurial. Patches can then be applied or removed using hg or with gquilt.

Emerging-like Web Applications

The concept of emerging-like web applications is a new type of web application design which focus on using logic and functional style programming for defining the core business logic under the hood.

Features

  • Runs stand-alone WSGI applications in FastCGI mode.
  • Pylons-style Controllers; Regular-Expression based URL resolving and routing with built-in WSGI support in notmm.controllers.
  • UTF-8 template loading, rendering, and caching in notmm.utils.template. (Mako, Beaker)
  • Declarative-style ORM backend support/utilities. (Django, SQLAlchemy, Elixir)
  • PyUnit (unittest) integration in the notmm.utils.test package.
  • Dual-licensed under a BSD-style License and Apache License Version 2.0.
  • The API pages are generated with Doxygen in html, latex and man formats :-)

Experimental Features

  • Experimental patches and bugfixes for Django 1.0.2. (This requires django.bugfixes and the MqExtension)
  • Experimental Django (0.96.3) legacy support.
  • Table reflection (autoloading) and automatic schema migration using YAML.
  • Encryption/Decryption of Django settings using pycryptopp and the pickle module.
  • Object-Relational Database backend support (Schevo)

Security Features

  • No remote admin, since theres no web interface! :)
  • Proactive security design and fully open source compliant (BSD/Apache).

Examples

Here's a simple hello world demo application:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""A minimal demo.py app with basic dependencies."""
import sys, os

# Use WebOb as a base for a stable WSGI implementation
from webob import Request, Response

# Only import what you need;
from notmm.utils.http import setup_http_server, get_bind_addr
from notmm.utils.configuration import loadconf

# import the demo app
from helloworld.controllers import Application

# import any optional third-party components
from helloworld.configuration import settings

# Get/load the current user config
app_conf = loadconf('development.ini')

wsgi_app = Application(
        settings,
        request_class=Request,
        response_class=Response
)

# run the application using a WSGI server on host:port with
# paste.httpserver
print "Starting HTTP server on host %s:%d ..." % (host, port)

# returns (host, port) by looking for it in app_conf
bind_addr = get_bind_addr(app_conf)

server = setup_http_server(wsgi_app, bind_addr)
server.start()

This application can be found in examples/demo.py.

Download

Stable releases

  • The current stable release is 0.2.10, released on 27/09/2008.
  • Source tarball (MD5, GPG)
  • Please note that it should also be indexed on the Python Cheese Shop
  • For verifying the GPG signature, the valid DSA key ID is: 0x9A5E4DB4

Legacy releases

A legacy branch is available below. Note that this branch is supported until the next stable release.

$ hg clone http://joelia.gthc.org/notmm/0.2.10-maint/ notmm-0.2.10-maint

Development

Main development branch (currently known as 0.2.12-dev)

$ hg clone http://joelia.gthc.org/notmm/0.2.12/ notmm-0.2.12-dev

To fetch the source code from the notmm-schevo branch

$ hg clone http://joelia.gthc.org/notmm/schevo notmm-schevo

Community resources

Contributing

The notmm project is searching for talented Python developers, beta testers, designers, writers, and artists for improving this software. Please post a question on the notmm-discuss mailing-list if you're interested in this opportunity.