converter.QmdToPyConverter

convert.converter.QmdToPyConverter(tool, *, lint_non_exec=False, mode='lint')

Convert lines from a .qmd file to .py file.

Attributes

Name Type Description
lint_non_exec bool If True, also lint non-executable Python code chunks.
mode ({'lint', 'format'}, optional) Conversion mode. lint preserves line alignment for diagnostics. format emits a formatter-friendly Python file with block separators so code can later be spliced back into the original QMD document.
python_blocks list[dict] List to store metadata for all Python blocks.
preserve_line_count bool If True, will preserve line alignment.
append_noqa bool Whether to suppress vertical space (and then also line length) errors using noqa comments.

Methods

Name Description
convert Convert QMD source lines into a lintable Python view.

convert

convert.converter.QmdToPyConverter.convert(qmd_lines)

Convert QMD source lines into a lintable Python view.

This parses the QMD document with Tree-sitter, locates fenced Python code blocks, analyses chunk options and YAML front matter, and then builds an aligned list of Python lines suitable for a linter.

In lint mode, it will typically produce a line-aligned Python file suitable for lint diagnostics. In format mode, it produces a compact Python file containing only the format-eligible code blocks, separated by stable marker comments.

Parameters

Name Type Description Default
qmd_lines list of str Lines from the input QMD file. required

Returns

Name Type Description
list of str Python lines representing the lintable view of the QMD file. Depending on configuration, non-Python regions are replaced by placeholder lines so that line numbers stay aligned.