[PATCH 8 of 8] templater: restore use of callable() since it was readded in Python 3.2

Augie Fackler raf at durin42.com
Tue Jun 24 13:37:44 CDT 2014


# HG changeset patch
# User Augie Fackler <raf at durin42.com>
# Date 1403529896 14400
#      Mon Jun 23 09:24:56 2014 -0400
# Node ID b3a487010abeac9a5341961e1dbcf0237374c371
# Parent  57b09c58165f42eb8eccc7be8ebd89101fb95914
templater: restore use of callable() since it was readded in Python 3.2

diff --git a/mercurial/templater.py b/mercurial/templater.py
--- a/mercurial/templater.py
+++ b/mercurial/templater.py
@@ -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()]
 


More information about the Mercurial-devel mailing list