An IPython extension is an importable Python module that has a function with the signature:
def load_ipython_extension(ipython): # Do things with ipython
This function is called after your extension is imported and the currently active InteractiveShell
instance is passed as the only argument. You can do anything you want with IPython at that point, including defining new magic and aliases, adding new components, etc.
You can also optionally define an unload_ipython_extension(ipython)
function, which will be called if the user unloads or reloads the extension. The extension manager will only call load_ipython_extension
again if the extension is reloaded.
You can put your extension modules anywhere you want, as long as they can be imported by Python's standard import mechanism. However, to make it easy to write extensions, you can also put your extensions in os.path.join(self.ipython_dir, 'extensions')
. This directory is added to sys.path
automatically.
A class to manage IPython extensions.
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them