ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Python PEP8 Autoformat

by StephaneBunel ST2/ST3

Python PEP8 Autoformat is a Sublime Text (2|3) plugin to interactively reformat Python source code according to PEP8 (Style Guide for Python Code).

Details

Installs

  • Total 85K
  • Win 38K
  • OS X 24K
  • Linux 24K
Jun 27 Jun 26 Jun 25 Jun 24 Jun 23 Jun 22 Jun 21 Jun 20 Jun 19 Jun 18 Jun 17 Jun 16 Jun 15 Jun 14 Jun 13 Jun 12 Jun 11 Jun 10 Jun 9 Jun 8 Jun 7 Jun 6 Jun 5 Jun 4 Jun 3 Jun 2 Jun 1 May 31 May 30 May 29 May 28 May 27 May 26 May 25 May 24 May 23 May 22 May 21 May 20 May 19 May 18 May 17 May 16 May 15 May 14 May 13
Windows 32 78 33 36 50 57 49 55 57 27 33 62 59 54 53 46 25 39 47 59 57 59 61 45 39 57 67 63 43 35 39 35 48 54 68 49 74 43 47 50 64 65 55 69 42 20
OS X 15 32 24 19 18 23 30 35 14 16 9 24 31 32 35 32 15 20 25 29 24 34 26 23 15 17 41 34 28 26 19 15 37 30 34 32 27 8 15 23 29 27 37 32 8 14
Linux 9 23 15 21 26 30 27 27 31 7 18 31 34 29 27 22 17 28 20 38 27 35 32 9 17 19 30 33 28 20 14 21 27 23 30 34 33 23 15 28 21 33 20 27 13 16

Readme

Source
bitbucket.​org

Python PEP8 Autoformat

Python PEP8 Autoformat is a Sublime Text plugin to interactively reformat Python source code according to PEP-8 (Style Guide for Python Code). Both Sublime Text versions 2 and 3 are supported.

History

Some time ago, looking for a possible Eclipse replacement, I gave a try to Sublime Text 2. One of my main usages of PyDev (very good Eclipse plugin for Python developer) is the code formatter.

Under Sublime Text 2 I installed PythonTidy but unfortunately it did not work for me. So, for fun and learning, I decided to create Python PEP8 Autoformat, based on autopep8 as code formatter and pep8 as code linter.

Installation

To avoid dependencies, all necessary modules are included within the package.

  1. Using Sublime Package Control

    • Use cmd+shift+P shortcut then Package Control: Install Package
    • Look for Python PEP8 Autoformat and install it.
  2. Using mercurial (hg) repository on bitbucket:

    • Open a terminal, move to Packages directory (refers to the folder that opens when you use the Preferences > Browse Packages… menu). Then type in terminal:
    • hg clone https://bitbucket.org/StephaneBunel/pythonpep8autoformat 'Python PEP8 Autoformat'
  3. Manually:

    • Download an archive of Python PEP8 Autoformat
    • Open a terminal, move to Packages directory (refers to the folder that opens when you use the Preferences > Browse Packages… menu) and create a new directory named 'Python PEP8 Autoformat'
    • Extract archive contents in new 'Python PEP8 Autoformat' directory.

Settings

You'll find settings in Preferences menu (Preferences -> Package Settings -> Python PEP8 Autoformat -> …).

{
    // autoformat code on save ?
    "autoformat_on_save": false,

    // enable possibly unsafe changes (E226, E24, W6)
    // aggressive level, 0 to disable:
    "aggressive": 0,

    // list codes for fixes; used by --ignore and --select
    "list-fixes": false,

    // do not fix these errors / warnings (e.g. ["E501", E4", "W"])
    "ignore": [],

    // select errors / warnings (e.g. ["E4", "W"])
    "select": [],

    // Maximum line length
    "max-line-length": 79
}

By editing User settings, your personal liking will be kept safe over plugin upgrades.

Indent size

PEP8 suggests using 4 spaces for indentation, but because that sometimes varies on a project by project basis, autopep8 has a –indent-size parameter.

If you wish to change the indent size, you can add in a key to your package settings. By default it uses 4.

{
    ...

    "indent-size": 2,

    ...
}

Usage

Formatting is applied on the whole document.

Using keyboard:

  • GNU/Linux: ctrl+shift+r
  • OSX: ctrl+shift+r
  • Windows: ctrl+shift+r

Using Command Palette:

As defined in Default.sublime-commands file:

[
    { "caption": "User: Python PEP8 Autoformat", "command": "pep8_autoformat" }
]

You can format your Python code by opening Command Palette (ctrl+shift+P) and type “auto”… up to highlight full caption.

Companions

Useful companions to Python PEP8 Autoformat:

License

Copyright 2012-2014 Stéphane Bunel

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.