- Difficulty level: hard
- Time need to lean: refer to this document only when needed
- Key points:
- Use
%<tab>
to get a list of magics - Use
%MAGIC -h
to get the help messages
- Use
In addition to SoS statements, you can use a few SoS magics in Jupyter notebooks with a SoS kernel. Note that
- SoS magics have to be specified at the beginning of a cell, although they can be specified after empty lines and comments.
- Lines ending with
"\"
will be joined so you can break long magics into multiple lines - Multiple magics can be used in a single cell.
In any SoS cell, you can type %
and use the <TAB>
key to get a list of SoS magics. Then, for any magic you need to use, you can type %MAGIC -h
to get the help information. This reference manual is simply a composition of these help messages.
usage: %capture [-h] [--as [{text,json,csv,tsv}]] [-t VAR | -a VAR] [{stdout,stderr,text,markdown,html,raw,error}] Capture output from a subkernel as variable in SoS positional arguments: {stdout,stderr,text,markdown,html,raw,error} Message type to capture. In terms of Jupyter message types, "stdout" refers to "stream" message with "stdout" type, "stderr" refers to "stream" message with "stderr" type, "text", "markdown" and "html" refers to "display_data" or "execute_result" messages with "text/plain", "text/markdown" and "text/html" type respectively, and 'error' refers to "evalue" of "error" messages. If no value or "raw" is specified, all returned messages will be returned in alist format, and will be displayed in the console panel. This will help you determine the right type to capture. optional arguments: -h, --help show this help message and exit --as [{text,json,csv,tsv}] How to interpret the captured text. This only applicable to stdout, stderr and text message type where the text from cell output will be collected. If this option is given, SoS will try to parse the text as json, csv (comma separated text), tsv (tab separated text), and store text (from text), Pandas DataFrame (from csv or tsv), dict or other types (from json) to the variable. -t VAR, --to VAR Name of variable to which the captured content will be saved. If no varialbe is specified, the return value will be saved to variable "__captured" and be displayed at the side panel. -a VAR, --append VAR Name of variable to which the captured content will be appended. This option is equivalent to --to if VAR does not exist. If VAR exists and is of the same type of new content (str or dict or DataFrame), the new content will be appended to VAR if VAR is of str (str concatenation), dict (dict update), or DataFrame (DataFrame.append) types. If VAR is of list type, the new content will be appended to the end of the list.
usage: %cd [-h] dir change directory of SoS and all subkernels. positional arguments: dir destination directory optional arguments: -h, --help show this help message and exit
usage: %convert [-h] [-t {sos,html}] [-f] [--template TEMPLATE] [filename] Convert the current notebook to another format. positional arguments: filename Filename of saved report or script. Default to notebookname with file extension determined by option --to. optional arguments: -h, --help show this help message and exit -t {sos,html}, --to {sos,html} Destination format, default to html. -f, --force If destination file already exists, overwrite it. --template TEMPLATE Template to generate HTML output. The default template is a template defined by configuration key default- sos-template, or sos-report-toc if such a key does not exist.
usage: %env [-h] [--new] [--set SET [SET ...]] [--prepend-path PREPEND_PATH [PREPEND_PATH ...]] [--tempdir] [--expect-error] [--allow-error] Adjust the running environment for the cell, such as running with a new dict, under a different directory, and expect an error from the execution of the cell. optional arguments: -h, --help show this help message and exit --new Execute workflow with a fresh SoS environment --set SET [SET ...] Set one more more environment variables. Parameters of this option can be 'KEY=VALUE' or just 'KEY'. An empty evnironment variable will be set in the latter case. Note that the environments will be reset out of the cell. --prepend-path PREPEND_PATH [PREPEND_PATH ...] Prepend one or more paths before "$PATH" so that commands in those paths will take priority. Note that `$PATH` will be reset after the completion of the cell. --tempdir Execute workflow in temporary directory, which will be removed after the completion of the cell. Therefore you cannot use this option when running the cell content in background mode. --expect-error If set, expect error from the excution and report success if an error occurs, and report error if an error does not occur. --allow-error If set, return success even if the underlying cell reports error.
usage: %expand [-h] [-i KERNEL] [sigil] [right_sigil] Expand the script in the current cell with default ({}) or specified sigil. positional arguments: sigil Sigil to be used to interpolated the texts. It can be quoted, or be specified as two options. right_sigil Right sigil if the sigil is specified as two pieces. optional arguments: -h, --help show this help message and exit -i KERNEL, --in KERNEL Expand the cell content in specific kernel, default to "SoS". This requires that the language module supports the "expand" featire.
usage: %get [-h] [--from __FROM__] [vars [vars ...]] Get specified variables from another kernel, which is by default the SoS kernel. positional arguments: vars Names of SoS variables optional arguments: -h, --help show this help message and exit --from __FROM__ Name of kernel from which the variables will be obtained. Default to the SoS kernel.
usage: %matplotlib [-h] [-l] [{agg,gtk,gtk3,inline,ipympl,nbagg,notebook,osx,pdf,ps,qt,qt4,qt5,svg,tk,widget,wx}] Set matplotlib parser type positional arguments: {agg,gtk,gtk3,inline,ipympl,nbagg,notebook,osx,pdf,ps,qt,qt4,qt5,svg,tk,widget,wx} Name of the matplotlib backend to use (‘agg’, ‘gtk’, ‘gtk3’, optional arguments: -h, --help show this help message and exit -l, --list Show available matplotlib backends
usage: %put [-h] [--to __TO__] [vars [vars ...]] Put specified variables in the subkernel to another kernel, which is by default the SoS kernel. positional arguments: vars Names of SoS variables optional arguments: -h, --help show this help message and exit --to __TO__ Name of kernel from which the variables will be obtained. Default to the SoS kernel.
usage: %preview [-h] [-k KERNEL] [-w] [-s {table,scatterplot,png}] [-r HOST] [-p | -n] [-c CONFIG] [items [items ...]] Preview files, sos variables, or expressions in the side panel, or notebook if side panel is not opened, unless options --panel or --notebook is specified. positional arguments: items Filename, variable name, or expression. Wildcard characters such as '*' and '?' are allowed for filenames. optional arguments: -h, --help show this help message and exit -k KERNEL, --kernel KERNEL kernel in which variables will be previewed. By default the variable will be previewed in the current kernel of the cell. -w, --workflow Preview notebook workflow -s {table,scatterplot,png}, --style {table,scatterplot,png} Option for preview file or variable, which by default is "table" for Pandas DataFrame. The %preview magic also accepts arbitrary additional keyword arguments, which would be interpreted by individual style. Passing '-h' with '--style' would display the usage information of particular style. -r HOST, --host HOST Preview files on specified remote host, which should be one of the hosts defined in sos configuration files. -p, --panel Preview in side panel even if the panel is currently closed -n, --notebook Preview in the main notebook. -c CONFIG, --config CONFIG A configuration file with host definitions, in case the definitions are not defined in global or local sos config.yml files.
usage: %render [-h] [--as [AS_TYPE]] [{stdout,text}] Treat the output of a SoS cell as another format, default to markdown. positional arguments: {stdout,text} Message type to capture, default to standard output. In terms of Jupyter message types, "stdout" refers to "stream" message with "stdout" type, and "text" refers to "display_data" message with "text/plain" type. optional arguments: -h, --help show this help message and exit --as [AS_TYPE] Format to render output of cell, default to Markdown, but can be any format that is supported by the IPython.display module such as HTML, Math, JSON, JavaScript and SVG.
usage: %revision [-h] [-s [SOURCE]] [-l LINKS [LINKS ...]] Revision history of the document, parsed from the log message of the notebook if it is kept in a git repository. Additional parameters to "git log" command (e.g. -n 5 --since --after) could be specified to limit the revisions to display. optional arguments: -h, --help show this help message and exit -s [SOURCE], --source [SOURCE] Source URL to to create links for revisions. SoS automatically parse source URL of the origin and provides variables "repo" for complete origin URL without trailing ".git" (e.g. https://github.com/vatlab/sos-notebook), "path" for complete path name (e.g. src/document/doc.ipynb), "filename" for only the name of the "path", and "revision" for revisions. Because sos interpolates command line by default, variables in URL template should be included with double braceses (e.g. --source {{repo}}/blob/{{revision}}/{{path}})). If this option is provided without value and the document is hosted on github, a default template will be provided. -l LINKS [LINKS ...], --links LINKS [LINKS ...] Name and URL or additional links for related files (e.g. --links report URL_to_repo ) with URL interpolated as option --source.
usage: %run [-h] Execute the current cell with specified command line arguments. If the magic ends with "&", it will be sent to a queue to be executed sequentially. optional arguments: -h, --help show this help message and exit
usage: %runfile [-h] script Execute an external SoS script, which is identical to run !sos run script but allows the display of task and workflow status in notebook. It also accepts default parameters of %set magic. positional arguments: script Script to be executed. optional arguments: -h, --help show this help message and exit
Magic %save
saves the content of the current cell (after the magic itself) to specified file. It accepts the following options:
usage: %save [-h] [-r] [-f] [-a] [-x] filename Save the content of the cell to specified file. It ignores magic lines after the %save magic unless a blank line is used to separate the magics and the content to be saved. positional arguments: filename Filename of saved report or script. optional arguments: -h, --help show this help message and exit -r, --run Continue to execute the cell once content is saved. -f, --force If destination file already exists, overwrite it. -a, --append If destination file already exists, append to it. -x, --set-executable Set `executable` permission to saved script.
usage: %sosrun [-h] Execute the entire notebook with steps consisting of SoS cells (cells with SoS kernel) with section header, with specified command line arguments. Arguments set by magic %set will be appended at the end of command line. If the magic ends with "&", it will be sent to a queue to be executed sequentially. optional arguments: -h, --help show this help message and exit
usage: %sessioninfo [-h] [-w __WITH__] List the session info of all subkernels, and information stored in variable sessioninfo optional arguments: -h, --help show this help message and exit -w __WITH__, --with __WITH__ Name of variable that contains extra information to be appended. This variable should be a dictionary, with keys being the section headers and items being the session information, which can be a string, a list of strings, a dictionary, or a list of `(key, value)` pairs. Encoded strings (bytes) are acceptable in places of strings.
usage: %shutdown [-h] [-r] [kernel] Shutdown or restart specified subkernel positional arguments: kernel Name of the kernel to be restarted, default to the current running kernel. optional arguments: -h, --help show this help message and exit -r, --restart Restart the kernel
usage: %task [-h] [-a | --age AGE | -s STATUS [STATUS ...] | -t [TAGS [TAGS ...]]] {status,execute,kill,purge} ... Get information on specified task. By default sos would query against all running task queues but it would start a task queue and query status if option -q is specified. positional arguments: {status,execute,kill,purge} actions status task status execute execute task kill kill single task or tasks with the same tags purge kill and purge task optional arguments: -h, --help show this help message and exit -a, --all Clear all task information on local or specified remote task queue, including tasks created by other workflows. --age AGE Remove all tasks that are created more than (default) or within specified age. Value of this parameter can be in units s (second), m (minute), h (hour), or d (day, default), or in the foramt of HH:MM:SS, with optional prefix + for older (default) and - for newer than specified age. -s STATUS [STATUS ...], --status STATUS [STATUS ...] Remove all tasks with specified status, which can be pending, submitted, running, completed, failed, and aborted. One of more status can be specified. -t [TAGS [TAGS ...]], --tags [TAGS [TAGS ...]] Remove all tsks with one of the specified tags.
usage: %task status [-h] [-q QUEUE] [-c CONFIG] [-v {0,1,2,3,4}] [-t [TAGS [TAGS ...]]] [-s [STATUS [STATUS ...]]] [--age AGE] [tasks [tasks ...]] positional arguments: tasks ID of the task. All tasks that are releted to the workflow executed under the current directory will be checked if unspecified. There is no need to specify compelete task IDs because SoS will match specified name with tasks starting with these names. optional arguments: -h, --help show this help message and exit -q QUEUE, --queue QUEUE Check the status of job on specified tasks queue or remote host if the tasks . The queue can be defined in global or local sos configuration file, or a file specified by option --config. A host is assumed to be a remote machine with process type if no configuration is found. -c CONFIG, --config CONFIG A configuration file with host definitions, in case the definitions are not defined in global sos config.yml files. -v {0,1,2,3,4} Output error (0), warning (1), info (2), and debug (3) information to standard output (default to 2). -t [TAGS [TAGS ...]], --tags [TAGS [TAGS ...]] Only list tasks with one of the specified tags. -s [STATUS [STATUS ...]], --status [STATUS [STATUS ...]] Display tasks with one of the specified status. --age AGE Limit to tasks that are created more than (default) or within specified age. Value of this parameter can be in units s (second), m (minute), h (hour), or d (day, default), or in the foramt of HH:MM:SS, with optional prefix + for older (default) and - for newer than specified age.
usage: %task execute [-h] [-q QUEUE] [-c CONFIG] [-v {0,1,2,3,4}] [tasks [tasks ...]] positional arguments: tasks ID of the tasks to be removed. There is no need to specify compelete task IDs because SoS will match specified name with tasks starting with these names. If no task ID is specified, all tasks related to specified workflows (option -w) will be removed. optional arguments: -h, --help show this help message and exit -q QUEUE, --queue QUEUE Remove tasks on specified tasks queue or remote host if the tasks . The queue can be defined in global or local sos configuration file, or a file specified by option --config. A host is assumed to be a remote machine with process type if no configuration is found. -c CONFIG, --config CONFIG A configuration file with host definitions, in case the definitions are not defined in global sos config.yml files. -v {0,1,2,3,4} Output error (0), warning (1), info (2), and debug (3) information to standard output (default to 2).
usage: %task kill [-h] [-a] [-q QUEUE] [-t [TAGS [TAGS ...]]] [-c CONFIG] [-v {0,1,2,3,4}] [tasks [tasks ...]] positional arguments: tasks IDs of the tasks that will be killed. There is no need to specify compelete task IDs because SoS will match specified name with tasks starting with these names. optional arguments: -h, --help show this help message and exit -a, --all Kill all tasks in local or specified remote task queue -q QUEUE, --queue QUEUE Kill jobs on specified tasks queue or remote host if the tasks . The queue can be defined in global or local sos configuration file, or a file specified by option --config. A host is assumed to be a remote machine with process type if no configuration is found. -t [TAGS [TAGS ...]], --tags [TAGS [TAGS ...]] Only kill tasks with one of the specified tags. -c CONFIG, --config CONFIG A configuration file with host definitions, in case the definitions are not defined in global sos config.yml files. -v {0,1,2,3,4}, --verbosity {0,1,2,3,4} Output error (0), warning (1), info (2), and debug (3) information to standard output (default to 2).
usage: %task purge [-h] [-q QUEUE] [-c CONFIG] [-v {0,1,2,3,4}] [tasks [tasks ...]] positional arguments: tasks ID of the tasks to be removed. There is no need to specify compelete task IDs because SoS will match specified name with tasks starting with these names. If no task ID is specified, all tasks related to specified workflows (option -w) will be removed. optional arguments: -h, --help show this help message and exit -q QUEUE, --queue QUEUE Remove tasks on specified tasks queue or remote host if the tasks . The queue can be defined in global or local sos configuration file, or a file specified by option --config. A host is assumed to be a remote machine with process type if no configuration is found. -c CONFIG, --config CONFIG A configuration file with host definitions, in case the definitions are not defined in global sos config.yml files. -v {0,1,2,3,4} Output error (0), warning (1), info (2), and debug (3) information to standard output (default to 2).
usage: %use [-h] [-k KERNEL] [-l LANGUAGE] [-c COLOR] [-r] [name] Switch to an existing subkernel or start a new subkernel. positional arguments: name Displayed name of kernel to start (if no kernel with name is specified) or switch to (if a kernel with this name is already started). The name is usually a kernel name (e.g. %use ir) or a language name (e.g. %use R) in which case the language name will be used. One or more parameters --language or --kernel will need to be specified if a new name is used to start a separate instance of a kernel. optional arguments: -h, --help show this help message and exit -k KERNEL, --kernel KERNEL kernel name as displayed in the output of jupyter kernelspec list. Default to the default kernel of selected language (e.g. ir for language R. -l LANGUAGE, --language LANGUAGE Language extension that enables magics such as %get and %put for the kernel, which should be in the name of a registered language (e.g. R), or a specific language module in the format of package.module:class. SoS maitains a list of languages and kernels so this option is only needed for starting a new instance of a kernel. -c COLOR, --color COLOR Background color of new or existing kernel, which overrides the default color of the language. A special value "default" can be used to reset color to default. -r, --restart Restart the kernel if it is running.
usage: %with [-h] [-i [IN_VARS [IN_VARS ...]]] [-o [OUT_VARS [OUT_VARS ...]]] [name] Use specified subkernel to evaluate current cell, with optional input and output variables positional arguments: name Name of an existing kernel. optional arguments: -h, --help show this help message and exit -i [IN_VARS [IN_VARS ...]], --in [IN_VARS [IN_VARS ...]] Input variables (variables to get from SoS kernel) -o [OUT_VARS [OUT_VARS ...]], --out [OUT_VARS [OUT_VARS ...]] Output variables (variables to put back to SoS kernel before switching back to the SoS kernel
!shell-command
If any other command is entered after !
, sos will treat the rest of the line as a shell command and execute it. Only single-line commands are supported. String interpolation is supported. Note that !cd
does not change the current working directory because the command is executed in a separate process. Use magic %cd
for that purpose.