Skip to main content

Additions to Sybil, the documentation testing tool.

Project description

Build Status codecov PyPI

sybil-extras

Add ons for Sybil.

Installation

$ pip install sybil-extras

Usage

MultiEvaluator

"""Use MultiEvaluator to run multiple evaluators on the same parser."""

from sybil import Example, Sybil
from sybil.evaluators.python import PythonEvaluator
from sybil.parsers.codeblock import CodeBlockParser
from sybil.typing import Evaluator

from sybil_extras.evaluators.multi import MultiEvaluator


def _evaluator_1(example: Example) -> None:
    """Check that the example is long enough."""
    minimum_length = 50
    assert len(example.parsed) >= minimum_length


evaluators: list[Evaluator] = [_evaluator_1, PythonEvaluator()]
multi_evaluator = MultiEvaluator(evaluators=evaluators)
parser = CodeBlockParser(language="python", evaluator=multi_evaluator)
sybil = Sybil(parsers=[parser])

pytest_collect_file = sybil.pytest()

ShellCommandEvaluator

"""Use ShellCommandEvaluator to run shell commands against the code block."""

import sys

from sybil import Sybil
from sybil.parsers.codeblock import CodeBlockParser

from sybil_extras.evaluators.shell_evaluator import ShellCommandEvaluator

evaluator = ShellCommandEvaluator(
    args=[sys.executable, "-m", "mypy"],
    # The code block is written to a temporary file
    # with these suffixes.
    tempfile_suffixes=[".example", ".py"],
    # Pad the temporary file with newlines so that the
    # line numbers in the error messages match the
    # line numbers in the source document.
    pad_file=True,
    # Don't write any changes back to the source document.
    # This option is useful when running a linter or formatter
    # which modifies the code.
    write_to_file=False,
)
parser = CodeBlockParser(language="python", evaluator=evaluator)
sybil = Sybil(parsers=[parser])

pytest_collect_file = sybil.pytest()

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

sybil_extras-2024.9.20.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

sybil_extras-2024.9.20-py2.py3-none-any.whl (7.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file sybil_extras-2024.9.20.tar.gz.

File metadata

  • Download URL: sybil_extras-2024.9.20.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for sybil_extras-2024.9.20.tar.gz
Algorithm Hash digest
SHA256 b2c98247b94c44f7cb0920126c61a73b7215793d90f5413d96cb3f124e86b974
MD5 e79003081872a31e17bddc3fe3c932f4
BLAKE2b-256 a577efda4e684c7ee97225ca5f44a6111c7a2dd5e76927274a34d5edf786df7f

See more details on using hashes here.

File details

Details for the file sybil_extras-2024.9.20-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for sybil_extras-2024.9.20-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c212c9c4a9d89070bd9785b7f702823eefd5dd5d699fc1a9e7ace13be07c1563
MD5 706ec563dd5fc1dfd53e36a3ba717127
BLAKE2b-256 84cca82d5aa559e3b59d48dc7dc79b0e69a7485a32b8a19bb9379e4602f1c9e7

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