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 97K
  • Win 44K
  • OS X 27K
  • Linux 26K
Nov 18 Nov 17 Nov 16 Nov 15 Nov 14 Nov 13 Nov 12 Nov 11 Nov 10 Nov 9 Nov 8 Nov 7 Nov 6 Nov 5 Nov 4 Nov 3 Nov 2 Nov 1 Oct 31 Oct 30 Oct 29 Oct 28 Oct 27 Oct 26 Oct 25 Oct 24 Oct 23 Oct 22 Oct 21 Oct 20 Oct 19 Oct 18 Oct 17 Oct 16 Oct 15 Oct 14 Oct 13 Oct 12 Oct 11 Oct 10 Oct 9 Oct 8 Oct 7 Oct 6 Oct 5 Oct 4
Windows 20 65 65 73 65 76 35 35 56 53 69 63 59 37 42 49 67 60 45 55 42 42 49 55 54 64 70 44 43 58 48 50 58 61 38 40 51 52 37 54 47 33 29 36 54 39
OS X 6 37 37 33 35 35 30 29 27 37 30 21 30 20 18 23 28 35 32 29 16 13 23 37 35 33 30 18 27 28 24 30 34 29 13 27 27 25 19 29 27 14 19 31 23 31
Linux 11 29 19 44 37 31 11 22 29 30 32 22 30 19 24 26 32 31 22 28 22 23 31 30 33 26 26 19 24 28 19 35 28 26 20 18 27 28 18 29 37 20 10 35 30 36

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.