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 90K
  • Win 40K
  • OS X 25K
  • Linux 25K
Aug 24 Aug 23 Aug 22 Aug 21 Aug 20 Aug 19 Aug 18 Aug 17 Aug 16 Aug 15 Aug 14 Aug 13 Aug 12 Aug 11 Aug 10 Aug 9 Aug 8 Aug 7 Aug 6 Aug 5 Aug 4 Aug 3 Aug 2 Aug 1 Jul 31 Jul 30 Jul 29 Jul 28 Jul 27 Jul 26 Jul 25 Jul 24 Jul 23 Jul 22 Jul 21 Jul 20 Jul 19 Jul 18 Jul 17 Jul 16 Jul 15 Jul 14 Jul 13 Jul 12 Jul 11 Jul 10
Windows 29 62 64 68 24 33 65 54 56 44 44 40 36 49 57 70 45 65 29 47 45 56 49 65 59 34 45 54 56 60 60 59 46 39 37 74 56 59 67 31 44 60 60 70 70 65
OS X 13 31 34 21 14 15 27 32 32 30 30 26 18 28 36 34 42 29 11 17 24 34 25 43 24 22 20 24 26 29 27 26 15 24 27 45 38 31 25 18 25 38 29 35 25 23
Linux 16 26 25 30 12 16 32 16 21 27 31 20 16 26 28 33 32 20 12 20 26 25 40 36 27 17 18 31 26 29 31 31 16 16 27 26 28 32 29 16 8 20 22 29 28 31

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.