Hot Reloading
Making development of robotic application fast and easy is at the core of our thinking for dora-rs.
To reduce development time, we have added a hot-reload
option for Python Operators that enables dora-rs to watch for changes.
This is implemented in the likes of npm start
or uvicorn main:app --reload
Purpose
Sometimes reloading a robotic environment ( both virtual and physical ) might be really time-consuming. Being able to hot-reload an operator makes iteration on change a lot quicker.
Usage
dora start dataflow.yaml --attach --hot-reload
Fail-safe mechanism
- Failing the initialization on reloading is going to abort the reloading and not crash the operator.
- State-values stored in the before-reloading Operator will be forwarded to the reloaded operator.
- If new state-value is been set in the initialization, they will be available in the reloaded operator.
- If state-value has been changed in the initialization but was already used before, they will keep their before-reloading value ( used or not ). It is therefore not possible to change currently being used state-value stored in the Operator class.
- You can use global variable if you wish to have 'changeable' variables.
Demo
You can see a quick demo here: