Skip to main content

Style checker for Launchpad doctests.

Project description

lp-lint-doctest is a style checker for Python doctests stored in text files (as opposed to doctests stored in docstrings), optimized for use in Launchpad development. It applies the following checks:

  • Comments should be in the narrative part of the doctest (i.e. in unindented text) rather than in Python examples.

  • Narrative text lines are limited to 78 characters.

  • Source lines in examples (beginning with >>> or ...) are limited to 70 characters.

  • Expected output lines in examples are limited to 74 characters.

  • Source and expected output lines should be indented by exactly four spaces.

  • There should be no trailing whitespace.

  • reStructuredText-style headings should be used, not MoinMoin-style.

A # noqa comment in any source line in an example suppresses the comment, line length, indentation, and trailing whitespace checks for all lines in that example.

In addition, lp-lint-doctest runs pyflakes on the accumulated source code of each doctest file.

This project was split out from Curtis Hovey’s pocket-lint project. Since that was written, many other excellent linters have arisen for most of the other source types supported by pocket-lint, but there seems to be no other viable replacement for its doctest checks.

lp-lint-doctest supports pre-commit. To use it, add the following to the repos section of your .pre-commit-config.yaml file:

-   repo: https://git.launchpad.net/lp-lint-doctest
    rev: ''  # pick a git tag to point to
    hooks:
    -   id: lp-lint-doctest

If you need to add a custom doctest option flag, then add args: [--allow-option-flag, MY_CUSTOM_FLAG_NAME].

NEWS for lp-lint-doctest

0.4 (2021-10-27)

  • Run on types: [rst] by default. This is a better default for use with repositories other than Launchpad itself (which can override this).

  • Declare support for Python 3.10.

0.3 (2021-07-27)

  • Allow # noqa comments to suppress comment checks as well.

0.2 (2021-07-25)

  • Add --allow-option-flag command-line option to register custom doctest option flags.

  • Allow comments in source lines in examples if they contain doctest directives.

  • Allow suppressing checks for an example by adding a # noqa comment to any of its source lines.

0.1 (2021-07-24)

  • Initial release, split out from pocket-lint.

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

lp-lint-doctest-0.4.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

lp_lint_doctest-0.4-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file lp-lint-doctest-0.4.tar.gz.

File metadata

  • Download URL: lp-lint-doctest-0.4.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for lp-lint-doctest-0.4.tar.gz
Algorithm Hash digest
SHA256 a801385e9255635a297d70c5d17aca747671d44044d1a16d2660d6cb67e9befe
MD5 b0fdbda2c52a7b20a36fd3f15d8abdc7
BLAKE2b-256 e90805e5819293296179f2f421d8d471109179b29e0b8e9c2d95b58636c034a3

See more details on using hashes here.

File details

Details for the file lp_lint_doctest-0.4-py3-none-any.whl.

File metadata

  • Download URL: lp_lint_doctest-0.4-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for lp_lint_doctest-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8ffe1c328369d42b5209cc0cbaa9e9ae0162a31da084464236fb659557e77b23
MD5 a8bfaaa22b435a3d1e99c5a6a9a2baba
BLAKE2b-256 af11d1c5e2ae7345cd9f953f36f9aed516530526846e5a488faae7d48635dc94

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