updated a few docstrings and removed contrib

--HG--
branch : trunk
diff --git a/jinja2/contrib/__init__.py b/jinja2/contrib/__init__.py
deleted file mode 100644
index 1770052..0000000
--- a/jinja2/contrib/__init__.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-    jinja.contrib
-    ~~~~~~~~~~~~~
-
-    This module collections various third-party helper functions and classes
-    that are useful for frameworks etc.
-
-    :copyright: 2007 by Armin Ronacher.
-    :license: BSD, see LICENSE for more details.
-"""
diff --git a/jinja2/contrib/_djangosupport.py b/jinja2/contrib/_djangosupport.py
deleted file mode 100644
index 65a192e..0000000
--- a/jinja2/contrib/_djangosupport.py
+++ /dev/null
@@ -1,209 +0,0 @@
-# -*- coding: utf-8 -*-

-"""

-    jinja.contrib._djangosupport

-    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-

-    Django suport layer. This module is a metamodule, do never import it

-    directly or access any of the functions defined here.

-

-    The public interface is `jinja.contrib.djangosupport` and

-    `django.contrib.jinja`. See the docstring of `jinja.contrib.djangosupport`

-    for more details.

-

-    :copyright: 2007-2008 by Armin Ronacher, Bryan McLemore, David Cramer.

-    :license: BSD, see LICENSE for more details.

-"""

-import sys

-import warnings

-import new

-from django.conf import settings

-from django.template.context import get_standard_processors

-from django.http import HttpResponse

-from django import contrib

-

-from jinja import Environment, FileSystemLoader, ChoiceLoader

-from jinja.loaders import MemcachedFileSystemLoader

-

-

-exported = ['render_to_response', 'render_to_string', 'convert_django_filter']

-

-

-#: used environment

-env = None

-

-

-#: default filters

-DEFAULT_FILTERS = (

-    'django.template.defaultfilters.date',

-    'django.template.defaultfilters.timesince',

-    'django.template.defaultfilters.linebreaks',

-    'django.contrib.humanize.templatetags.humanize.intcomma'

-)

-

-def configure(convert_filters=DEFAULT_FILTERS, loader=None, **options):

-    """

-    Initialize the system.

-    """

-    global env

-

-    if env:

-        warnings.warn("Jinja already initialized.")

-        return

-

-    # setup environment

-    if loader is None:

-        loaders = tuple(FileSystemLoader(l) for l in settings.TEMPLATE_DIRS)

-        if not loaders:

-            loader = None

-        elif len(loaders) == 1:

-            loader = loaders[0]

-        else:

-            loader = ChoiceLoader(loaders)

-    env = Environment(loader=loader, **options)

-

-    # convert requested filters

-    for name in convert_filters:

-        env.filters[name] = convert_django_filter(name)

-

-    # import templatetags of installed apps

-    for app in settings.INSTALLED_APPS:

-        try:

-            __import__(app + '.templatetags')

-        except ImportError:

-            pass

-

-    # setup the django.contrib.jinja module

-    setup_django_module()

-

-

-def setup_django_module():

-    """

-    create a new Jinja module for django.

-    """

-    from jinja.contrib import djangosupport

-    module = contrib.jinja = sys.modules['django.contrib.jinja'] = \

-             new.module('django.contrib.jinja')

-    module.env = env

-    module.__doc__ = djangosupport.__doc__

-    module.register = Library

-    public_names = module.__all__ = ['register', 'env']

-    get_name = globals().get

-    for name in exported:

-        setattr(module, name, get_name(name))

-        public_names.append(name)

-

-

-def render_to_response(template, context={}, request=None,

-                       mimetype=None):

-    """This function will take a few variables and spit out a full webpage."""

-    content = render_to_string(template, context, request)

-    if mimetype is None:

-        mimetype = settings.DEFAULT_CONTENT_TYPE

-    return HttpResponse(content, mimetype)

-

-

-def render_to_string(template, context={}, request=None):

-    """Render a template to a string."""

-    assert env is not None, 'Jinja not configured for django'

-    if request is not None:

-        context['request'] = request

-        for processor in get_standard_processors():

-            context.update(processor(request))

-    template = env.get_template(template)

-    return template.render(context)

-

-

-def convert_django_filter(f):

-    """Convert a django filter into a Jinja filter."""

-    if isinstance(f, str):

-        p = f.split('.')

-        f = getattr(__import__('.'.join(p[:-1]), None, None, ['']), p[-1])

-    def filter_factory(*args):

-        def wrapped(env, ctx, value):

-            return f(value, *args)

-        return wrapped

-    filter_factory.__name__ = f.__name__

-    filter_factory.__doc__ = getattr(f, '__doc__', None)

-    return filter_factory

-

-

-class Library(object):

-    """

