On 03/25/2010 02:43 PM, Chris Lumens wrote:
try: ret = fn(*args, **kwds) finally: locale.setlocale(locale.LC_MESSAGES, oldlocale) return ret That *should* work in all cases just like what you've got above and involves less exception manipulation.
Nice, I was looking for a construct to do exactly this.
You're not in the gitpyparted group so if you want to move this (and the RHEL6 bug) to pyparted and attach a patch, either David or I will commit it for you.
Absolutely, please commit---the patch is attached, bug for rhel6 is 576848, for Fedora it is 571940.
Thanks. Ales
>From 5cef93a0e5dfcc73d68c21e1e229486e2f69e9b2 Mon Sep 17 00:00:00 2001 From: Ales Kozumplik <akozumpl@xxxxxxxxxx> Date: Thu, 25 Mar 2010 11:26:25 +0100 Subject: [pyparted] Restore locales even when an exception is thrown (#571940). Otherwise this disables translations of all glade strings in anaconda. --- src/parted/decorators.py | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/src/parted/decorators.py b/src/parted/decorators.py index 2f72dd9..dce3f1d 100644 --- a/src/parted/decorators.py +++ b/src/parted/decorators.py @@ -27,7 +27,11 @@ import locale def localeC(fn, *args, **kwds): oldlocale = locale.getlocale(locale.LC_MESSAGES) locale.setlocale(locale.LC_MESSAGES, 'C') - ret = fn(*args, **kwds) + try: + ret = fn(*args, **kwds) + except Exception as e: + locale.setlocale(locale.LC_MESSAGES, oldlocale) + raise e locale.setlocale(locale.LC_MESSAGES, oldlocale) return ret -- 1.6.6
_______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list