Canonicalise the leading indentation of blank lines in text files.
The intentionally-blank
package is available on the Python Package Index (PyPI):
The package supports Python 3 only. To install:
$ python -m pip install intentionally-blank
For the purposes of this tool, a "blank line" is a line containing only whitespace characters.
Intentionally Blank can apply one or more formatters to a text file for the purposes of modifying the arrangement or representation of whitespace.
To get command-line help, use the --help
option:
$ intentionally-blank --help Usage: intentionally-blank [OPTIONS] COMMAND [ARGS]... Options: --verbosity [CRITICAL|ERROR|WARNING|INFO|DEBUG|NOTSET] The logging level to use. --version Show the version and exit. --help Show this message and exit. Commands: describe-format format list-formats
To list the available formatters, used the list-formats
command:
$ intentionally-blank list-formats empty identity leading visible
To describe the action of particular formatter, use the describe-format
command:
$ intentionally-blank describe-format --format=leading Blank lines have leading whitespace equal to that on the previous non-blank line.
To actually reformat a text file, we can use the format
command. To get help on a particular
command, like format
, use the command and the --help
option:
$ intentionally-blank format --help Usage: intentionally-blank format [OPTIONS] INPUT OUTPUT Options: --format [empty|identity|leading|visible] --help Show this message and exit.
Now, use the format
command to adjust whitespace:
$ intentionally-blank format --format=leading infile.txt outfile.txt
To have blank lines be completely empty save for the terminating newline sequence, use
--format=empty
:
$ intentionally-blank format --format=empty infile.txt outfile.txt
Multiple --format
options can be provided, and they will be applied in the order given. Here we
apply the "leading" format, and then the "visible" format which makes whitespace characters
visible:
$ intentionally-blank format --format=leading --format=visible infile.txt outfile.txt
Either the INPUT or OUTPUT positional arguments can be replaced with a hyphen -
to cause input
to be read from stdin or output to be written to stdout:
$ intentionally-blank format --format=leading --format=visible infile.txt - """Model␣for␣aircraft␣flights."""↵ ↵ ↵ class␣Flight:↵ ␣␣␣␣"""A␣flight␣with␣a␣particular␣passenger␣aircraft."""↵ ␣␣␣␣↵ ␣␣␣␣def␣__init__(self,␣number,␣aircraft):↵ ␣␣␣␣␣␣␣␣if␣not␣number[:2].isalpha():↵ ␣␣␣␣␣␣␣␣␣␣␣␣raise␣ValueError(f"No␣airline␣code␣in␣'{number}'")↵ ␣␣␣␣␣␣␣␣␣␣␣␣↵