classification
Title: No float formatting in PyString_FromFormat
Type: feature request
Components: Extension Modules, Interpreter Core Versions: Python 3.0, Python 2.6, Python 2.5, Python 2.4, Python 2.3, Python 2.2.3, Python 2.2.2, Python 2.2.1, Python 2.2, Python 2.1.2, Python 2.1.1
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: MrJean1, duaneb, facundobatista, riq
Priority: Keywords: patch

Created on 2008-05-10 21:09 by duaneb, last changed 2008-06-24 15:47 by MrJean1.

Files
File name Uploaded Description Edit Remove
stringobject_format_f.patch MrJean1, 2008-06-21 23:34 support for %f in PyString_FromFormat*
stringobject_format_Lf.patch MrJean1, 2008-06-23 06:08 support for %f and %Lf in PyString_FromFormat*
stringobject_format_xLf.patch MrJean1, 2008-06-24 15:47 support for %#zx, %f, %Lf in PyString_FromFormat*
Messages
msg66586 (view) Author: duane Bailey (duaneb) Date: 2008-05-10 21:09
There appears to be most of the formatting options in the *printf 
family... except for the obvious %f. Why is this crucial option missing?
msg68509 (view) Author: Ricardo Quesada (riq) Date: 2008-06-21 16:04
Do you expect to have support for float, double and long double ?
Also, do you expect to have support for precision-modifiers ?
msg68523 (view) Author: duane Bailey (duaneb) Date: 2008-06-21 17:42
Well, precision modifiers would be nice, but I don't think that they're
necessarily needed. General floating point support, however, is needed.
msg68552 (view) Author: Jean Brouwers (MrJean1) Date: 2008-06-21 23:21
Attached is a patch attempting to provide support for %f with precision in PyString_FromFormat* based on file Objects/stringobject.c of Python 2.6b1.

Note, only %f is support but %lf is not and silently ignored.
msg68596 (view) Author: Jean Brouwers (MrJean1) Date: 2008-06-22 23:47
Attached is another patch for file Objects/stringobject.c(relative to 
Python 2.6b1) which supports the double %f and long double %LF formats.  

However, %Lf is included only if symbol  LDBL_DIG is defined in header 
file <float.h> on the underlying platform.

This patch also handles the long and size_t flags correctly in the first 
loop to determine the size of the buffer under
    ...
    case 'd': case 'u': case 'i': case 'x':
    ...

Btw, it does not make sense to handle float since there is not formnat 
specification for floats.
msg68597 (view) Author: Facundo Batista (facundobatista) Date: 2008-06-22 23:58
Jean, you can increase *hugely* the possibility of this being accepted
if you submit a comprehensive suite test for this.

Thanks!!
msg68609 (view) Author: Jean Brouwers (MrJean1) Date: 2008-06-23 05:24
Another rev of the patch now including updates to 2 documentation files: 
Doc/c-api/exceptions.rst and Doc/c-api/string.rst.  As before the patch is 
relative to the source of Python 2.6b1.

Where should test cases for the new formats in the PyString_FromFormat* 
and PyErr_Format functions be added?
msg68610 (view) Author: Jean Brouwers (MrJean1) Date: 2008-06-23 06:08
The tests for PyString_FromFormat are in file Modules/_testcapimodule.c.

Attached is yet another update of the patch, this one also includes 3 
tests for the new %f format specification added to file 
Modules/_testcapimodule.c.
msg68691 (view) Author: Jean Brouwers (MrJean1) Date: 2008-06-24 15:47
Here is another patch for PyString_FromFormat* adding support for 'l' and 
'z' type specifications for the '%x' format and an optional '#' to prepend 
'0x' to the hex result.  In addition, the '%p' format is handled as '%#x'.

Updates for the c-api tests and the documentation for exceptions and 
string are also included in the patch.

Like before, the patch is a forward delta to the files of Python 2.6b1.
History
Date User Action Args
2008-06-24 15:47:17MrJean1setfiles: + stringobject_format_xLf.patch
messages: + msg68691
2008-06-23 06:08:54MrJean1setfiles: - stringobject_format_Lf.patch
2008-06-23 06:08:31MrJean1setfiles: + stringobject_format_Lf.patch
messages: + msg68610
2008-06-23 05:24:58MrJean1setfiles: - stringobject_format_Lf.patch
2008-06-23 05:24:38MrJean1setfiles: + stringobject_format_Lf.patch
messages: + msg68609
2008-06-22 23:58:07facundobatistasetnosy: + facundobatista
messages: + msg68597
2008-06-22 23:52:24MrJean1setfiles: + stringobject_format_Lf.patch
2008-06-22 23:50:12MrJean1setfiles: - stringobject_format_Lf.patch
2008-06-22 23:47:26MrJean1setfiles: + stringobject_format_Lf.patch
messages: + msg68596
2008-06-21 23:34:26MrJean1setfiles: + stringobject_format_f.patch
2008-06-21 23:33:29MrJean1setfiles: - stringobject_format_f.patch
2008-06-21 23:21:43MrJean1setfiles: + stringobject_format_f.patch
keywords: + patch
messages: + msg68552
nosy: + MrJean1
2008-06-21 17:42:16duanebsetmessages: + msg68523
2008-06-21 16:04:56riqsetnosy: + riq
messages: + msg68509
2008-05-10 21:09:06duanebcreate