pngtile/wsgi.py
author Tero Marttila <terom@fixme.fi>
Tue, 26 Jan 2010 01:26:05 +0200
changeset 103 1a6a6957197d
parent 93 581cdb831b32
permissions -rw-r--r--
basic caching behaviour, not use yet
30
53e99e552122 move the python/web code in
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
"""
53e99e552122 move the python/web code in
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
    Our WSGI web interface, which can serve the JS UI and any .png tiles via HTTP.
53e99e552122 move the python/web code in
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
"""
53e99e552122 move the python/web code in
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
93
581cdb831b32 split off werkzeug code to separate handlers module..
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
     5
from werkzeug import Request, responder
30
53e99e552122 move the python/web code in
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
from werkzeug import exceptions
92
e50ec4217fe6 separate non-wsgi render layer to render.png
Tero Marttila <terom@fixme.fi>
parents: 90
diff changeset
     7
93
581cdb831b32 split off werkzeug code to separate handlers module..
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
     8
from pngtile import handlers
89
02e5b9b08881 rework wsgi.py
Tero Marttila <terom@fixme.fi>
parents: 47
diff changeset
     9
30
53e99e552122 move the python/web code in
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
103
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    11
class WSGIApplication (object) :
89
02e5b9b08881 rework wsgi.py
Tero Marttila <terom@fixme.fi>
parents: 47
diff changeset
    12
    """
103
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    13
        Simple WSGI application invoking the werkzeug handlers
89
02e5b9b08881 rework wsgi.py
Tero Marttila <terom@fixme.fi>
parents: 47
diff changeset
    14
    """
02e5b9b08881 rework wsgi.py
Tero Marttila <terom@fixme.fi>
parents: 47
diff changeset
    15
103
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    16
    def __init__ (self, cache=None) :
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    17
        """
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    18
            Use given cache if any
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    19
        """
30
53e99e552122 move the python/web code in
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
103
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    21
        self.cache = cache
30
53e99e552122 move the python/web code in
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
103
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    23
    @responder
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    24
    def __call__ (self, env, start_response) :
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    25
        """
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    26
            Main WSGI entry point.
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    27
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    28
            This is wrapped with werkzeug, so we can return a Response object
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    29
        """
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    30
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    31
        req = Request(env, start_response)
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    32
        
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    33
        try :
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    34
            return handlers.handle_req(req, self.cache)
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    35
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    36
        except exceptions.HTTPException, e :
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    37
            return e
1a6a6957197d basic caching behaviour, not use yet
Tero Marttila <terom@fixme.fi>
parents: 93
diff changeset
    38