Usage

Command line use

#> python pylit.py [options] INFILE [OUTFILE]

Convert between (reStructured) text source with embedded code, and code source with embedded documentation (comment blocks)

The special file name ‘-’ stands for standard in and output.

Find more details in the tutorial.

Options

--version

show program’s version number and exit

-h, --help

show this help message and exit

-c, --code2txt

convert code source to text source

-t, --txt2code

convert text source to code source

--language=LANGUAGE

use LANGUAGE native comment style

--comment-string=COMMENT_STRING

documentation block marker in code source (including trailing whitespace, default: language dependent)

-m CODE_BLOCK_MARKER, --code-block-marker=CODE_BLOCK_MARKER

syntax token starting a code block. (default ‘::’)

--codeindent=CODEINDENT

Number of spaces to indent code blocks with text2code (default 2)

--overwrite=OVERWRITE

overwrite output file (default ‘update’)

--replace

move infile to a backup copy (appending ‘~’)

-s, --strip

“export” by stripping documentation or code

-d, --diff

test for differences to existing file

--doctest

run doctest.testfile() on the text version

-e, --execute

execute code (Python only)

Filename Extensions

By default .txt will be appended for literate code and stripped by the conversion to executable code. I.e. for a Python module foo:

  • the code source is called foo.py

  • the text source is called foo.py.txt

  • the HTML rendering is called foo.py.html

Programmatic use

If pylit.py is in the Python Module Path, it can be imported and used from other Python programs. The simplest example is the executable wrapper script pylit that can also be used for customisation:

#!/usr/bin/env python

# Load the pylit module::

import pylit

# Configure default settings, e.g. ::

## pylit.defaults.code_block_marker['c++'] = '.. code-block:: c++'
## pylit.defaults.languages['.def'] = 'latex'
## pylit.defaults.languages['.dfu'] = 'latex'

# call the text <--> code converter::

pylit.main()

For more details see e.g. the helper functions in the literate source.

Customisation

Customisation is possible by overwriting default values in a wrapper script like pylit, e.g.

#!/usr/bin/env python

import pylit

pylit.defaults.code_block_marker = '.. code-block:: python'
pylit.defaults.comment_string = "## "
pylit.defaults.codeindent = 4
defaults.text_extensions = [".rst"]

pylit.main()

To overwrite the “intelligent guesses” by PylitOptions and command line options, pass the option as argument to pylit.main(), e.g.:

#!/usr/bin/env python

import pylit
pylit.main(comment_string = "## ")