It is common task in all web frameworks — to provide an easy way to reload development
server on code changes. Most of these frameworks are carrying a reloader's code with
themselves. And there isn't any python module, simple enougth to use in a small project.
Some times ago, I started to write a chat bot called [TheBot] and begun to look for
a separate server reloader's implementation. And found nothing suitable.
Then, I extracted autoreloader from the Django's codebase and put it into a separate
module, which README you are reading now. Code was partly modified, now it allows
not only to watch on file changes but also to reload upon a some event.
Reload on some event is a quite useful feature for [TheBot], because now he can update
himself on a push to the GitHub. A pseudocode for this procedure will look like:
And I don't need an external watcher to run bot, because now he uses [server-reloader].
Here is a simple example, how to use a reloader.
"""Some function, which creates and runs your server."""
before_reload=lambda: print('Reloading code…')
if __name__ == '__main__':
If you want to trigger code reloading on some custom event, then just do:
from server_reloader import trigger_reload
Many thanks to original authors of the autoreloader, I took as the basis.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.