fix "import decimal" in the Turkish locale (patch 131; rhbz#694928)

This commit is contained in:
David Malcolm 2011-04-12 08:06:25 -04:00
parent 489369c26e
commit 895f921d7b
2 changed files with 60 additions and 1 deletions

View File

@ -0,0 +1,50 @@
diff -up Python-2.7.1/Lib/decimal.py.fix-decimal-in-turkish-locale Python-2.7.1/Lib/decimal.py
--- Python-2.7.1/Lib/decimal.py.fix-decimal-in-turkish-locale 2010-07-08 17:22:54.000000000 -0400
+++ Python-2.7.1/Lib/decimal.py 2011-04-12 11:30:40.850350842 -0400
@@ -1720,8 +1720,6 @@ class Decimal(object):
# here self was representable to begin with; return unchanged
return Decimal(self)
- _pick_rounding_function = {}
-
# for each of the rounding functions below:
# self is a finite, nonzero Decimal
# prec is an integer satisfying 0 <= prec < len(self._int)
@@ -1788,6 +1786,17 @@ class Decimal(object):
else:
return -self._round_down(prec)
+ _pick_rounding_function = dict(
+ ROUND_DOWN = '_round_down',
+ ROUND_UP = '_round_up',
+ ROUND_HALF_UP = '_round_half_up',
+ ROUND_HALF_DOWN = '_round_half_down',
+ ROUND_HALF_EVEN = '_round_half_even',
+ ROUND_CEILING = '_round_ceiling',
+ ROUND_FLOOR = '_round_floor',
+ ROUND_05UP = '_round_05up',
+ )
+
def fma(self, other, third, context=None):
"""Fused multiply-add.
@@ -3705,18 +3714,6 @@ _numbers.Number.register(Decimal)
##### Context class #######################################################
-
-# get rounding method function:
-rounding_functions = [name for name in Decimal.__dict__.keys()
- if name.startswith('_round_')]
-for name in rounding_functions:
- # name is like _round_half_even, goes to the global ROUND_HALF_EVEN value.
- globalname = name[1:].upper()
- val = globals()[globalname]
- Decimal._pick_rounding_function[val] = name
-
-del name, val, globalname, rounding_functions
-
class _ContextManager(object):
"""Context manager class to support localcontext().
diff -up Python-2.7.1/Misc/NEWS.fix-decimal-in-turkish-locale Python-2.7.1/Misc/NEWS

View File

@ -94,7 +94,7 @@ Summary: An interpreted, interactive, object-oriented programming language
Name: %{python}
# Remember to also rebase python-docs when changing this:
Version: 2.7.1
Release: 6%{?dist}
Release: 7%{?dist}
License: Python
Group: Development/Languages
Requires: %{python}-libs%{?_isa} = %{version}-%{release}
@ -425,6 +425,11 @@ Patch128: python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch
# See http://bugs.python.org/issue10655 and rhbz#661510
Patch130: python-3.2b2-fix-ppc-debug-build.patch
# Fix "import decimal" in the Turkish locale (rhbz#694928)
# Based on upstream commit:
# http://hg.python.org/cpython/rev/b4b1f557d563/
Patch131: python-2.7.1-fix-decimal-in-turkish-locale.patch
# This is the generated patch to "configure"; see the description of
# %{regenerate_autotooling_patch}
@ -677,6 +682,7 @@ rm -r Modules/zlib || exit 1
%patch127 -p0 -b .fix-test_structmember-on-64bit-bigendian
%patch128 -p1
%patch130 -p1
%patch131 -p1
# This shouldn't be necesarry, but is right now (2.2a3)
find -name "*~" |xargs rm -f
@ -1621,6 +1627,9 @@ rm -fr %{buildroot}
# payload file would be unpackaged)
%changelog
* Tue Apr 12 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.1-7
- fix "import decimal" in the Turkish locale (patch 131; rhbz#694928)
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild