The current options for autoreload are encoded as:
if mode == "" or mode == "now":
self._reloader.check(True)
elif mode == "0" or mode == "off":
self._reloader.enabled = False
elif mode == "1" or mode == "explicit":
self._reloader.enabled = True
self._reloader.check_all = False
self._reloader.autoload_obj = False
elif mode == "2" or mode == "all":
self._reloader.enabled = True
self._reloader.check_all = True
self._reloader.autoload_obj = False
elif mode == "3" or mode == "complete":
self._reloader.enabled = True
self._reloader.check_all = True
self._reloader.autoload_obj = True
else:
raise ValueError(f'Unrecognized autoreload mode "{mode}".')
Unfortunately, there is no option for check_all = False + autoload_obj = True. It does not appear this is a necessary limitation. In fact, people might like very much this setting to:
- Specify explicitly the modules for autoreload to pay attention to (for speed).
- Track the objects in those modules to keep the
import from's up to date (for correctness).
I verified this combination works just fine, with some simple testing of files:
%load_ext autoreload
%autoreload -p 3 # aka check_all=True autoload_obj=True
ip=get_ipython()
ip.magics_manager.magics['line']['autoreload'].__self__._reloader.check_all = False
%aimport a, b
Ideally we'd have something like:
| check_all |
autoload_obj |
Value |
Description |
| False |
False |
1 |
explicit |
| True |
False |
2 |
all |
| False |
True |
3 |
careful |
| True |
True |
4 |
complete |
but given that 3 has already been encoded as complete, perhaps 3 and 4 could be swapped, or careful could be 5. Either of these makes it sound like careful is "better than" complete, but it's not really.
The other option would be to support flags to the magic command to toggle these options, instead of/in addition to the names/numbers. So --import_objects and --check_all. Then there would be name+number for only 3 of 4 possible combinations , but you could reach the fourth state like:
[1] %autoreload --import_objects
The current options for
autoreloadare encoded as:Unfortunately, there is no option for
check_all = False+autoload_obj = True. It does not appear this is a necessary limitation. In fact, people might like very much this setting to:import from's up to date (for correctness).I verified this combination works just fine, with some simple testing of files:
Ideally we'd have something like:
but given that
3has already been encoded ascomplete, perhaps3and4could be swapped, orcarefulcould be 5. Either of these makes it sound likecarefulis "better than"complete, but it's not really.The other option would be to support flags to the magic command to toggle these options, instead of/in addition to the names/numbers. So
--import_objectsand--check_all. Then there would be name+number for only 3 of 4 possible combinations , but you could reach the fourth state like: