from twisted.python import rebuildfrom nevow import appserverclass LiveReloadNevowSite(appserver.NevowSite): """A NevowSite that reloads a given set of modules on every page rendering. """ _modules = [] _mode = 'reload' def setMode(self, mode): assert mode in [ "reload", "normal" ] def addModule(self, mod): self._modules.append(mod) def handleSegment(self, result, request, path, pageContext): if self._mode == "reload": for mod in self._modules: rebuild.rebuild(mod) return appserver.NevowSite.handleSegment(self, result, request, path, pageContext)