[Terry Reedy] > Lib Manual 3.19 says clearly that the marshal format for a specific > release is system independent and tranportable. It includes floats as > one of the types so supported. If, as I have gathered from this > thread, the format for floats is actually, under certain > circumstances, whimsy-dependent, I think a warning should be added to > the doc until the bug is fixed. The warning is there, but it's in the locale module docs (see the "For extension writers and programs that embed Python" section). It's a documented requirement that LC_NUMERIC be "C" when using Python, and violating that is akin to dividing by 0 in C: nothing is defined if you break the rules. The .pyc problem is only one of the things that can go wrong, and is getting all the attention here just because it *is* going wrong in the spambayes Outlook addin. Note that you can't fall into this trap running a pure Python program. It requires that you also run some non-Python code in the same process that mucks with C runtime state in a forbidden-by-Python way. Python can't *stop* non-Python C code from screwing up the locale, it can only document (and does document) that Python may not work as intended if that occurs. Since Python is functioning as designed and documented in such cases, it's hard to sell this as "a bug" in a convincing way. As Python spreads into more embedded contexts, though, the consequences of this design decision (really more of a no-brainer that looks like "a decision" in hindsight: C's horrid locale gimmicks didn't exist when these parts of Python were first written!) justify arguing for a friendlier (to embedding) design.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4