« Specifically designed to be readableVellum coming along nicely »


Comment from: Rob Cakebread [Visitor] · http://doapspace.org/

Have you got a recipe for dowser with Turbogears? I have a nasty memory leak I'd love to squash.

06/12/08 @ 02:18
Comment from: Marius Gedminas [Visitor] · http://gedmin.as

Thanks, this is an interesting app that I hadn't known about.

06/12/08 @ 06:54
Comment from: fumanchu [Member] Email


The dowser package consists of a single CherryPy Root object. You should be able to mount it on your Turbogears app like any other controller:

cherrypy.tree.mount(dowser.Root(), '/dowser', config)

06/12/08 @ 11:28
Comment from: Rob Cakebread [Visitor] · http://doapspace.org/

I'm using the stable version of Turbogears which is based on CherryPy 2, but dowser seems to only work with CherryPy 3.

from cherrypy import tools
ImportError: cannot import name tools

I got around that, but then there's quickstart. Do you think it'll be port-able to CP 2 without too much work?


06/12/08 @ 11:39
Comment from: fumanchu [Member] Email

Rob, CP 2.3 support added in http://www.aminus.net/changeset/137. You may have to tweak the staticfilter and/or url settings if you mount dowser somewhere other than /.

06/13/08 @ 11:36
Comment from: Rob Cakebread [Visitor] · http://doapspace.org/

Awesome, thanks, I'll give it a shot with TurboGears.

06/13/08 @ 18:24
Comment from: Swinlee [Visitor]

What license is this under? I don't see any license in the code or svn tree.

06/14/08 @ 18:11
Comment from: Rob Cakebread [Visitor] · http://doapspace.org/

For Turbogears it was as simple as:

import dowser

Then in my Root controller:

class Root(controllers.RootController):

memleak = dowser.Root()

Then point your browser at

Hmmm. Now to figure out what all that output is telling me...

06/15/08 @ 16:35
Comment from: John Viviano [Visitor] Email · http://www.intercorpinc.com

Here's a minimal but complete example for anyone just trying to get started.

import cherrypy
import dowser

class Root:

    def index(self):
        return "hello, world."
    index.exposed = True

if name == 'main':

    cherrypy.config.update({'server.socket_port': 8088})
    # http://localhost:8088/dowser
    cherrypy.tree.mount(dowser.Root(), '/dowser')
    # http://localhost:8088/
    # hello, world.

03/08/10 @ 21:42

Leave a comment

Your email address will not be revealed on this site.

Your URL will be displayed.

Please enter the phrase "I am a real human." in the textbox above.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)