Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


str.format() doesn't work on python 2.6 #1544

merged 1 commit into from

3 participants


Very small fix for something that doesn't work with python2.6:

str.format() has been introduced in python 2.7. There are no tests for this, and it seemed like a lot of trouble to set up a test for this.



The ''.format method was introduced in python26, but interestingly there seems to be a bug in the way it was implemented:

$> python2.6
>>> '{} testing'.format('hello')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: zero length field name in format

>>> '{0} testing'.format('hello')
'hello testing'

In short {} doesn't work, where {0} does (there is a note in the docs that this functionality was added in python2.7). The relevant docs are here:

Having said all of the above, the change you have made is fine too, so lets stick with what you've done. :+1:


Oups, my mistake... Both method are fine with me.

Travis told me the tests don't pass: I don't have any problems on my computer, and I'm not managing to view the bug report.


@NelleV The 'test' failures are actually numpy build failures. Not quite sure what's going on. I posted a message to the mpl-devel list in the hopes of enlightenment.


Also, I think I prefer {0}, but it doesn't really matter at the end of the day.


On python 3.2 % works fine:

>>> a = 'a'
>>> b = 'b'
>>> '%s %s' % (a, b)
'a b'


@dmcdougall dmcdougall merged commit d4fca39 into matplotlib:master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Nov 29, 2012
  1. @NelleV
This page is out of date. Refresh to see the latest.
Showing with 3 additions and 4 deletions.
  1. +3 −4 lib/matplotlib/backends/
7 lib/matplotlib/backends/
@@ -326,7 +326,7 @@ def leave_notify_event(self, widget, event):
def enter_notify_event(self, widget, event):
x, y, state = event.window.get_pointer()
- FigureCanvasBase.enter_notify_event(self, event, xy=(x,y))
+ FigureCanvasBase.enter_notify_event(self, event, xy=(x, y))
def _get_key(self, event):
if event.keyval in self.keyvald:
@@ -339,9 +339,9 @@ def _get_key(self, event):
for key_mask, prefix in (
[gdk.MOD4_MASK, 'super'],
[gdk.MOD1_MASK, 'alt'],
- [gdk.CONTROL_MASK, 'ctrl'],):
+ [gdk.CONTROL_MASK, 'ctrl'], ):
if event.state & key_mask:
- key = '{}+{}'.format(prefix, key)
+ key = '%s+%s' % (prefix, key)
return key
@@ -360,7 +360,6 @@ def configure_event(self, widget, event):
return False # finish event propagation?
def draw(self):
# Note: FigureCanvasBase.draw() is inconveniently named as it clashes
# with the deprecated gtk.Widget.draw()
Something went wrong with that request. Please try again.