Skip to main content

exdown is deprecated. Use pytest-codeblocks instead.


exdown

PyPi Version Anaconda Cloud PyPI pyversions GitHub stars PyPi downloads

gh-actions codecov LGTM Code style: black

This is exdown, a tool for extracting code blocks from Markdown files and to create tests from them.

Install with

pip install exdown

and create tests for pytest with

import exdown

test_readme = exdown.pytests_from_file("README.md")

The test_readme variable is really a decorated function that pytest will pick up and turn into tests.

tests/test_readme.py .............                    [100%]

Skipping code blocks

If you don't want all code blocks to be extracted, you can filter by syntax

exdown.pytests_from_file("README.md", syntax_filter="python")

or prefix your code block in the Markdown file with an exdown-skip comment

Lorem ipsum
<!--exdown-skip-->
```python
foo + bar  # not working
```
dolor sit amet.

Merging code blocks

Broken-up code blocks can be merged into one with the exdown-cont prefix

Lorem ipsum
```
a = 1
```
dolor sit amet
<!--exdown-cont-->
```
# this would otherwise fail since `a` is not defined
a + 1
```

Expected output

You can also define the expected output of a code block:

This
```
print(1 + 3)
```
gives
<!--exdown-expected-output-->
```
5
```

Expected errors

Some code blocks are expected to give errors. You can verify this with

The following gives an error:
<!--exdown-expect-exception-->
```python
1 / 0
```

License

This software is published under the MIT license.

Metadata

Release files for exdown 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exdown 0.9.0
File Size Uploaded
exdown-0.9.0.zip 13.2 kB Details

Release files / exdown-0.9.0.zip

Download URL exdown-0.9.0.zip
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f8837ed0fe12963516c45d352e7f4f81e15503ffaa18a155a0a30696e02e603c
BLAKE2b-256 checksum
How to use checksums
f5691a8383e92fd022b285096a464d3bd5af8c3f1ba249cf651313a401bd1aef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.9.0 This release

1 release file

0.8.9

1 release file

0.8.8

1 release file

0.8.7

1 release file

0.8.6

1 release file

0.8.5

1 release file

0.8.4

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.0

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page