-    Continues a general feel of wrapping all the registration

-    methods for easy importing.

-

-    This is available in `django.contrib.jinja` as `register`.

-

-    For more details see the docstring of the `django.contrib.jinja` module.

-    """

-    def object(func, name=None):

-        """Register a new global."""

-        if name is None:

-            name = getattr(func, '__name__')

-        env.globals[name] = func

-        return func

-    object = staticmethod(object)

-

-    def filter(func, name=None):

-        """Register a new filter function."""

-        if name is None:

-            name = func.__name__

-        env.filters[name] = func

-        return func

-    filter = staticmethod(filter)

-

-    def test(func, name):

-        """Register a new test function."""

-        if name is None:

-            name = func.__name__

-        env.tests[name] = func

-        return func

-    test = staticmethod(test)

-

-    def context_inclusion(func, template, name=None):

-        """

-        Similar to the inclusion tag from django this one expects func to be a

-        function with a similar argument list to func(context, *args, **kwargs)

-

-        It passed in the current context allowing the function to edit it or read

-        from it.  the function must return a dict with which to pass into the

-        renderer.  Normally expected is an altered dictionary.

-

-        Note processors are NOT ran on this context.

-        """

-        def wrapper(env, context, *args, **kwargs):

-            context = func(context.to_dict(), *args, **kwargs)

-            return render_to_string(template, context)

-        wrapper.jinja_context_callable = True

-        if name is None:

-            name = func.__name__

-        try:

-            wrapper.__name__ = func.__name__

-            wrapper.__doc__ = func.__doc__

-        except:

-            pass

-        env.globals[name] = wrapper

-    context_inclusion = staticmethod(context_inclusion)

-

-    def clean_inclusion(func, template, name=None, run_processors=False):

-        """

-        Similar to above however it won't pass the context into func().

-        Also the returned context will have the context processors run upon it.

-        """

-        def wrapper(env, context, *args, **kwargs):

-            if run_processors:

-                request = context['request']

-            else:

-                request = None

-            context = func({}, *args, **kwargs)

-            return render_to_string(template, context, request)

-        wrapper.jinja_context_callable = True

-        if name is None:

-            name = func.__name__

-        try:

-            wrapper.__name__ = func.__name__

-            wrapper.__doc__ = func.__doc__

-        except:

-            pass

-        env.globals[name] = wrapper

-    clean_inclusion = staticmethod(clean_inclusion)

diff --git a/jinja2/contrib/djangosupport.py b/jinja2/contrib/djangosupport.py
deleted file mode 100644
index 9898a82..0000000
--- a/jinja2/contrib/djangosupport.py
+++ /dev/null
@@ -1,124 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-    jinja.contrib.djangosupport
-    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-    Support for the django framework. This module is quite magical because it
-    just exports one single function, the `configure` function which is used
-    to create a new Jinja environment and setup a special module called
-    `django.contrib.jinja` which exports a couple of functions useful for Jinja.
-
-    Quickstart
-    ==========
-
-    To get started execute the following code at the bottom of your settings.py
-    or in some general application file such as urls.py or a central module. The
-    only thing that matters is that it's executed right *after* the settings
-    were set up and *before* `django.contrib.jinja` is imported::
-
-        from jinja.contrib import djangosupport
-        djangosupport.configure()
-
-    What this does is setting up a Jinja environment for this django instance
-    with loaders for `TEMPLATE_DIRS` etc.  It also converts a couple of default
-    django filters such as `date` and `timesince` which are not available in
-    Jinja per default.  If you want to change the list you can provide others
-    by passing a list with filter import names as `convert_filters` keyword
-    argument.
-
-    All other keyword arguments are forwarded to the environment.  If you want
-    to provide a loader yourself pass it a loader keyword argument.
-
-    Rendering Templates
-    ===================
-
-    To render a template you can use the functions `render_to_string` or
-    `render_to_response` from the `django.contrib.jinja` module::
-
-        from django.contrib.jinja import render_to_response
-        resp = render_to_response('Hello {{ username }}!', {
-            'username':     req.session['username']
-        }, req)
-
-    `render_to_string` and `render_to_response` take at least the name of
-    the template as argument, then the optional dict which will become the
-    context.  If you also provide a request object as third argument the
-    context processors will be applied.
-
-    `render_to_response` also takes a forth parameter which can be the
-    content type which defaults to `DEFAULT_CONTENT_TYPE`.
-
-    Converting Filters
-    ==================
-
-    One of the useful objects provided by `django.contrib.jinja` is the
-    `register` object which can be used to register filters, tests and
-    global objects.  You can also convert any filter django provides in
-    a Jinja filter using `convert_django_filter`::
-
-        from django.contrib.jinja import register, convert_django_filter
-        from django.template.defaultfilters import floatformat
-
-        register.filter(convert_django_filter(floatformat), 'floatformat')
-
-    Available methods on the `register` object:
-
-    ``object (obj[, name])``
-        Register a new global as name or with the object's name.
-        Returns the function object unchanged so that you can use
-        it as decorator if no name is provided.
-
-    ``filter (func[, name])``
-        Register a function as filter with the name provided or
-        the object's name as filtername.
-        Returns the function object unchanged so that you can use
-        it as decorator if no name is provided.
-
-    ``test (func[, name])``
-        Register a function as test with the name provided or the
-        object's name as testname.
-        Returns the function object unchanged so that you can use
-        it as decorator if no name is provided.
-
-    ``context_inclusion (func, template[, name])``
-        Register a function with a name provided or the func object's
-        name in the global namespace that acts as subrender function.
-
-        func is called with the callers context as dict and the
-        arguments and keywords argument of the inclusion function.
-        The function should then process the context and return a
-        new context or the same context object. Afterwards the
-        template is rendered with this context.
-
-        Example::
-
-            def add_author(context, author=None):
-                if author is not None:
-                    author = Author.objects.get(name=author)
-                context['author'] = author
-                return context
-
-            register.context_inclusion(add_author, 'author_details.html',
-                                       'render_author_details')
-
-        You can use it in the template like this then::
-
-            {{ render_author_details('John Doe') }}
-
-    ``clean_inclusion (func, template[, name[, run_processors]]) ``
-        Works like `context_inclusion` but doesn't use the calles
-        context but an empty context. If `run_processors` is `True`
-        it will lookup the context for a `request` object and pass
-        it to the render function to apply context processors.
-
-    :copyright: 2007 by Armin Ronacher, Bryan McLemore.
-    :license: BSD, see LICENSE for more details.
-"""
-try:
-    __import__('django')
-except ImportError:
-    raise ImportError('installed django required for djangosupport')
-else:
-    from jinja.contrib._djangosupport import configure
-
-__all__ = ['configure']
diff --git a/jinja2/exceptions.py b/jinja2/exceptions.py
index e345f03..f07d860 100644
--- a/jinja2/exceptions.py
+++ b/jinja2/exceptions.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 """
-    jinja.exceptions
-    ~~~~~~~~~~~~~~~~
+    jinja2.exceptions
+    ~~~~~~~~~~~~~~~~~
 
     Jinja exceptions.
 
diff --git a/jinja2/filters.py b/jinja2/filters.py
index c042a5b..137f536 100644
--- a/jinja2/filters.py
+++ b/jinja2/filters.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 """
-    jinja.filters
-    ~~~~~~~~~~~~~
+    jinja2.filters
+    ~~~~~~~~~~~~~~
 
     Bundled jinja filters.
 
