Important
This documentation covers IPython versions 6.0 and higher. Beginning with version 6.0, IPython stopped supporting compatibility with Python versions lower than 3.3 including all versions of Python 2.7.
If you are looking for an IPython version compatible with Python 2.7, please use the IPython 5.x LTS release and refer to its documentation (LTS is the long term support release).
Module:core.magic_arguments
A decorator-based method of constructing IPython magics with argparse
option handling.
New magic functions can be defined like so:
from IPython.core.magic_arguments import (argument, magic_arguments, parse_argstring) @magic_arguments() @argument('-o', '--option', help='An optional argument.') @argument('arg', type=int, help='An integer positional argument.') def magic_cool(self, arg): """ A really cool magic command. """ args = parse_argstring(magic_cool, arg) ...
The @magic_arguments
decorator marks the function as having argparse arguments. The @argument
decorator adds an argument using the same syntax as argparse’s add_argument()
method. More sophisticated uses may also require the @argument_group
or @kwds
decorator to customize the formatting and the parsing.
Help text for the magic is automatically generated from the docstring and the arguments:
In[1]: %cool? %cool [-o OPTION] arg A really cool magic command. positional arguments: arg An integer positional argument. optional arguments: -o OPTION, --option OPTION An optional argument.
Here is an elaborated example that uses default parameters in argument
and calls the args
in the cell magic:
from IPython.core.magic import register_cell_magic from IPython.core.magic_arguments import (argument, magic_arguments, parse_argstring) @magic_arguments() @argument( "--option", "-o", help=("Add an option here"), ) @argument( "--style", "-s", default="foo", help=("Add some style arguments"), ) @register_cell_magic def my_cell_magic(line, cell): args = parse_argstring(my_cell_magic, line) print(f"{args.option=}") print(f"{args.style=}") print(f"{cell=}")
In a jupyter notebook, this cell magic can be executed like this:
%%my_cell_magic -o Hello print("bar") i = 42
Inheritance diagram:
8 ClassesBases: ArgumentParser
An ArgumentParser tweaked for use by IPython magics.
Raise a catchable error instead of exiting.
Split a string into an argument list and parse that argument list.
Bases: object
Base class for decorators to add ArgumentParser information to a method.
Add this object’s information to the parser, if necessary.
Bases: ArgDecorator
Mark the magic as having argparse arguments and possibly adjust the name.
Bases: ArgDecorator
Base class to define a wrapper for ArgumentParser method.
Child class must define either _method_name
or add_to_parser
.
Add this object’s information to the parser.
Bases: ArgMethodWrapper
Store arguments and keywords to pass to add_argument().
Instances also serve to decorate command methods.
Bases: ArgMethodWrapper
Store arguments and keywords to pass to set_defaults().
Instances also serve to decorate command methods.
Bases: ArgMethodWrapper
Store arguments and keywords to pass to add_argument_group().
Instances also serve to decorate command methods.
Add this object’s information to the parser.
Bases: ArgDecorator
Provide other keywords to the sub-parser constructor.
Construct an argument parser using the function decorations.
Parse the string of arguments for the given magic function.
Find the real name of the magic.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4