People say

"Many braces!!! Much WOW!" - 


"All this indentation made me sick... Python With Braces to the moon!" - 


"The most useless project ever!" - 



In Python with Braces, indentation doesn't matter. The only thing that matters is correctly opening and closing curly braces blocks, and making sure lines are terminated with a semicolon - exactly like in C or Java.

Python with Braces

if foo=="bar" {
  print "Indentation";
print "doesn't";
    print "matter!";


if foo=="bar":
  print "Indentation"
  print "matters"


You can also omit the curly braces if you have only one statement in your block.

if foo=="bar"
  print "Look, no braces";

Other than that, everything basically stays the same. You can still use all the regular python commands as usual.

Python with Braces

for i in xrange(10)
  print i;


for i in xrange(10):
  print i

Python with Braces

class SampleClass {
  def __init__(self) {
    print "Hello world";



class SampleClass:
  def __init__(self):
    print "Hello world"



What's next

There's still a lot of work to be done. We're planning to:


How do I run Python with Braces?

Python with Braces contains a side by side build of standard python 2.7.6 ("python" executable) along side the Python with Braces executable (named "pythonb"). To start a Python with Braces interactive shell, just run the latter.

Will it break my current Python?

No. Python with Braces will not override the default behaviour for running ".py" and ".pyw" files. Instead, it will add new ".pyb" and ".pybw" extensions for Python with Braces files.

Will it work with normal Python scripts?

Unfortunately no. A workaround can be compiling existing scripts to ".pyc" files, which can be imported as modules (Python with Braces uses the same ".pyc" files as regular Python).

Stay in touch

If you have any comments, questions, or bug reports we'd love to hear from you. Contact us at

Python with Braces logo