a YAML magic for IPython notebooks
Project description
an IPython magic for capturing data in YAML into a running IPython kernel.
Install
From the command line (or with ! in a notebook cell):
pip install yamlmagic
Enable
Ad-hoc
In the notebook, you can use the %load_ext or %reload_ext line magic.
%reload_ext yamlmagic
Configuration
In your profile’s ipython_kernel_config.py, you can add the following line to automatically load yamlmagic into all your running kernels:
c.InteractiveShellApp.extensions = ['yaml_magic']
Use
The %%yaml cell magic will either act as simple parser:
%%yaml
a_toplevel_key: 1
<IPython.core.display.Javascript object>
{'a_toplevel_key': 1}
which can be accessed by the special last result variable _:
_
{'a_toplevel_key': 1}
Or will update a named variable with the parsed document:
%%yaml x
- a: 1
b: 2
<IPython.core.display.Javascript object>
x
[{'a': 1, 'b': 2}]
By default, yaml.SafeLoader will be used, which won’t allow the powerful but dangerous (and unportable) `!python/ tags <http://pyyaml.org/wiki/PyYAMLDocumentation#YAMLtagsandPythontypes>`__. If you’d like to use them, provide the -l (or --loader) argument with a BaseLoader subclass available via a local variable…
from yaml import Loader
class FooLoader(Loader):
# some special things you have built
pass
%%yaml --loader FooLoader
- a: !!python/float 1
b: !!python/float 2
<IPython.core.display.Javascript object>
[{'a': 1.0, 'b': 2.0}]
…or dotted-notation path to a loader:
%%yaml --loader yaml.Loader
- a: !!python/float 1
b: !!python/float 2
<IPython.core.display.Javascript object>
[{'a': 1.0, 'b': 2.0}]
Contribute
Issues and pull requests welcome!
License
yamlmagic is released as free software under the BSD 3-Clause license.
Thank
[@tonyfast](http://robclewley.github.io) for asking for this
[@robclewley](http://robclewley.github.io) for documentation-shaming a gist into a module