| """Implementation of magic functions for the extension machinery. |
| """ |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
|
|
|
|
| |
| from IPython.core.error import UsageError |
| from IPython.core.magic import Magics, magics_class, line_magic |
|
|
| |
| |
| |
|
|
| @magics_class |
| class ExtensionMagics(Magics): |
| """Magics to manage the IPython extensions system.""" |
|
|
| @line_magic |
| def load_ext(self, module_str): |
| """Load an IPython extension by its module name.""" |
| if not module_str: |
| raise UsageError('Missing module name.') |
| res = self.shell.extension_manager.load_extension(module_str) |
| |
| if res == 'already loaded': |
| print("The %s extension is already loaded. To reload it, use:" % module_str) |
| print(" %reload_ext", module_str) |
| elif res == 'no load function': |
| print("The %s module is not an IPython extension." % module_str) |
|
|
| @line_magic |
| def unload_ext(self, module_str): |
| """Unload an IPython extension by its module name. |
| |
| Not all extensions can be unloaded, only those which define an |
| ``unload_ipython_extension`` function. |
| """ |
| if not module_str: |
| raise UsageError('Missing module name.') |
| |
| res = self.shell.extension_manager.unload_extension(module_str) |
| |
| if res == 'no unload function': |
| print("The %s extension doesn't define how to unload it." % module_str) |
| elif res == "not loaded": |
| print("The %s extension is not loaded." % module_str) |
|
|
| @line_magic |
| def reload_ext(self, module_str): |
| """Reload an IPython extension by its module name.""" |
| if not module_str: |
| raise UsageError('Missing module name.') |
| self.shell.extension_manager.reload_extension(module_str) |
|
|