X-Git-Url: http://dolda2000.com/gitweb/?p=wrw.git;a=blobdiff_plain;f=wrw%2Fwmako.py;h=491d8b3e78209ff7cf18a50ef085fb277677a38f;hp=9945345552d5e4dc5822bd864096cfc0aa3fdaf2;hb=4eca11182344470d2146b13ddeb15b263407b1a2;hpb=3162cb89d51c4df9eec6c979d20bc4a2c82da5f9 diff --git a/wrw/wmako.py b/wrw/wmako.py index 9945345..491d8b3 100644 --- a/wrw/wmako.py +++ b/wrw/wmako.py @@ -1,6 +1,6 @@ import os, threading from mako import template, lookup, filters -import util, form, session +import util, form, session, env # It seems Mako isn't thread-safe. makolock = threading.Lock() @@ -25,13 +25,19 @@ defargs = {"output_encoding": "utf-8", "default_filters": ["decode.utf8"], "module_directory": cachedir, } -lib = liblookup(directories = libdirs, **defargs) + +def makelib(init=liblookup, directories=[], **kwargs): + ad = dict(defargs) + ad.update(kwargs) + return init(directories = libdirs + directories, **ad) + +lib = env.var(makelib()) if not os.path.exists(cachedir): os.mkdir(cachedir) def handle(req, filename, **kw): with makolock: - tt = template.Template(filename = filename, lookup = lib, **defargs) + tt = template.Template(filename = filename, lookup = lib.val, **defargs) req.ohead["Content-Type"] = "text/html; charset=utf-8" return [tt.render(request = req, **kw)]