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 138K
  • Win 65K
  • OS X 37K
  • Linux 36K
Apr 26 Apr 25 Apr 24 Apr 23 Apr 22 Apr 21 Apr 20 Apr 19 Apr 18 Apr 17 Apr 16 Apr 15 Apr 14 Apr 13 Apr 12 Apr 11 Apr 10 Apr 9 Apr 8 Apr 7 Apr 6 Apr 5 Apr 4 Apr 3 Apr 2 Apr 1 Mar 31 Mar 30 Mar 29 Mar 28 Mar 27 Mar 26 Mar 25 Mar 24 Mar 23 Mar 22 Mar 21 Mar 20 Mar 19 Mar 18 Mar 17 Mar 16 Mar 15 Mar 14 Mar 13 Mar 12
Windows 29 29 39 31 33 19 24 30 32 40 28 28 24 25 35 34 39 40 43 19 21 21 40 39 44 29 21 15 36 24 39 43 36 32 18 39 28 52 45 43 25 32 44 39 30 41
OS X 10 17 18 15 19 14 7 22 14 21 17 17 14 9 22 20 18 20 19 14 12 13 21 17 17 18 8 10 11 20 15 27 18 20 8 20 11 23 19 23 16 12 22 20 25 23
Linux 10 13 9 16 26 17 20 18 25 19 17 12 10 10 20 20 18 20 24 15 9 19 19 16 19 12 7 13 23 32 20 25 26 13 17 21 13 22 19 12 15 15 22 22 13 18

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.