Skip to main content

PyDev Code Formatter

Project description

===============
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.py`` and ``version.py``
- ``git tag {{version}}`` (i.e.: v0.1.2)
- ``git push --tags`` (travis should build and deploy)

Local release
---------------

- Update versions on ``setup.py`` and ``version.py``
- ``python setup.py sdist bdist_wheel``
- ``python -m twine upload dist/*``


=======
History
=======

0.1.0 (2018-06-12)
------------------

* First release on PyPI.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydevf-0.1.5.tar.gz (2.9 MB view hashes)

Uploaded source

Built Distribution

pydevf-0.1.5-py2.py3-none-any.whl (2.8 MB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page