--> --> -->
 
 
KeyError
Python 2.4.6: /usr/bin/python2.4
Sun Aug 1 11:28:30 2010

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

 /srv/de.thinkmo.hg/cgi-bin/hgwebdir.cgi
   28 # or use a dictionary with entries like 'virtual/path': '/real/path'
   29 
   30 h = hgweb.hgwebdir("hgweb.config")
   31 h.run()
   32 
h = <mercurial.hgweb.hgwebdir_mod.hgwebdir object>, h.run = <bound method hgwebdir.run of <mercurial.hgweb.hgwebdir_mod.hgwebdir object>>
 /srv/de.thinkmo.hg/hg-0.9.4/lib/python/mercurial/hgweb/hgwebdir_mod.py in run(self=<mercurial.hgweb.hgwebdir_mod.hgwebdir object>)
   64         def make_web_app():
   65             return self
   66         wsgicgi.launch(wsgiapplication(make_web_app))
   67 
   68     def run_wsgi(self, req):
wsgicgi = <module 'mercurial.hgweb.wsgicgi' from '/srv/de....oductive/lib/python/mercurial/hgweb/wsgicgi.pyc'>, wsgicgi.launch = <function launch>, wsgiapplication = <class 'mercurial.hgweb.request.wsgiapplication'>, make_web_app = <function make_web_app>
 /srv/de.thinkmo.hg/hg-0.9.4/lib/python/mercurial/hgweb/wsgicgi.py in launch(application=<mercurial.hgweb.request.wsgiapplication object>)
   62         return write
   63 
   64     result = application(environ, start_response)
   65     try:
   66         for data in result:
result undefined, application = <mercurial.hgweb.request.wsgiapplication object>, environ = {'DOCUMENT_ROOT': '/srv/de.thinkmo.hg/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'hg.thinkmo.de', 'HTTP_PRAGMA': 'no-cache', ...}, start_response = <function start_response>
 /srv/de.thinkmo.hg/hg-0.9.4/lib/python/mercurial/hgweb/request.py in __call__(self=<mercurial.hgweb.request.wsgiapplication object>, wsgienv={'DOCUMENT_ROOT': '/srv/de.thinkmo.hg/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'hg.thinkmo.de', 'HTTP_PRAGMA': 'no-cache', ...}, start_response=<function start_response>)
   15 
   16     def __call__(self, wsgienv, start_response):
   17         return _wsgirequest(self.destmaker(), wsgienv, start_response)
   18 
   19 class _wsgirequest(object):
global _wsgirequest = <class 'mercurial.hgweb.request._wsgirequest'>, self = <mercurial.hgweb.request.wsgiapplication object>, self.destmaker = <function make_web_app>, wsgienv = {'DOCUMENT_ROOT': '/srv/de.thinkmo.hg/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'hg.thinkmo.de', 'HTTP_PRAGMA': 'no-cache', ...}, start_response = <function start_response>
 /srv/de.thinkmo.hg/hg-0.9.4/lib/python/mercurial/hgweb/request.py in __init__(self=<mercurial.hgweb.request._wsgirequest object>, destination=<mercurial.hgweb.hgwebdir_mod.hgwebdir object>, wsgienv={'DOCUMENT_ROOT': '/srv/de.thinkmo.hg/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'hg.thinkmo.de', 'HTTP_PRAGMA': 'no-cache', ...}, start_response=<function start_response>)
   33         self.start_response = start_response
   34         self.headers = []
   35         destination.run_wsgi(self)
   36 
   37     out = property(lambda self: self)
destination = <mercurial.hgweb.hgwebdir_mod.hgwebdir object>, destination.run_wsgi = <bound method hgwebdir.run_wsgi of <mercurial.hgweb.hgwebdir_mod.hgwebdir object>>, self = <mercurial.hgweb.request._wsgirequest object>
 /srv/de.thinkmo.hg/hg-0.9.4/lib/python/mercurial/hgweb/hgwebdir_mod.py in run_wsgi(self=<mercurial.hgweb.hgwebdir_mod.hgwebdir object>, req=<mercurial.hgweb.request._wsgirequest object>)
  212                         req.write(tmpl("error", error=str(inst)))
  213                 else:
  214                     req.write(tmpl("notfound", repo=virtual))
  215             else:
  216                 if req.form.has_key('static'):
req = <mercurial.hgweb.request._wsgirequest object>, req.write = <bound method _wsgirequest.write of <mercurial.hgweb.request._wsgirequest object>>, tmpl = None, repo undefined, virtual = 'robots.txt'
 /srv/de.thinkmo.hg/hg-0.9.4/lib/python/mercurial/hgweb/request.py in write(self=<mercurial.hgweb.request._wsgirequest object>, *things=(<generator object>,))
   46         for thing in things:
   47             if hasattr(thing, "__iter__"):
   48                 for part in thing:
   49                     self.write(part)
   50             else:
part undefined, thing = <generator object>
 /srv/de.thinkmo.hg/hg-0.9.4/lib/python/mercurial/templater.py in __call__(self=<mercurial.templater.templater object>, t='notfound', **map={'repo': 'robots.txt'})
   85         if not self.cache.has_key(t):
   86             try:
   87                 self.cache[t] = file(self.map[t]).read()
   88             except IOError, inst:
   89                 raise IOError(inst.args[0], _('template file %s: %s') %
self = <mercurial.templater.templater object>, self.cache = {'annotateline': '<tr style="font-family:monospace" class="parity#...v#</a></td><td><pre>#line|escape#</pre></td></tr>', 'archiveentry': ' | <a href="{url}archive/{node|short}{extension}">#type|escape#</a> ', 'branchentry': '<tr class="parity{parity}"><td class="age"><i>{d...sessionvars%urlparameter}">manifest</a></td></tr>', 'branchtag': '<span class="branchtag" title="{name}">{name}</span> ', 'changelogchild': '<tr><th class="child">child #rev#:</th><td class...ionvars%urlparameter}">#node|short#</a></td></tr>', 'changelogparent': '<tr><th class="parent">parent #rev#:</th><td cla...ionvars%urlparameter}">#node|short#</a></td></tr>', 'changesetchild': '<tr><td>child {rev}</td><td style="font-family:m...ionvars%urlparameter}">{node|short}</a></td></tr>', 'changesetparent': '<tr><td>parent {rev}</td><td style="font-family:...ionvars%urlparameter}">{node|short}</a></td></tr>', 'default': 'summary', 'diffblock': '<pre>#lines#</pre>', ...}, t = 'notfound', builtin file = <type 'file'>, self.map = {'changelog': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/changelog.tmpl', 'changelogentry': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/changelogentry.tmpl', 'changeset': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/changeset.tmpl', 'error': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/error.tmpl', 'fileannotate': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/fileannotate.tmpl', 'filediff': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/filediff.tmpl', 'filelog': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/filelog.tmpl', 'filerevision': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/filerevision.tmpl', 'footer': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/footer.tmpl', 'header': '/srv/de.thinkmo.hg/hg-productive/lib/python/mercurial/templates/gitweb/header.tmpl', ...}, ).read undefined

KeyError: 'notfound'
      args = ('notfound',)