Python hot code reloading tool.
pip install reloadr
You can simply decorate your functions / classes with
you are ready to go.
.. code:: python
from reloadr import autoreload def do_something(a, b): return a + b class SomeThing: def do_stuff(self): pass
To reload the code manually, you can use of the following:
.. code:: Python
from reloadr import reloadr class SomeThing: def do_stuff(self): pass # Manual reload SomeThing._reload() # Automatic reload using filesystem notifications SomeThing._start_watch_reload() # Automatic reload in a thread every 1 second SomeThing._start_timer_reload(1)
Launch an example (they each contain an infinite loop), then change the source code of the decorated class or function.
git clone https://github.com/hoh/reloadr.git
Instead of importing your source file again, which can lead to undesired side effects, Reloadr fetches the new code of your function within the Python source file, and executes that code in the environment of your already loaded module.
This allows it to reload code that is followed by blocking instructions such as the infinite loops you can find in the examples.
To achieve this, Reloadr relies on
RedBaron <https://github.com/psycojoker/redbaron/>_ , an great tool for manipulating
Python source code.
This project is still in its early stages. All ideas for improvement are welcome.