Skip to content

StefansM/acme-bleach

Repository files navigation

Bleach

Read the documentation at https://acme-bleach.readthedocs.io/

Remove unsightly visible characters from your code. Inspired by the Acme::Bleach Perl module by Damian Conway.

Installation

You can install Bleach via pip from PyPI:

$ pip install acme-bleach

Usage

Let's start with the following Python script, hello.py:

print("Hello, world!")

Bleaching

To bleach it, run the following command:

$ bleach bleach hello.py -o hello-bleached.py

The result is a bleached version of the original script. The contents of hello-bleached.py are (representing tabs with »»»» and spaces with ·):

# coding=bleach
»»»»···»»»»»»»»»»»»»»»»»···»»»»»·»»»»»»»··»»·»»»»»»»·»»»··»»···»»»»»···»·»»»»»»»
»»»»»»»»·»»»·»»»»»»»»»»»»»»»»»»»·»»»»»»»»»»»·»»»»»»»·»»»»»»»·»»»»»»»»»»»»»»»··»»»»»»·»»»·»»»··»»··»»»»»»
»»»»··»»··»»»»»»»»»»··»»····»»»»»»»»·»»»··»»»»»»»»»»»»»»·»»»»»»»»»»»»»»»»»»»»»»»···»···
»»»»··»»····»»»»···»»»»»·»»»»»»»··»»··»»»»»»»»»»··»»»»»»·»»»»»»»»»»»»»»»·»»»»»»»»»»»»»»»·
»»»»»»»»·»»»»»»»»»»»·»»»»»»»»»»»·»»»·»»»»»»»·»»»»»»»»»»»»»»»·»»»·»»»

Running

You can run the bleached file using bleach run:

$ bleach run hello-bleached.py
Hello, world!

Unbleaching

You can unbleach the file using bleach unbleach:

$ bleach unbleach hello-bleached.py -o hello-unbleached.py
$ cat hello-unbleached.py
print("Hello, world!")

Installing the bleach codec

Running scripts with bleach run is far too much effort. If you want to run bleached scripts directly, you can install the bleach codec:

$ bleach install
Wrote /home/stefans/bleach/.venv/lib/python3.10/site-packages/bleach.pth
$ python hello-bleached.py
Hello, world!

Installing the codec will attempt to write a .pth file to the site-packages directory of the current Python interpreter. Note the import in the .pth file will be evaluated every time the current Python runs, so there is a tiny amount of overhead.

License

Distributed under the terms of the MIT license, Bleach is free and open source software.

Credits

This project was generated from a variant of @cjolowicz's Hypermodern Python Cookiecutter template.

About

Remove unsightly printable characters from your Python code!

Resources

License

Stars

Watchers

Forks

Packages

No packages published