<class 'mercurial.error.ParseError'>
Python 2.7.9: /usr/bin/python
Mon Jun 18 05:46:16 2018

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /usr/lib/python2.7/dist-packages/flup/server/fcgi_base.py in run(self=<flup.server.fcgi_base.Request object>)
    556         """Runs the handler, flushes the streams, and ends the request."""
    557         try:
=>  558             protocolStatus, appStatus = self.server.handler(self)
    559         except:
    560             traceback.print_exc(file=self.stderr)
protocolStatus undefined, appStatus undefined, self = <flup.server.fcgi_base.Request object>, self.server = <flup.server.fcgi.WSGIServer object>, self.server.handler = <bound method WSGIServer.handler of <flup.server.fcgi.WSGIServer object>>
 /usr/lib/python2.7/dist-packages/flup/server/fcgi_base.py in handler(self=<flup.server.fcgi.WSGIServer object>, req=<flup.server.fcgi_base.Request object>)
   1116         try:
   1117             try:
=> 1118                 result = self.application(environ, start_response)
   1119                 try:
   1120                     for data in result:
result = None, self = <flup.server.fcgi.WSGIServer object>, self.application = <mercurial.hgweb.hgwebdir_mod.hgwebdir object>, environ = {'AUTH_USER': '', 'CONTENT_LENGTH': '', 'CONTENT_TYPE': '', 'DOCUMENT_ROOT': '/var/hg/web', 'DOCUMENT_URI': '/c/pontoon/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'x-gzip, gzip, deflate', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'hg.devzero.info', ...}, start_response = <function start_response>
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/hgwebdir_mod.py in __call__(self=<mercurial.hgweb.hgwebdir_mod.hgwebdir object>, env={'AUTH_USER': '', 'CONTENT_LENGTH': '', 'CONTENT_TYPE': '', 'DOCUMENT_ROOT': '/var/hg/web', 'DOCUMENT_URI': '/c/pontoon/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'x-gzip, gzip, deflate', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'hg.devzero.info', ...}, respond=<function start_response>)
    151             for name, ignored in u.configitems('hgweb-paths'):
    152                 for path in u.configlist('hgweb-paths', name):
=>  153                     paths.append((name, path))
    154         elif isinstance(self.conf, (list, tuple)):
    155             paths = self.conf
paths undefined, name undefined, path undefined
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/hgwebdir_mod.py in run_wsgi(self=<mercurial.hgweb.hgwebdir_mod.hgwebdir object>, req=<mercurial.hgweb.request.wsgirequest object>)
    217         return False
    218 
=>  219     def run_wsgi(self, req):
    220         try:
    221             self.refresh()
run_wsgi undefined, self = <mercurial.hgweb.hgwebdir_mod.hgwebdir object>, req = <mercurial.hgweb.request.wsgirequest object>
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/hgweb_mod.py in run_wsgi(self=<mercurial.hgweb.hgweb_mod.hgweb object>, req=<mercurial.hgweb.request.wsgirequest object>)
    251         return repo
    252 
=>  253     @contextlib.contextmanager
    254     def _obtainrepo(self):
    255         """Obtain a repo unique to the caller.
contextlib undefined
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/webcommands.py in summary(web=<mercurial.hgweb.hgweb_mod.hgweb object>, req=<mercurial.hgweb.request.wsgirequest object>, tmpl=<mercurial.templater.templater object>)
    648     entries = webutil.branchentries(web.repo, web.stripecount)
    649     latestentry = webutil.branchentries(web.repo, web.stripecount, 1)
=>  650     return tmpl('branches', node=hex(web.repo.changelog.tip()),
=>  651                 entries=entries, latestentry=latestentry)
    652 
tmpl = <mercurial.templater.templater object>, node undefined, global hex = <built-in function hexlify>, web = <mercurial.hgweb.hgweb_mod.hgweb object>, web.repo = <mercurial.localrepo.proxycls object>, web.repo.changelog = <mercurial.changelog.changelog object>, web.repo.changelog.tip = <bound method changelog.tip of <mercurial.changelog.changelog object>>, entries undefined, latestentry undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in __call__(self=<mercurial.templater.templater object>, t='summary', **mapping={'archives': <generator object archivelist>, 'bookmarks': <function bookmarks>, 'branches': <function branches>, 'desc': 'pontoon/twenty one game', 'lastchange': (1312496954.0, -7200), 'node': '993c2f3b397d381e20fc8807f8e1f17d3644b4c9', 'owner': 'Weegee', 'shortlog': <function changelist>, 'tags': <function tagentries>})
    682     else:
    683         tzoffset = util.makedate()[1]
=>  684     return (date[0], tzoffset)
    685 
    686 @templatefunc('revset(query[, formatargs...])')
global date = <function date>, tzoffset undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in process(self=<mercurial.templater.engine object>, t='summary', mapping={'archives': <generator object archivelist>, 'bookmarks': <function bookmarks>, 'branches': <function branches>, 'desc': 'pontoon/twenty one game', 'lastchange': (1312496954.0, -7200), 'node': '993c2f3b397d381e20fc8807f8e1f17d3644b4c9', 'owner': 'Weegee', 'shortlog': <function changelist>, 'tags': <function tagentries>})
    598         yield args[3][0](context, mapping, args[3][1])
    599 
=>  600 @templatefunc('join(list, sep)')
    601 def join(context, mapping, args):
    602     """Join items in a list with a delimiter."""
templatefunc undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in _load(self=<mercurial.templater.engine object>, t='summary')
    591         raise error.ParseError(_("ifeq expects three or four arguments"))
    592 
=>  593     test = evalstring(context, mapping, args[0])
    594     match = evalstring(context, mapping, args[1])
    595     if test == match:
test undefined, evalstring undefined, context undefined, mapping undefined, args undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in compiletemplate(tmpl='{header}\n<title>{repo|escape}: Summary</title>\n<...parameter}">...</a></td>\n</tr>\n</table>\n{footer}\n', context=<mercurial.templater.engine object>, strtoken='string')
     99             if c == 'r':
    100                 pos += 1
=>  101                 token = 'string'
    102             else:
    103                 token = 'template'
token undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in compileexp(exp=('%', ('symbol', 'bookmarks'), ('symbol', 'bookmarkentry')), context=<mercurial.templater.engine object>)
    104             quote = program[pos:pos + 2]
    105             s = pos = pos + 2
=>  106             while pos < end: # find closing escaped quote
    107                 if program.startswith('\\\\\\', pos, end):
    108                     pos += 4 # skip over double escaped characters
pos undefined, end undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in buildmap(exp=('%', ('symbol', 'bookmarks'), ('symbol', 'bookmarkentry')), context=<mercurial.templater.engine object>)
    176             return parsed, n + 1
    177 
=>  178         parseres, pos = p.parse(tokenize(tmpl, n + 1, stop, '}'))
    179         parsed.append(parseres)
    180 
parseres undefined, pos undefined, p undefined, tokenize undefined, tmpl undefined, n undefined, stop undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in gettemplate(exp=('symbol', 'bookmarkentry'), context=<mercurial.templater.engine object>)
    131             pos -= 1
    132         elif c == term:
=>  133             yield ('end', None, pos + 1)
    134             return
    135         else:
builtin None = None, pos undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in _load(self=<mercurial.templater.engine object>, t='bookmarkentry')
    591         raise error.ParseError(_("ifeq expects three or four arguments"))
    592 
=>  593     test = evalstring(context, mapping, args[0])
    594     match = evalstring(context, mapping, args[1])
    595     if test == match:
test undefined, evalstring undefined, context undefined, mapping undefined, args undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in compiletemplate(tmpl='\n<tr class="parity{parity}">\n<td class="age"><i ...{sessionvars%urlparameter}">files</a>\n</td>\n</tr>', context=<mercurial.templater.engine object>, strtoken='string')
     99             if c == 'r':
    100                 pos += 1
=>  101                 token = 'string'
    102             else:
    103                 token = 'template'
token undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in compileexp(exp=('|', ('symbol', 'bookmark'), ('symbol', 'revescape')), context=<mercurial.templater.engine object>)
    104             quote = program[pos:pos + 2]
    105             s = pos = pos + 2
=>  106             while pos < end: # find closing escaped quote
    107                 if program.startswith('\\\\\\', pos, end):
    108                     pos += 4 # skip over double escaped characters
pos undefined, end undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in buildfilter(exp=('|', ('symbol', 'bookmark'), ('symbol', 'revescape')), context=<mercurial.templater.engine object>)
    159     while pos < stop:
    160         n = min((tmpl.find(c, pos, stop) for c in sepchars),
=>  161                 key=lambda n: (n < 0, n))
    162         if n < 0:
    163             parsed.append(('string', parser.unescapestr(tmpl[pos:stop])))
key undefined, n undefined
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in getfilter(exp=('symbol', 'revescape'), context=<mercurial.templater.engine object>)
    124             while pos < end: # find end of symbol
    125                 d = program[pos]
=>  126                 if not (d.isalnum() or d == "_"):
    127                     break
    128                 pos += 1
d undefined

<class 'mercurial.error.ParseError'>: unknown function 'revescape'
      args = ("unknown function 'revescape'",)
      message = "unknown function 'revescape'"