Skip to content

lintquarto/lintquarto

Repository files navigation

lintquarto

Code licence ORCID PyPI DOI Coverage


Package for running linters and static type checkers on quarto .qmd files.

Currently supported linters: pylint, flake8, pyflakes, ruff, vulture, radon, and pycodestyle.

It also supports some static type checkers: mypy, pyright, pyrefly, and pytype.

Code licence

Linting illustration


Installation

You can install lintquarto from PyPI:

pip install lintquarto

To also install all supported linters:

pip install lintquarto[all]

Getting started using lintquarto

Usage

lintquarto -l LINTER [LINTER ...] -p PATH [PATH ...] [-e EXCLUDE [EXCLUDE ...]] [-k]

  • -l --linters LINTER [LINTER ...] - Linters to run. Valid options: pylint, flake8, pyflakes, ruff, vulture, radon, pycodestyle, mypy, pyright, pyrefly, or pytype.
  • -p --paths PATH [PATH ...]- Quarto files and/or directories to lint.
  • -e --exclude EXCLUDE [EXCLUDE ...] - Files and/or directories to exclude from linting.
  • -k, --keep-temp - Keep the temporary .py files created during linting (for debugging).

Only one linter can be specified per command. Passing extra arguments directly to linters is not supported. Only .qmd files are processed.

Examples

The linter used is interchangeable in these examples.

Lint all .qmd files in the current directory (using pylint):

lintquarto -l pylint -p .

Lint several specific files (using pylint and flake8):

lintquarto -l pylint flake8 -p file1.qmd file2.qmd

Keep temporary .py files after linting (with pylint)

lintquarto -l pylint -p . -k

Lint all files in current directory (using ruff):

  • Excluding folders examples/ and ignore/, or-
  • Excluding a specific file analysis/test.qmd.
lintquarto -l ruff -p . -e examples,ignore
lintquarto -l ruff -p . -e analysis/test.qmd

Community

Curious about contributing? Check out the contributing guidelines to learn how you can help. Every bit of help counts, and your contribution - no matter how minor - is highly valued.


How to cite lintquarto

Please cite the repository on GitHub, PyPI and/or Zenodo:

Heather, A. (2025). lintquarto (v0.3.0). https://github.com/lintquarto/lintquarto.

Heather, A. (2025). lintquarto (v0.3.0). https://pypi.org/project/lintquarto/

Heather, A. (2025). lintquarto (v0.3.0). https://doi.org/10.5281/zenodo.15731161.

Citation instructions are also provided in CITATION.cff.


Acknowledgements

Parts of this package were generated or adapted from code provided by Perplexity.