PyDev Formatter
June 15, 2018 ยท View on GitHub
=============== PyDev Formatter
.. image:: https://img.shields.io/pypi/v/pydevf.svg :target: https://pypi.python.org/pypi/pydevf
.. image:: https://img.shields.io/travis/fabioz/PyDev.Formatter.svg :target: https://travis-ci.org/fabioz/PyDev.Formatter
Features
This package provides a command line API to use the PyDev Code Formatter (the PyDev Code formatter is created by extracting the engine for code formatting provided by PyDev: http://www.pydev.org).
The PyDev Formatter is a conservative python code formatter and will try to keep the structure of the code as close as possible to the original sources, while fixing many common issues such as:
- Keep a space after commas
- Trim spaces inside parenthesis
- Right-trim lines
- Add a space before and after operators
- Keep 2 lines before top level classes/methods
- Keep 1 line before inner classes/methods
- Add new line at end of file
- Format comments to have 2 spaces before a comment and 1 space inside the comment
Note that it does not try to break statements to fit any pre-specified line length (as gofmt).
Command line
Basic use of the formatter is:
python -m pydevf <filename_or_directory>
python -m pydevf -h may be used to see the help for additional parameters.
Installing
Requisites
- java 8+ (so, make sure java is installed and in your PATH)
- python 2.7 or 3.4 onwards
- click 6+
Install with pip
To install the PyDev Formatter use:
pip install pydevf
Using with pre-commit
To use it with pre-commit_, just add the following repo to your .pre-commit-config.yaml::
- repo: https://github.com/fabioz/PyDev.Formatter
rev: '' # Use the sha or tag you want to point at
hooks:
- id: pydevf
.. _pre-commit: https://pre-commit.com/
Dealing with big lines
Note that in PyDev there are tools to help on those manual cases. i.e.:
Wrap docstrings/comments with Ctrl+2, W -- See: http://pydev.blogspot.com/2015/04/wrapping-docstringscomments-in-pydev.html.
Wrap/unwrap lists/calls with Ctrl+1, Wrap expression/Unwrap expression (used with cursor inside the list/call).
Daemon mode
By default the formatter will create a daemon and will reuse it among multiple invocations (because
the formatter is very fast but its startup is slow). If you don't want to use this mode use
the --no-daemon parameter.
License
- EPL (Eclipse Public License) 2.0
Releasing
- Update versions on
setup.pyandversion.py git tag {{version}}(i.e.: v0.1.2)git push --tags(travis should build and deploy)
Local release
- Update versions on
setup.pyandversion.py python setup.py sdist bdist_wheelpython -m twine upload dist/*