Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/hgweb/hgweb_mod.py @ 36893:4daa22071d5d
hgweb: stop passing req and tmpl into @webcommand functions (API)
We have effectively removed all consumers of the old wsgirequest
type. The templater can be accessed on the requestcontext passed
into the @webcommand function.
For the most part, these arguments are unused. They only exist to
provide backwards compatibility. And in the case of wsgirequest,
use of that object could actively interfere with the new request
object.
So let's stop passing these objects to @webcommand functions.
With this commit, wsgirequest is practically dead from the hgweb
WSGI application. There are still some uses in hgwebdir though...
.. api::
@webcommand functions now only receive a single argument. The
request and templater instances can be accessed via the
``req`` and ``templater`` attributes of the first argument.
Note that the request object is different from previous Mercurial
releases and consumers of the previous ``req`` 2nd argument
will need updating to use the new API.
Differential Revision: https://phab.mercurial-scm.org/D2803
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 10 Mar 2018 20:51:46 -0800 |
parents | 061635d4221c |
children | d0b0fedbfb53 |
comparison
equal
deleted
inserted
replaced
36892:563fd95a6efb | 36893:4daa22071d5d |
---|---|
402 else: | 402 else: |
403 # Set some globals appropriate for web handlers. Commands can | 403 # Set some globals appropriate for web handlers. Commands can |
404 # override easily enough. | 404 # override easily enough. |
405 res.status = '200 Script output follows' | 405 res.status = '200 Script output follows' |
406 res.headers['Content-Type'] = ctype | 406 res.headers['Content-Type'] = ctype |
407 return getattr(webcommands, cmd)(rctx, wsgireq, rctx.tmpl) | 407 return getattr(webcommands, cmd)(rctx) |
408 | 408 |
409 except (error.LookupError, error.RepoLookupError) as err: | 409 except (error.LookupError, error.RepoLookupError) as err: |
410 msg = pycompat.bytestr(err) | 410 msg = pycompat.bytestr(err) |
411 if (util.safehasattr(err, 'name') and | 411 if (util.safehasattr(err, 'name') and |
412 not isinstance(err, error.ManifestLookupError)): | 412 not isinstance(err, error.ManifestLookupError)): |