Source code for snek5000.magic
"""IPython magic extensions
===========================
Usage example in an IPython console:
.. code-block:: ipython
In [1]: %load_ext snek5000.magic
In [2]: %snek abl
INFO Reading baseline parameters from /home/avmo/src/snek5000/snek5000/src/abl/abl.par
Created Simul class and default parameters for abl -> Simul, params
In [3]: sim = Simul(params)
"""
from IPython.core.magic import line_magic, magics_class
from IPython.core.magic_arguments import argument, magic_arguments
from fluidsim_core.magic import MagicsCore
[docs]@magics_class
class SnekMagics(MagicsCore):
"""Magic commands can be loaded in IPython or Jupyter as
>>> %load_ext fluidsim.magic
Examples
--------
- Magic command %fluidsim or %snek (alias)
%snek creates the variables `params` and `Simul` for a particular solver.
Create default parameters for a solver:
>>> %snek phill
If a variable `params` already exists, you will be ask if you really want to
overwrite it. To skip this question:
>>> %snek phill -f
List all available solvers and initialized simulation:
>>> %snek
- Other fluidsim magic commands
Quick reference (print this help message):
>>> %fluidsim_help
Delete the objects `sim` and `params`:
>>> %fluidsim_reset
.. todo::
- Magic command %fluidsim_load
%fluidsim_load creates the variables `sim`, `params` and `Simul` from an
existing simulation.
Load existing simulation excluding state_phys files:
>>> %fluidsim_load
Load existing simulation all options: force overwrite, with state_phys
files, merging parameters:
>>> %fluidsim_load -f -s -t -m
"""
entrypoint_grp = "snek5000.solvers"
[docs] @magic_arguments()
@argument("solver", nargs="?", default="")
@argument("-f", "--force-overwrite", action="store_true")
@line_magic
def snek(self, line):
super().fluidsim(line)
[docs]def load_ipython_extension(ipython):
"""Load the extension in IPython."""
magics = SnekMagics(ipython)
ipython.register_magics(magics)