Skip to main content

Run Python code blocks and display the output directly within Sphinx documentation

Project description

sphinx-exec-directive

Run Python code blocks and display the output directly within Sphinx documentation.

This is based very strongly on matplotlib's plot_directive extension, but is used for running code instead of generating plots.

Note: This allows arbitrary code execution using exec(). Don't do silly things with it.

Installation

Install from PyPI:

pip install sphinx-exec-directive

or manually:

git clone https://github.com/yongrenjie/sphinx-exec-directive
cd sphinx-exec-directive
pip install .

Then, inside your Sphinx conf.py, add sphinx_exec_directive to your list of extensions (note: underscores not hyphens).

extensions = [
    sphinx_exec_directive,
    # other extensions...
]

Example usage

A short example will suffice. Putting

.. exec::
   
   print(1 + 1)

into your RST file will generate two literal blocks, one with the 'input' source code, and one with the captured stdout. It looks pretty basic, but it does the job:

Example sphinx-exec-directive output

Note that objects must be printed to stdout, or they will not be displayed. This behaviour therefore differs slightly from the functionality in a Jupyter notebook (where the last line is evaluated and the result displayed automatically), or the interactive Python console. If nothing is printed to stdout (or only empty space is) then the output literal block will be omitted.

The context option

Use this to preserve objects between different exec directives. Setting this to true (or True or 1 or yes) will keep any objects in the current exec directive "alive" for the next one.

.. exec::
   :context: true

   x = 5
   print(x)

Some other text goes here... Let's print x again...

.. exec::

   print(x)

It will work.

Example sphinx-exec-directive output using context flag

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinx-exec-directive-0.3.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

sphinx_exec_directive-0.3-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file sphinx-exec-directive-0.3.tar.gz.

File metadata

  • Download URL: sphinx-exec-directive-0.3.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.2

File hashes

Hashes for sphinx-exec-directive-0.3.tar.gz
Algorithm Hash digest
SHA256 9b84f7e2a7a17ff65e34dd6b43f4977ec65ff3f055154902d3cb42da2b7976a2
MD5 bea8a948e1e72859d80b69a38ac0861c
BLAKE2b-256 f5469302d780618be19fa1a43d46cf21658dfb90ffb545254b9c61712588e5d7

See more details on using hashes here.

File details

Details for the file sphinx_exec_directive-0.3-py3-none-any.whl.

File metadata

  • Download URL: sphinx_exec_directive-0.3-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.2

File hashes

Hashes for sphinx_exec_directive-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 377a131f59d6fc9a01116a7089932bf08580072d276af253d578a7052e4ac0fd
MD5 94aa59f71c53c67d18b32e0a043fd223
BLAKE2b-256 17b9d6d36e5b24178a13f90b023f7c19a36839bf9f49c9eff5ed21c675d1b394

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page