templater: drop support for old style keywords (API)
These changes originated from several commits over a period of time, so I'm
slightly unsure if this is correct. But the tests pass.
--- a/mercurial/hgweb/webutil.py Sat May 18 19:38:47 2019 -0400
+++ b/mercurial/hgweb/webutil.py Sat May 18 19:56:06 2019 -0400
@@ -409,12 +409,6 @@
whyunstable._requires = {'repo', 'ctx'}
-# helper to mark a function as a new-style template keyword; can be removed
-# once old-style function gets unsupported and new-style becomes the default
-def _kwfunc(f):
- f._requires = ()
- return f
-
def commonentry(repo, ctx):
node = scmutil.binnode(ctx)
return {
@@ -439,8 +433,8 @@
'branches': nodebranchdict(repo, ctx),
'tags': nodetagsdict(repo, node),
'bookmarks': nodebookmarksdict(repo, node),
- 'parent': _kwfunc(lambda context, mapping: parents(ctx)),
- 'child': _kwfunc(lambda context, mapping: children(ctx)),
+ 'parent': lambda context, mapping: parents(ctx),
+ 'child': lambda context, mapping: children(ctx),
}
def changelistentry(web, ctx):
@@ -457,9 +451,9 @@
entry = commonentry(repo, ctx)
entry.update({
- 'allparents': _kwfunc(lambda context, mapping: parents(ctx)),
- 'parent': _kwfunc(lambda context, mapping: parents(ctx, rev - 1)),
- 'child': _kwfunc(lambda context, mapping: children(ctx, rev + 1)),
+ 'allparents': lambda context, mapping: parents(ctx),
+ 'parent': lambda context, mapping: parents(ctx, rev - 1),
+ 'child': lambda context, mapping: children(ctx, rev + 1),
'changelogtag': showtags,
'files': files,
})
@@ -529,7 +523,7 @@
changesetbranch=showbranch,
files=templateutil.mappedgenerator(_listfilesgen,
args=(ctx, web.stripecount)),
- diffsummary=_kwfunc(lambda context, mapping: diffsummary(diffstatsgen)),
+ diffsummary=lambda context, mapping: diffsummary(diffstatsgen),
diffstat=diffstats,
archives=web.archivelist(ctx.hex()),
**pycompat.strkwargs(commonentry(web.repo, ctx)))
--- a/mercurial/registrar.py Sat May 18 19:38:47 2019 -0400
+++ b/mercurial/registrar.py Sat May 18 19:56:06 2019 -0400
@@ -338,13 +338,6 @@
'''
pass
- # old API (DEPRECATED)
- @templatekeyword('mykeyword')
- def mykeywordfunc(repo, ctx, templ, cache, revcache, **args):
- '''Explanation of this template keyword ....
- '''
- pass
-
The first string argument is used also in online help.
Optional argument 'requires' should be a collection of resource names
--- a/mercurial/templateutil.py Sat May 18 19:38:47 2019 -0400
+++ b/mercurial/templateutil.py Sat May 18 19:56:06 2019 -0400
@@ -874,7 +874,6 @@
def _recursivesymbolblocker(key):
def showrecursion(context, mapping):
raise error.Abort(_("recursive reference '%s' in template") % key)
- showrecursion._requires = () # mark as new-style templatekw
return showrecursion
def runsymbol(context, mapping, key, default=''):
@@ -888,19 +887,6 @@
v = context.process(key, safemapping)
except TemplateNotFound:
v = default
- if callable(v) and getattr(v, '_requires', None) is None:
- # old templatekw: expand all keywords and resources
- # (TODO: drop support for old-style functions. 'f._requires = ()'
- # can be removed.)
- props = {k: context._resources.lookup(mapping, k)
- for k in context._resources.knownkeys()}
- # pass context to _showcompatlist() through templatekw._showlist()
- props['templ'] = context
- props.update(mapping)
- ui = props.get('ui')
- if ui:
- ui.deprecwarn("old-style template keyword '%s'" % key, '4.8')
- return v(**pycompat.strkwargs(props))
if callable(v):
# new templatekw
try: