On Wed, 2013-11-20 at 15:29 -0500, David Shea wrote:
Size specs are expected to be translated to the current locale, so translate constant size specs before passing them to the Size constructor.
blivet/__init__.py | 12 ++++++------ blivet/size.py | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/blivet/__init__.py b/blivet/__init__.py index dbd8b69..327389b 100644 --- a/blivet/__init__.py +++ b/blivet/__init__.py @@ -85,7 +85,7 @@ import util import arch from flags import flags from platform import platform as _platform -from size import Size +from size import Size, xlate_size
import shelve import contextlib @@ -876,7 +876,7 @@ class Blivet(object): should_clear = self.shouldClear(disk, clearPartType=clearPartType, clearPartDisks=[disk.name]) if should_clear:
free[disk.name] = (Size(spec="%f mb" % disk.size), 0)
free[disk.name] = (Size(spec=xlate_size("%f mb" % disk.size)), 0) continue disk_free = 0
@@ -899,8 +899,8 @@ class Blivet(object): elif disk.format.type is None: disk_free = disk.size
free[disk.name] = (Size(spec="%f mb" % disk_free),
Size(spec="%f mb" % fs_free))
free[disk.name] = (Size(spec=xlate_size("%f mb" % disk_free)),
Size(spec=xlate_size("%f mb" % fs_free))) return free
@@ -1595,8 +1595,8 @@ class Blivet(object): "'biosboot' type partition."))
if not swaps:
installed = Size(spec="%s kb" % util.total_memory())
required = Size(spec="%s kb" % isys.EARLY_SWAP_RAM)
installed = Size(spec=xlate_size("%s kb" % util.total_memory()))
required = Size(spec=xlate_size("%s kb" % isys.EARLY_SWAP_RAM)) if installed < required: errors.append(_("You have not specified a swap partition. "
diff --git a/blivet/size.py b/blivet/size.py index 6c3eb90..d9af722 100644 --- a/blivet/size.py +++ b/blivet/size.py @@ -99,6 +99,22 @@ def _parseSpec(spec):
raise ValueError("invalid size specification", spec)
+def xlate_size(spec):
- """Translate English size specifiers into the current locale."""
- m = re.match(r'(.*?)([A-Za-z]*)$', spec.strip())
I belive this RE deserves a comment about the .*? combination.