This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description


Pyfmt is an autoformatting source code tool for python, in more or less the same spirit than gofmt. It follows the pep8 and uses Baron to do its work in one pass.

“Pyfmt“ is in its early stage of developpement, it already do a good job at formatting most of python code but it doesn’t handle yet splitting a too long line and might end up putting back into one line a line that you have split. But it should be fine for ~80% of the cases.

Feedback is very welcome.

You can see it in action here.


PyFmt can be installed using $ pip install pyfmt


pyfmt  # output to standard output
pyfmt -i  # replace the content of the file, like -i of sed

From python:

from pyfmt import format_code



You can reach us on


You can run the tests using $ py.test


Things that pyfmt do (if it’s not already done in the code):

  • render ALL nodes of the python language according to the pep8
  • if a datastructure is indented, keep the indentation and indent it according to the pep8
  • put 2 spaces before comments after code, put a space after the “#” of the comment (don’t do for shebang)
  • split compound statements written on one line on two lines (example: if a: pass -> if a:\n pass”, same for every other statements that wait for a block of code)
  • replace stuff by repr(stuff)
  • split multiple import across multiple lines
  • replace tabs with space
  • correctly indent the whole file using 4 spaces
  • convert windows '\r\n’ to '\n'
  • if not present, put two blank lines around functions or class definitions at the root level of the file
  • if not present, put one blank line around method definition in a class
  • replace <> with !=

Things that pyfmt don’t do or don’t do yet and that can be annoying:

  • properly formatting the content of a “from x import (lot of stuff)”
  • properly splitting too long lines, it may ends up putting back on one line a splited line
  • removing extra blank lines


0.1 (2014-09-07)

  • Init
Release History

Release History


This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pyfmt-0.1-py2.7.egg (6.4 kB) Copy SHA256 Checksum SHA256 2.7 Egg Sep 7, 2014
pyfmt-0.1-py2.py3-none-any.whl (8.9 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Sep 7, 2014
pyfmt-0.1.tar.gz (6.7 kB) Copy SHA256 Checksum SHA256 Source Sep 7, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting