Skip to main content

Extract code blocks from markdown

Project description

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.

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

exdown-0.9.0.zip (13.2 kB view details)

Uploaded Source

File details

Details for the file exdown-0.9.0.zip.

File metadata

  • Download URL: exdown-0.9.0.zip
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for exdown-0.9.0.zip
Algorithm Hash digest
SHA256 f8837ed0fe12963516c45d352e7f4f81e15503ffaa18a155a0a30696e02e603c
MD5 2e20542278ece2f846db97cbb51f07b9
BLAKE2b-256 f5691a8383e92fd022b285096a464d3bd5af8c3f1ba249cf651313a401bd1aef

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