As discussed on python-dev, remove several operator functions

isSequenceType(), isMappingType(), and isNumberType() in favor
of using abstract base classes.  Also, remove repeat() and irepeat()
in favor of mul() and imul().

After the buildbots have had a go at this.  Will backport to Py3.0.1.
For Py2.7, will just mark as deprecated.
This commit is contained in:
Raymond Hettinger 2009-01-26 02:09:03 +00:00
parent d0005ff41f
commit 89e12963ad
7 changed files with 6 additions and 153 deletions

View file

@ -187,7 +187,7 @@ def format(percent, value, grouping=False, monetary=False, *additional):
formatted = _group(formatted, monetary=monetary)[0]
return formatted
import re, operator
import re, collections
_percent_re = re.compile(r'%(?:\((?P<key>.*?)\))?'
r'(?P<modifiers>[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]')
@ -207,7 +207,7 @@ def format_string(f, val, grouping=False):
del new_val[i+1:i+1+starcount]
i += (1 + starcount)
val = tuple(new_val)
elif operator.isMappingType(val):
elif isinstance(val, collections.Mapping):
for perc in percents:
key = perc.group("key")
val[key] = format(perc.group(), val[key], grouping)