aiida.tools.ipython package#
Submodules#
File to be executed by IPython in order to register the line magic %aiida
This file can be put into the startup folder in order to have the line
magic available at startup.
The start up folder is usually at .ipython/profile_default/startup/
An IPython extension that provides a magic command to load basic aiida commands.
This makes it much easier to start.
Produces output in:
Plaintext (IPython [qt]console)
HTML (IPython notebook,
nbconvert --to html
,--to slides
)JSON (IPython notebook
.ipynb
files)LaTeX (e.g.
ipython nbconvert example.ipynb --to LaTeX --post PDF
)
Notes on how to load it at start: https://ipython.org/ipython-doc/3/config/intro.html
Usage#
In [1]: %load_ext aiida_magic
In [2]: %aiida
- class aiida.tools.ipython.ipython_magics.AiiDALoaderMagics(**kwargs: Any)[source]#
Bases:
IPython.core.magic.Magics
AiiDA magic loader.
- __annotations__ = {}#
- __module__ = 'aiida.tools.ipython.ipython_magics'#
- _all_trait_default_generators: dict[str, t.Any] = {'config': <bound method TraitType.default of <traitlets.traitlets.Instance object>>, 'parent': <bound method TraitType.default of <traitlets.traitlets.Instance object>>}#
- _descriptors = [<traitlets.traitlets.ObserveHandler object>, <traitlets.traitlets.Instance object>, <traitlets.traitlets.Instance object>]#
- _instance_inits = [<bound method ObserveHandler.instance_init of <traitlets.traitlets.ObserveHandler object>>, <bound method Instance.instance_init of <traitlets.traitlets.Instance object>>, <bound method Instance.instance_init of <traitlets.traitlets.Instance object>>]#
- _trait_default_generators = {}#
- _traits: dict[str, t.Any] = {'config': <traitlets.traitlets.Instance object>, 'parent': <traitlets.traitlets.Instance object>}#
- aiida(line='', local_ns=None)[source]#
Load AiiDA in ipython (checking if it was already loaded), and inserts in the namespace the main AiiDA classes (the same that are loaded in
verdi shell
.Usage:
%aiida [optional parameters]
- magics = {'cell': {}, 'line': {'aiida': 'aiida', 'verdi': 'verdi'}}#
- registered = True#
- verdi(line='', local_ns=None)[source]#
Run the AiiDA command line tool, using the currently loaded configuration and profile.
Invoking
verdi
normally through the command line follows a different code path, compared to calling it directly from within an active Python interpreter. Some of those code paths we actually need here, and others can actually cause problems:The
VerdiCommandGroup
group ensures that the contextobj
is set with the loadedConfig
andProfile
, but this is not done in this manual call, so we have to built it ourselves and pass it in with theobj
keyword.We cannot call the
aiida.cmdline.commands.cmd_verdi.verdi
command directly, as that will invoke theaiida.cmdline.parameters.types.profile.ProfileParamType
parameter used for the-p/--profile
option that is defined on theverdi
command. This will attempt to load the default profile, but here a profile has actually already been loaded. In principle, reloading a profile should not be a problem, but this magic is often used in demo notebooks where a temporary profile was created and loaded, which is not properly added to the config file (since it is temporary) and so loading the profile would fail. The solution is to not call the top-levelverdi
command, but the subcommand, which is the first parameter in the command line arguments defined by theline
argument.
- aiida.tools.ipython.ipython_magics.add_to_ns(local_ns, name, obj)[source]#
Add a new variable with name
name
and valueobj
to the namespacelocal_ns
, optionally showing a warning if we are hiding an existing variable.Example:
# assuming that local_ns is a dictionary, e.g. from locals() import sys add_to_ns(local_ns, 'sys', sys)
- aiida.tools.ipython.ipython_magics.load_ipython_extension(ipython)[source]#
Registers the %aiida IPython extension.
Deprecated since version v3.0.0: Use
register_ipython_extension()
instead.
- aiida.tools.ipython.ipython_magics.register_ipython_extension(ipython=None)[source]#
Registers the %aiida IPython extension.
The %aiida IPython extension provides the same environment as the verdi shell.
- Parameters
ipython – InteractiveShell instance. If omitted, the global InteractiveShell is used.