X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=wrw%2Fwmako.py;h=42619389cc1a87606e4dd8d86e0fdcc9f0af17da;hb=ad5b93034c1c28f0f4deab4c1b62cb2d6a869f81;hp=9945345552d5e4dc5822bd864096cfc0aa3fdaf2;hpb=397fd288ed6d5b8f96c414778df96acb35514f4d;p=wrw.git diff --git a/wrw/wmako.py b/wrw/wmako.py index 9945345..4261938 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 +from . 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)]