[docs] [issue19175] Erroneous reference to "integer" in format string grammar
David Chambers
report at bugs.python.org
Sun Oct 6 06:14:25 CEST 2013
New submission from David Chambers:
I first raised this issue on Stack Overflow: http://stackoverflow.com/questions/19203194
The [replacement field grammar][1] states that an [integer][2] is a valid field_name, but this is inaccurate:
>>> '{0}'.format('zero')
'zero'
>>> '{0x0}.format('zero')
KeyError: '0x0'
>>> '{0o0}.format('zero')
KeyError: '0o0'
>>> '{0b0}.format('zero')
KeyError: '0b0'
This [comment][3] by Eric Smith suggests that the above is the intended behaviour:
> get_integer uses the narrowest possible definition for integer indexes,
> in order to pass all other strings to mappings.
The documentation should be updated to match the actual behaviour. abarnert on Stack Overflow suggested the following change:
-arg_name ::= [identifier | integer]
+arg_name ::= [identifier | digit+]
[1]: http://docs.python.org/2/library/string.html#format-string-syntax
[2]: http://docs.python.org/2/reference/lexical_analysis.html#grammar-token-integer
[3]: http://bugs.python.org/issue8985#msg107705
----------
assignee: docs at python
components: Documentation
messages: 199024
nosy: davidchambers, docs at python
priority: normal
severity: normal
status: open
title: Erroneous reference to "integer" in format string grammar
versions: Python 2.6, Python 2.7, Python 3.1, Python 3.2, Python 3.3, Python 3.4
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue19175>
_______________________________________
More information about the docs
mailing list