D2803: hgweb: stop passing req and tmpl into @webcommand functions (API)
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Mon Mar 12 17:35:16 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG4daa22071d5d: hgweb: stop passing req and tmpl into @webcommand functions (API) (authored by indygreg, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D2803?vs=6864&id=6939
REVISION DETAIL
https://phab.mercurial-scm.org/D2803
AFFECTED FILES
hgext/highlight/__init__.py
hgext/keyword.py
hgext/largefiles/overrides.py
mercurial/hgweb/hgweb_mod.py
mercurial/hgweb/webcommands.py
tests/hgweberror.py
CHANGE DETAILS
diff --git a/tests/hgweberror.py b/tests/hgweberror.py
--- a/tests/hgweberror.py
+++ b/tests/hgweberror.py
@@ -6,7 +6,7 @@
webcommands,
)
-def raiseerror(web, req, tmpl):
+def raiseerror(web):
'''Dummy web command that raises an uncaught Exception.'''
# Simulate an error after partial response.
diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py
--- a/mercurial/hgweb/webcommands.py
+++ b/mercurial/hgweb/webcommands.py
@@ -65,7 +65,7 @@
Usage:
@webcommand('mycommand')
- def mycommand(web, req, tmpl):
+ def mycommand(web):
pass
"""
@@ -78,7 +78,7 @@
return func
@webcommand('log')
-def log(web, req, tmpl):
+def log(web):
"""
/log[/{revision}[/{path}]]
--------------------------
@@ -95,23 +95,23 @@
"""
if web.req.qsparams.get('file'):
- return filelog(web, req, None)
+ return filelog(web)
else:
- return changelog(web, req, None)
+ return changelog(web)
@webcommand('rawfile')
-def rawfile(web, req, tmpl):
+def rawfile(web):
guessmime = web.configbool('web', 'guessmime')
path = webutil.cleanpath(web.repo, web.req.qsparams.get('file', ''))
if not path:
- return manifest(web, req, None)
+ return manifest(web)
try:
fctx = webutil.filectx(web.repo, web.req)
except error.LookupError as inst:
try:
- return manifest(web, req, None)
+ return manifest(web)
except ErrorResponse:
raise inst
@@ -135,7 +135,7 @@
web.res.setbodybytes(text)
return web.res.sendresponse()
-def _filerevision(web, req, fctx):
+def _filerevision(web, fctx):
f = fctx.path()
text = fctx.data()
parity = paritygen(web.stripecount)
@@ -164,7 +164,7 @@
**pycompat.strkwargs(webutil.commonentry(web.repo, fctx)))
@webcommand('file')
-def file(web, req, tmpl):
+def file(web):
"""
/file/{revision}[/{path}]
-------------------------
@@ -184,16 +184,16 @@
be rendered.
"""
if web.req.qsparams.get('style') == 'raw':
- return rawfile(web, req, None)
+ return rawfile(web)
path = webutil.cleanpath(web.repo, web.req.qsparams.get('file', ''))
if not path:
- return manifest(web, req, None)
+ return manifest(web)
try:
- return _filerevision(web, req, webutil.filectx(web.repo, web.req))
+ return _filerevision(web, webutil.filectx(web.repo, web.req))
except error.LookupError as inst:
try:
- return manifest(web, req, None)
+ return manifest(web)
except ErrorResponse:
raise inst
@@ -354,7 +354,7 @@
showunforcekw=showunforcekw)
@webcommand('changelog')
-def changelog(web, req, tmpl, shortlog=False):
+def changelog(web, shortlog=False):
"""
/changelog[/{revision}]
-----------------------
@@ -452,7 +452,7 @@
query=query)
@webcommand('shortlog')
-def shortlog(web, req, tmpl):
+def shortlog(web):
"""
/shortlog
---------
@@ -463,10 +463,10 @@
difference is the ``shortlog`` template will be rendered instead of the
``changelog`` template.
"""
- return changelog(web, req, None, shortlog=True)
+ return changelog(web, shortlog=True)
@webcommand('changeset')
-def changeset(web, req, tmpl):
+def changeset(web):
"""
/changeset[/{revision}]
-----------------------
@@ -498,7 +498,7 @@
return path
@webcommand('manifest')
-def manifest(web, req, tmpl):
+def manifest(web):
"""
/manifest[/{revision}[/{path}]]
-------------------------------
@@ -598,7 +598,7 @@
**pycompat.strkwargs(webutil.commonentry(web.repo, ctx)))
@webcommand('tags')
-def tags(web, req, tmpl):
+def tags(web):
"""
/tags
-----
@@ -632,7 +632,7 @@
latestentry=lambda **x: entries(True, True, **x))
@webcommand('bookmarks')
-def bookmarks(web, req, tmpl):
+def bookmarks(web):
"""
/bookmarks
----------
@@ -671,7 +671,7 @@
latestentry=lambda **x: entries(latestonly=True, **x))
@webcommand('branches')
-def branches(web, req, tmpl):
+def branches(web):
"""
/branches
---------
@@ -694,7 +694,7 @@
latestentry=latestentry)
@webcommand('summary')
-def summary(web, req, tmpl):
+def summary(web):
"""
/summary
--------
@@ -778,7 +778,7 @@
labels=web.configlist('web', 'labels'))
@webcommand('filediff')
-def filediff(web, req, tmpl):
+def filediff(web):
"""
/diff/{revision}/{path}
-----------------------
@@ -827,7 +827,7 @@
diff = webcommand('diff')(filediff)
@webcommand('comparison')
-def comparison(web, req, tmpl):
+def comparison(web):
"""
/comparison/{revision}/{path}
-----------------------------
@@ -902,7 +902,7 @@
**pycompat.strkwargs(webutil.commonentry(web.repo, ctx)))
@webcommand('annotate')
-def annotate(web, req, tmpl):
+def annotate(web):
"""
/annotate/{revision}/{path}
---------------------------
@@ -994,7 +994,7 @@
**pycompat.strkwargs(webutil.commonentry(web.repo, fctx)))
@webcommand('filelog')
-def filelog(web, req, tmpl):
+def filelog(web):
"""
/filelog/{revision}/{path}
--------------------------
@@ -1132,7 +1132,7 @@
**pycompat.strkwargs(webutil.commonentry(web.repo, fctx)))
@webcommand('archive')
-def archive(web, req, tmpl):
+def archive(web):
"""
/archive/{revision}.{format}[/{path}]
-------------------------------------
@@ -1206,7 +1206,7 @@
return []
@webcommand('static')
-def static(web, req, tmpl):
+def static(web):
fname = web.req.qsparams['file']
# a repo owner may set web.static in .hg/hgrc to get any file
# readable by the user running the CGI script
@@ -1221,7 +1221,7 @@
return web.res.sendresponse()
@webcommand('graph')
-def graph(web, req, tmpl):
+def graph(web):
"""
/graph[/{revision}]
-------------------
@@ -1388,7 +1388,7 @@
return doc
@webcommand('help')
-def help(web, req, tmpl):
+def help(web):
"""
/help[/{topic}]
---------------
diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py
--- a/mercurial/hgweb/hgweb_mod.py
+++ b/mercurial/hgweb/hgweb_mod.py
@@ -404,7 +404,7 @@
# override easily enough.
res.status = '200 Script output follows'
res.headers['Content-Type'] = ctype
- return getattr(webcommands, cmd)(rctx, wsgireq, rctx.tmpl)
+ return getattr(webcommands, cmd)(rctx)
except (error.LookupError, error.RepoLookupError) as err:
msg = pycompat.bytestr(err)
diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
--- a/hgext/largefiles/overrides.py
+++ b/hgext/largefiles/overrides.py
@@ -932,11 +932,11 @@
finally:
repo.unfiltered().lfstatus = False
-def hgwebarchive(orig, web, req, tmpl):
+def hgwebarchive(orig, web):
web.repo.lfstatus = True
try:
- return orig(web, req, tmpl)
+ return orig(web)
finally:
web.repo.lfstatus = False
diff --git a/hgext/keyword.py b/hgext/keyword.py
--- a/hgext/keyword.py
+++ b/hgext/keyword.py
@@ -614,14 +614,14 @@
if kwt:
kwt.restrict = restrict
-def kwweb_skip(orig, web, req, tmpl):
+def kwweb_skip(orig, web):
'''Wraps webcommands.x turning off keyword expansion.'''
kwt = getattr(web.repo, '_keywordkwt', None)
if kwt:
origmatch = kwt.match
kwt.match = util.never
try:
- for chunk in orig(web, req, tmpl):
+ for chunk in orig(web):
yield chunk
finally:
if kwt:
diff --git a/hgext/highlight/__init__.py b/hgext/highlight/__init__.py
--- a/hgext/highlight/__init__.py
+++ b/hgext/highlight/__init__.py
@@ -58,7 +58,7 @@
highlight.pygmentize(field, fctx, style, tmpl,
guessfilenameonly=filenameonly)
-def filerevision_highlight(orig, web, req, fctx):
+def filerevision_highlight(orig, web, 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
@@ -70,17 +70,17 @@
if 'html' in mt:
pygmentize(web, 'fileline', fctx, web.tmpl)
- return orig(web, req, fctx)
+ return orig(web, fctx)
-def annotate_highlight(orig, web, req, tmpl):
+def annotate_highlight(orig, web):
mt = ''.join(web.tmpl('mimetype', encoding=encoding.encoding))
if 'html' in mt:
fctx = webutil.filectx(web.repo, web.req)
pygmentize(web, 'annotateline', fctx, web.tmpl)
- return orig(web, req, web.tmpl)
+ return orig(web)
-def generate_css(web, req, tmpl):
+def generate_css(web):
pg_style = web.config('web', 'pygments_style', 'colorful')
fmter = highlight.HtmlFormatter(style=pg_style)
web.res.headers['Content-Type'] = 'text/css'
To: indygreg, #hg-reviewers, durin42
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list