diff --git a/jinja2/tests.py b/jinja2/tests.py
index 405db81..ab7992d 100644
--- a/jinja2/tests.py
+++ b/jinja2/tests.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 """
-    jinja.tests
-    ~~~~~~~~~~~
+    jinja2.tests
+    ~~~~~~~~~~~~
 
     Jinja test functions. Used with the "is" operator.
 
@@ -37,7 +37,8 @@
             variable is not defined
         {% endif %}
 
-    See also the ``default`` filter.
+    See the ``default`` filter for a simple way to set undefined
+    variables.
     """
     return not isinstance(value, Undefined)
 
@@ -80,8 +81,6 @@
         {% if foo.attribute is sameas(false) %}
             the foo attribute really is the `False` singleton
         {% endif %}
-
-    *New in Jinja 1.2*
     """
     return value is other
 
diff --git a/jinja2/visitor.py b/jinja2/visitor.py
index 760fca5..a4dc3d1 100644
--- a/jinja2/visitor.py
+++ b/jinja2/visitor.py
@@ -12,10 +12,9 @@
 
 
 class NodeVisitor(object):
-    """
-    Walks the abstract syntax tree and call visitor functions for every node
-    found.  The visitor functions may return values which will be forwarded
-    by the `visit` method.
+    """Walks the abstract syntax tree and call visitor functions for every
+    node found.  The visitor functions may return values which will be
+    forwarded by the `visit` method.
 
     Per default the visitor functions for the nodes are ``'visit_'`` +
     class name of the node.  So a `TryFinally` node visit function would
@@ -47,8 +46,7 @@
 
 
 class NodeTransformer(NodeVisitor):
-    """
-    Walks the abstract syntax tree and allows modifications of nodes.
+    """Walks the abstract syntax tree and allows modifications of nodes.
 
     The `NodeTransformer` will walk the AST and use the return value of the
     visitor functions to replace or remove the old node.  If the return