Skip to main content

reStructuredText linter

Project description

Build Status

reStructuredText linter

This was created out of frustration with PyPI; it sucks finding out your reST is invalid after uploading it. It is being developed in junction with a Sublime Text linter.

Getting Started

Install the module with: pip install restructuredtext_lint

import restructuredtext_lint
errors = restructuredtext_lint.lint("""
Hello World

# `errors` will be list of system messages
# [<system_message: <paragraph...><literal_block...>>]
errors[0].message  # Title underline too short.


restructuredtext-lint exposes a lint function

restructuredtext_lint.lint(content, filepath=None)

Lint reStructuredText and return errors

  • content String - reStructuredText to be linted
  • filepath String - Optional path to file, this will be returned as the source


  • errors List - List of errors
    • Each error is a class from docutils with the following attrs
      • line Integer - Line where the error occurred
      • source String - filepath provided in parameters
      • level Integer - Level of the warning
        • Levels represent ‘info’: 1, ‘warning’: 2, ‘error’: 3, ‘severe’: 4
      • type String - Noun describing the error level
        • Levels can be ‘INFO’, ‘WARNING’, ‘ERROR’, or ‘SEVERE’
      • message String - Error message
      • full_message String - Error message and source lines where the error occurred
    • It should be noted that level, type, message, and full_message are custom attrs added onto the original system_message


Here is an example of all invalid properties

rst = """
Some content.

Hello World
Some more content!
errors = restructuredtext_lint.lint(rst, '')
errors[0].line  # 5
errors[0].source  #
errors[0].level  # 2
errors[0].type  # WARNING
errors[0].message  # Title underline too short.
errors[0].full_message  # Title underline too short.
                        # Hello World
                        # =======


In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Test via nosetests.


Support this project and others by twolfson via gittip.

Support via Gittip


As of Nov 22 2013, Todd Wolfson has released this repository and its contents to the public domain.

It has been released under the UNLICENSE.

Project details

Download files

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

Files for restructuredtext-lint, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size restructuredtext_lint-0.1.0.tar.gz (5.4 kB) File type Source Python version None Upload date Hashes View hashes
Filename, size (12.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page