localeモジュールのlocale.format()が気持ち悪い件

bonlifeです。数値をカンマ区切りで表示したい!ということで、ググって見つかった id:gunyara-python:20070506:1178432131 のコメント欄、 id:ymorimoto:20070831:p1 を参考にしてlocaleモジュールを試してみました。locale.format()がイメージと違う動きでショック…。

In [1]: import locale

In [2]: locale.setlocale(locale.LC_NUMERIC,'ja')
Out[2]: 'Japanese_Japan.932'

In [3]: locale.format('%d',1000)
Out[3]: '1000'

In [4]: locale.format('%d',1000,True)
Out[4]: '1,000'

ここまではOK。

In [5]: locale.format('%10d',1000)
Out[5]: '      1000'

In [6]: locale.format('%10d',1000,True)
Out[6]: '      1,000'

In [7]: len(locale.format('%10d',1000))
Out[7]: 10

In [8]: len(locale.format('%10d',1000,True))
Out[8]: 11

3つ目の引数をTrueにして「ユー、localeを意識してカンマ付けちゃいなよ!」って指示しながら、さらに表示する長さを10に指定すると、11文字になるです!ガーン…。
回避策はこんな感じですかね。ダサいけど。

In [9]: '%10s' % locale.format('%d',1000,True)
Out[9]: '     1,000'