diff options
author | Martin Kosek <mkosek@redhat.com> | 2012-01-17 11:19:00 +0100 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-01-20 08:13:44 +0100 |
commit | 092dd8db1293599a4b7f0ab33ea43e8082ec554f (patch) | |
tree | 4de216fe1b4a69f8d2acb4550dee8716dd1e0b53 /ipalib/__init__.py | |
parent | d906fa50c1fd56ceb1a602fe50129becb6a304d4 (diff) | |
download | freeipa-092dd8db1293599a4b7f0ab33ea43e8082ec554f.tar.gz freeipa-092dd8db1293599a4b7f0ab33ea43e8082ec554f.tar.xz freeipa-092dd8db1293599a4b7f0ab33ea43e8082ec554f.zip |
Replace float with Decimal
Having float type as a base type for floating point parameters in
ipalib introduces several issues, e.g. problem with representation
or value comparison. Python language provides a Decimal type which
help overcome these issues.
This patch replaces a float type and Float parameter with a
decimal.Decimal type in Decimal parameter. A precision attribute
was added to Decimal parameter that can be used to limit a number
of decimal places in parameter representation. This approach fixes
a problem with API.txt validation where comparison of float values
may fail on different architectures due to float representation error.
In order to safely transfer the parameter value over RPC it is
being converted to string which is then converted back to
decimal.Decimal number on a server side.
https://fedorahosted.org/freeipa/ticket/2260
Diffstat (limited to 'ipalib/__init__.py')
-rw-r--r-- | ipalib/__init__.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ipalib/__init__.py b/ipalib/__init__.py index 29ba0bb90..1efeeab4a 100644 --- a/ipalib/__init__.py +++ b/ipalib/__init__.py @@ -878,7 +878,7 @@ from backend import Backend from frontend import Command, LocalOrRemote, Updater from frontend import Object, Method, Property from crud import Create, Retrieve, Update, Delete, Search -from parameters import DefaultFrom, Bool, Flag, Int, Float, Bytes, Str, IA5Str, Password +from parameters import DefaultFrom, Bool, Flag, Int, Decimal, Bytes, Str, IA5Str, Password from parameters import BytesEnum, StrEnum, AccessTime, File from errors import SkipPluginModule from text import _, ngettext, GettextFactory, NGettextFactory |