Example #1
0
class Reloader(object):
    @save_args
    def __init__(self, get_app, watch, skip=SKIP, exclude='*.pyc'):
        self.app = self.get_app()
        self.watcher = FileWatcher(watch, exclude=exclude)

    def __call__(self, environ, start_response):
        if self.watcher.changed():
            del self.app
            for i in set(sys.modules.keys()).difference(self.skip):
                del sys.modules[i]
            self.app = self.get_app()
        return self.app(environ, start_response)