# HG changeset patch # User introom # Date 1434027264 14400 # Node ID 69e8384a436ce703dba436fd8d6e49a63efe517b # Parent 2b2108c35bfca8d553602b8e3f765f36b2c97a41 fancyopts: allow all callable as default parameter value The current fancyopts allows function as default parameter value but not other callables. By supporting other callables, we can have the benefits of e.g., custom __str__ method, which will be printed by 'hg help' as the default value. diff -r 2b2108c35bfc -r 69e8384a436c mercurial/fancyopts.py --- a/mercurial/fancyopts.py Fri Jun 12 16:11:42 2015 -0400 +++ b/mercurial/fancyopts.py Thu Jun 11 08:54:24 2015 -0400 @@ -103,8 +103,9 @@ # transfer result to state for opt, val in opts: name = argmap[opt] - t = type(defmap[name]) - if t is type(fancyopts): + obj = defmap[name] + t = type(obj) + if callable(obj): state[name] = defmap[name](val) elif t is type(1): try: