[ python-Bugs-1473625 ] cPickle produces locale-dependent dumps

SourceForge.net noreply at sourceforge.net
Fri Apr 21 11:42:51 CEST 2006


Bugs item #1473625, was opened at 2006-04-20 17:25
Message generated for change (Comment added) made by ivilata
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1473625&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.5
Status: Open
Resolution: None
Priority: 5
Submitted By: Ivan Vilata i Balaguer (ivilata)
Assigned to: Nobody/Anonymous (nobody)
Summary: cPickle produces locale-dependent dumps

Initial Comment:
Dumping a float with cPickle produces a result which is
locale-dependent.  This causes problems when trying to
load the dump under a different locale (the regular
pickle module is not affected by this bug).  IMHO, the
dump should be locale-independent to ensure
portability. See the attached file for a sample session
log showing the behaviour of both pickle and cPickle
under C and ca_ES.UTF-8 locales (Catalan uses a comma
to separate the integer and decimal part).


----------------------------------------------------------------------

>Comment By: Ivan Vilata i Balaguer (ivilata)
Date: 2006-04-21 11:42

Message:
Logged In: YES 
user_id=1064183

The problem seems to be in save_float() in the cPickle.c
module.  It uses PyOS_snprintf() to dump floats, but it is
locale-dependent.  Fortunately, the PyOS_ascii_formatd()
function can be used.  The attached patch seems to fix the
problem, and pickling tests run OK.  It would be nice to see
this patch applied to 2.4 also.

(BTW, I meant PEP 331 in the previous comment, not 311, sorry.)

----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2006-04-20 23:54

Message:
Logged In: YES 
user_id=21627

Right, cPickle should use C locale floating point numbers,
using the PEP 331 API. Would you like to investigate a patch?

----------------------------------------------------------------------

Comment By: Ivan Vilata i Balaguer (ivilata)
Date: 2006-04-20 17:28

Message:
Logged In: YES 
user_id=1064183

As a side note, does this have anything to do with PEP 311?
 http://www.python.org/dev/peps/pep-0331/

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1473625&group_id=5470


More information about the Python-bugs-list mailing list