/pybeautifier

Python beautifier tcp server based on autopep8, yapf, isort

Primary LanguagePythonMIT LicenseMIT

PyBeautifier

Python beautifier tcp server based on autopep8, yapf, isort.
Only suport Unix-like system and python3.3+ currently.

Why

Before this, I use atom-beautify to format my code, but it's too slow(about 3 seconds) because every format operation will create a new python process.

So I write the beautifier server in python and beautifier client in node.js, they communicate by tcp socket. It's performance is much better(about 300 ms).

Install

$ pip install pybeautifier

Besides, you should install one or more of autopep8, yapf, isort based on your needs.

Usage

$ pybeautifier       # front ground process
$ pybeautifier -d    # daemon process, logging to /tmp/pybeautifier.log

It will start listening to tcp://${BEAUTIFIER_HOST}:${BEAUTIFIER_PORT}.

Env variables:

BEAUTIFIER_HOST - IP address or hostname (Default: 127.0.0.1)
BEAUTIFIER_PORT - Port number (Default: 36805)

Start at boot via systemd(Ubuntu16 or Arch Linux):

$ wget https://raw.githubusercontent.com/guyskk/pybeautifier/master/pybeautifier.service
$ cp pybeautifier.service /usr/lib/systemd/system/
$ systemctl start pybeautifier
$ systemctl enable pybeautifier

Protocol

Request(JSON):

{
    'data': 'text_need_format',
    'formaters': [
        {
            'name': 'formater_name',
            'config': {}  # None or dict
        },
        ... # formaters
    ]
}

Response(JSON):

{
    'error': 'error message',
    'data': 'formated text'
}