Patchwork [2,of,3] templater: move templatefilters.func into the same place as the other funcs

login
register
mail settings
Submitter Sean Farley
Date April 18, 2013, 9:01 p.m.
Message ID <f4484e9bf540799f6092.1366318891@laptop.local>
Download mbox | patch
Permalink /patch/1440/
State Superseded, archived
Commit 8eef5b93db9d2d4f89463a5d5740ce71694e8284
Headers show

Comments

Sean Farley - April 18, 2013, 9:01 p.m.
# HG changeset patch
# User Sean Farley <sean.michael.farley@gmail.com>
# Date 1365638198 18000
#      Wed Apr 10 18:56:38 2013 -0500
# Node ID f4484e9bf540799f60922ab191d88e489b1f7adc
# Parent  b657a963876cb670bb003ec4c1cacce3189b2055
templater: move templatefilters.func into the same place as the other funcs

Patch

diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py
--- a/mercurial/templatefilters.py
+++ b/mercurial/templatefilters.py
@@ -3,13 +3,12 @@ 
 # Copyright 2005-2008 Matt Mackall <mpm@selenic.com>
 #
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
 
-from i18n import _
 import cgi, re, os, time, urllib
-import encoding, node, util, error
+import encoding, node, util
 import hbisect
 
 def addbreaks(text):
     """:addbreaks: Any text. Add an XHTML "<br />" tag before the end of
     every line except the last.
@@ -399,36 +398,7 @@ 
     if websubtable:
         for regexp, format in websubtable:
             text = regexp.sub(format, text)
     return text
 
-def fillfunc(context, mapping, args):
-    if not (1 <= len(args) <= 2):
-        raise error.ParseError(_("fill expects one or two arguments"))
-
-    text = stringify(args[0][0](context, mapping, args[0][1]))
-    width = 76
-    if len(args) == 2:
-        try:
-            width = int(stringify(args[1][0](context, mapping, args[1][1])))
-        except ValueError:
-            raise error.ParseError(_("fill expects an integer width"))
-
-    return fill(text, width)
-
-def datefunc(context, mapping, args):
-    if not (1 <= len(args) <= 2):
-        raise error.ParseError(_("date expects one or two arguments"))
-
-    date = args[0][0](context, mapping, args[0][1])
-    if len(args) == 2:
-        fmt = stringify(args[1][0](context, mapping, args[1][1]))
-        return util.datestr(date, fmt)
-    return util.datestr(date)
-
-funcs = {
-    "fill": fillfunc,
-    "date": datefunc,
-}
-
 # tell hggettext to extract docstrings from these functions:
 i18nfunctions = filters.values()
diff --git a/mercurial/templater.py b/mercurial/templater.py
--- a/mercurial/templater.py
+++ b/mercurial/templater.py
@@ -197,13 +197,10 @@ 
     n = getsymbol(exp[1])
     args = [compileexp(x, context) for x in getlist(exp[2])]
     if n in funcs:
         f = funcs[n]
         return (f, args)
-    if n in templatefilters.funcs:
-        f = templatefilters.funcs[n]
-        return (f, args)
     if n in context._filters:
         if len(args) != 1:
             raise error.ParseError(_("filter %s expects one argument") % n)
         f = context._filters[n]
         return (runfilter, (args[0][0], args[0][1], f))
@@ -299,10 +296,34 @@ 
     text = stringify(args[0][0](context, mapping, args[0][1]))
     style = stringify(args[1][0](context, mapping, args[1][1]))
 
     return minirst.format(text, style=style)
 
+def fill(context, mapping, args):
+    if not (1 <= len(args) <= 2):
+        raise error.ParseError(_("fill expects one or two arguments"))
+
+    text = stringify(args[0][0](context, mapping, args[0][1]))
+    width = 76
+    if len(args) == 2:
+        try:
+            width = int(stringify(args[1][0](context, mapping, args[1][1])))
+        except ValueError:
+            raise error.ParseError(_("fill expects an integer width"))
+
+    return templatefilters.fill(text, width)
+
+def date(context, mapping, args):
+    if not (1 <= len(args) <= 2):
+        raise error.ParseError(_("date expects one or two arguments"))
+
+    date = args[0][0](context, mapping, args[0][1])
+    if len(args) == 2:
+        fmt = stringify(args[1][0](context, mapping, args[1][1]))
+        return util.datestr(date, fmt)
+    return util.datestr(date)
+
 methods = {
     "string": lambda e, c: (runstring, e[1]),
     "symbol": lambda e, c: (runsymbol, e[1]),
     "group": lambda e, c: compileexp(e[1], c),
 #    ".": buildmember,
@@ -317,10 +338,12 @@ 
     "ifeq": ifeq,
     "join": join,
     "label": label,
     "rstdoc": rstdoc,
     "sub": sub,
+    "fill": fill,
+    "date": date,
 }
 
 # template engine
 
 path = ['templates', '../templates']