--- a/mercurial/templater.py Mon Jun 23 09:24:38 2014 -0400
+++ b/mercurial/templater.py Mon Jun 23 09:24:56 2014 -0400
@@ -148,7 +148,7 @@
v = context.process(key, mapping)
except TemplateNotFound:
v = ''
- if util.safehasattr(v, '__call__'):
+ if callable(v):
return v(**mapping)
if isinstance(v, types.GeneratorType):
v = list(v)
@@ -185,7 +185,7 @@
def runmap(context, mapping, data):
func, data, ctmpl = data
d = func(context, mapping, data)
- if util.safehasattr(d, '__call__'):
+ if callable(d):
d = d()
lm = mapping.copy()
@@ -335,7 +335,7 @@
raise error.ParseError(_("join expects one or two arguments"))
joinset = args[0][0](context, mapping, args[0][1])
- if util.safehasattr(joinset, '__call__'):
+ if callable(joinset):
jf = joinset.joinfmt
joinset = [jf(x) for x in joinset()]