# HG changeset patch # User Gregory Szorc # Date 2018-03-11 04:38:28 # Node ID ece242db5000fbe3b22193703a9b0a2ea223b855 # Parent 061635d4221c3df724e261e9e9d7900c98634610 hgweb: use templater on requestcontext instance After this commit, all @webcommand function no longer use their "tmpl" argument. Instead, they use the templater attached to the requestcontext. This is the same exact object. So there should be no difference in behavior. Differential Revision: https://phab.mercurial-scm.org/D2800 diff --git a/hgext/highlight/__init__.py b/hgext/highlight/__init__.py --- a/hgext/highlight/__init__.py +++ b/hgext/highlight/__init__.py @@ -58,8 +58,8 @@ def pygmentize(web, field, fctx, tmpl): highlight.pygmentize(field, fctx, style, tmpl, guessfilenameonly=filenameonly) -def filerevision_highlight(orig, web, req, tmpl, fctx): - mt = ''.join(tmpl('mimetype', encoding=encoding.encoding)) +def filerevision_highlight(orig, web, req, fctx): + mt = ''.join(web.tmpl('mimetype', encoding=encoding.encoding)) # only pygmentize for mimetype containing 'html' so we both match # 'text/html' and possibly 'application/xhtml+xml' in the future # so that we don't have to touch the extension when the mimetype @@ -68,17 +68,17 @@ def filerevision_highlight(orig, web, re # can't clash with the file's content-type here in case we # pygmentize a html file if 'html' in mt: - pygmentize(web, 'fileline', fctx, tmpl) + pygmentize(web, 'fileline', fctx, web.tmpl) - return orig(web, req, tmpl, fctx) + return orig(web, req, fctx) def annotate_highlight(orig, web, req, tmpl): - mt = ''.join(tmpl('mimetype', encoding=encoding.encoding)) + mt = ''.join(web.tmpl('mimetype', encoding=encoding.encoding)) if 'html' in mt: fctx = webutil.filectx(web.repo, req) - pygmentize(web, 'annotateline', fctx, tmpl) + pygmentize(web, 'annotateline', fctx, web.tmpl) - return orig(web, req, tmpl) + return orig(web, req, web.tmpl) def generate_css(web, req, tmpl): pg_style = web.config('web', 'pygments_style', 'colorful') diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py +++ b/mercurial/hgweb/webcommands.py @@ -95,9 +95,9 @@ def log(web, req, tmpl): """ if web.req.qsparams.get('file'): - return filelog(web, req, tmpl) + return filelog(web, req, None) else: - return changelog(web, req, tmpl) + return changelog(web, req, None) @webcommand('rawfile') def rawfile(web, req, tmpl): @@ -105,13 +105,13 @@ def rawfile(web, req, tmpl): path = webutil.cleanpath(web.repo, web.req.qsparams.get('file', '')) if not path: - return manifest(web, req, tmpl) + return manifest(web, req, None) try: fctx = webutil.filectx(web.repo, req) except error.LookupError as inst: try: - return manifest(web, req, tmpl) + return manifest(web, req, None) except ErrorResponse: raise inst @@ -135,7 +135,7 @@ def rawfile(web, req, tmpl): web.res.setbodybytes(text) return web.res.sendresponse() -def _filerevision(web, req, tmpl, fctx): +def _filerevision(web, req, fctx): f = fctx.path() text = fctx.data() parity = paritygen(web.stripecount) @@ -184,20 +184,20 @@ def file(web, req, tmpl): be rendered. """ if web.req.qsparams.get('style') == 'raw': - return rawfile(web, req, tmpl) + return rawfile(web, req, None) path = webutil.cleanpath(web.repo, web.req.qsparams.get('file', '')) if not path: - return manifest(web, req, tmpl) + return manifest(web, req, None) try: - return _filerevision(web, req, tmpl, webutil.filectx(web.repo, req)) + return _filerevision(web, req, webutil.filectx(web.repo, req)) except error.LookupError as inst: try: - return manifest(web, req, tmpl) + return manifest(web, req, None) except ErrorResponse: raise inst -def _search(web, tmpl): +def _search(web): MODE_REVISION = 'rev' MODE_KEYWORD = 'keyword' MODE_REVSET = 'revset' @@ -290,14 +290,16 @@ def _search(web, tmpl): for ctx in searchfunc[0](funcarg): count += 1 n = ctx.node() - showtags = webutil.showtag(web.repo, tmpl, 'changelogtag', n) - files = webutil.listfilediffs(tmpl, ctx.files(), n, web.maxfiles) + showtags = webutil.showtag(web.repo, web.tmpl, 'changelogtag', n) + files = webutil.listfilediffs(web.tmpl, ctx.files(), n, + web.maxfiles) - yield tmpl('searchentry', - parity=next(parity), - changelogtag=showtags, - files=files, - **pycompat.strkwargs(webutil.commonentry(web.repo, ctx))) + yield web.tmpl( + 'searchentry', + parity=next(parity), + changelogtag=showtags, + files=files, + **pycompat.strkwargs(webutil.commonentry(web.repo, ctx))) if count >= revcount: break @@ -308,14 +310,14 @@ def _search(web, tmpl): try: revcount = int(web.req.qsparams.get('revcount', revcount)) revcount = max(revcount, 1) - tmpl.defaults['sessionvars']['revcount'] = revcount + web.tmpl.defaults['sessionvars']['revcount'] = revcount except ValueError: pass - lessvars = copy.copy(tmpl.defaults['sessionvars']) + lessvars = copy.copy(web.tmpl.defaults['sessionvars']) lessvars['revcount'] = max(revcount // 2, 1) lessvars['rev'] = query - morevars = copy.copy(tmpl.defaults['sessionvars']) + morevars = copy.copy(web.tmpl.defaults['sessionvars']) morevars['revcount'] = revcount * 2 morevars['rev'] = query @@ -382,7 +384,7 @@ def changelog(web, req, tmpl, shortlog=F ctx = webutil.changectx(web.repo, req) symrev = webutil.symrevorshortnode(req, ctx) elif 'rev' in web.req.qsparams: - return _search(web, tmpl) + return _search(web) else: ctx = web.repo['tip'] symrev = 'tip' @@ -397,7 +399,7 @@ def changelog(web, req, tmpl, shortlog=F if curcount > revcount + 1: break - entry = webutil.changelistentry(web, web.repo[rev], tmpl) + entry = webutil.changelistentry(web, web.repo[rev], web.tmpl) entry['parity'] = next(parity) yield entry @@ -410,13 +412,13 @@ def changelog(web, req, tmpl, shortlog=F try: revcount = int(web.req.qsparams.get('revcount', revcount)) revcount = max(revcount, 1) - tmpl.defaults['sessionvars']['revcount'] = revcount + web.tmpl.defaults['sessionvars']['revcount'] = revcount except ValueError: pass - lessvars = copy.copy(tmpl.defaults['sessionvars']) + lessvars = copy.copy(web.tmpl.defaults['sessionvars']) lessvars['revcount'] = max(revcount // 2, 1) - morevars = copy.copy(tmpl.defaults['sessionvars']) + morevars = copy.copy(web.tmpl.defaults['sessionvars']) morevars['revcount'] = revcount * 2 count = len(web.repo) @@ -461,7 +463,7 @@ def shortlog(web, req, tmpl): difference is the ``shortlog`` template will be rendered instead of the ``changelog`` template. """ - return changelog(web, req, tmpl, shortlog=True) + return changelog(web, req, None, shortlog=True) @webcommand('changeset') def changeset(web, req, tmpl): @@ -483,7 +485,7 @@ def changeset(web, req, tmpl): return web.sendtemplate( 'changeset', - **webutil.changesetentry(web, req, tmpl, ctx)) + **webutil.changesetentry(web, req, web.tmpl, ctx)) rev = webcommand('rev')(changeset) @@ -717,11 +719,12 @@ def summary(web, req, tmpl): if count > 10: # limit to 10 tags break - yield tmpl("tagentry", - parity=next(parity), - tag=k, - node=hex(n), - date=web.repo[n].date()) + yield web.tmpl( + 'tagentry', + parity=next(parity), + tag=k, + node=hex(n), + date=web.repo[n].date()) def bookmarks(**map): parity = paritygen(web.stripecount) @@ -743,7 +746,7 @@ def summary(web, req, tmpl): for i in revs: ctx = web.repo[i] - l.append(tmpl( + l.append(web.tmpl( 'shortlogentry', parity=next(parity), **pycompat.strkwargs(webutil.commonentry(web.repo, ctx)))) @@ -805,7 +808,7 @@ def filediff(web, req, tmpl): if 'style' in web.req.qsparams: style = web.req.qsparams['style'] - diffs = webutil.diffs(web, tmpl, ctx, basectx, [path], style) + diffs = webutil.diffs(web, web.tmpl, ctx, basectx, [path], style) if fctx is not None: rename = webutil.renamelink(fctx) ctx = fctx @@ -878,7 +881,7 @@ def comparison(web, req, tmpl): pfctx = ctx.parents()[0][path] leftlines = filelines(pfctx) - comparison = webutil.compare(tmpl, context, leftlines, rightlines) + comparison = webutil.compare(web.tmpl, context, leftlines, rightlines) if fctx is not None: rename = webutil.renamelink(fctx) ctx = fctx @@ -1028,15 +1031,15 @@ def filelog(web, req, tmpl): try: revcount = int(web.req.qsparams.get('revcount', revcount)) revcount = max(revcount, 1) - tmpl.defaults['sessionvars']['revcount'] = revcount + web.tmpl.defaults['sessionvars']['revcount'] = revcount except ValueError: pass lrange = webutil.linerange(req) - lessvars = copy.copy(tmpl.defaults['sessionvars']) + lessvars = copy.copy(web.tmpl.defaults['sessionvars']) lessvars['revcount'] = max(revcount // 2, 1) - morevars = copy.copy(tmpl.defaults['sessionvars']) + morevars = copy.copy(web.tmpl.defaults['sessionvars']) morevars['revcount'] = revcount * 2 patch = 'patch' in web.req.qsparams @@ -1063,7 +1066,7 @@ def filelog(web, req, tmpl): ctx = fctx.changectx() basectx = ctx.p1() path = fctx.path() - return webutil.diffs(web, tmpl, ctx, basectx, [path], diffstyle, + return webutil.diffs(web, web.tmpl, ctx, basectx, [path], diffstyle, linerange=linerange, lineidprefix='%s-' % ctx.hex()[:12]) @@ -1255,17 +1258,17 @@ def graph(web, req, tmpl): try: revcount = int(web.req.qsparams.get('revcount', revcount)) revcount = max(revcount, 1) - tmpl.defaults['sessionvars']['revcount'] = revcount + web.tmpl.defaults['sessionvars']['revcount'] = revcount except ValueError: pass - lessvars = copy.copy(tmpl.defaults['sessionvars']) + lessvars = copy.copy(web.tmpl.defaults['sessionvars']) lessvars['revcount'] = max(revcount // 2, 1) - morevars = copy.copy(tmpl.defaults['sessionvars']) + morevars = copy.copy(web.tmpl.defaults['sessionvars']) morevars['revcount'] = revcount * 2 graphtop = web.req.qsparams.get('graphtop', ctx.hex()) - graphvars = copy.copy(tmpl.defaults['sessionvars']) + graphvars = copy.copy(web.tmpl.defaults['sessionvars']) graphvars['graphtop'] = graphtop count = len(web.repo)