
When I generate certain files I have to write a date formated as english text, but the error messages (if there are any) I'd like to keep in the system language. I propose to add this (or a similar) contextmanager: @contextmanager def localectx(category, newlocale=None): oldlocale = locale.getlocale(category) locale.setlocale(category, newlocale) try: yield finally: locale.setlocale(category, oldlocale) Example usage: with localectx(locale.LC_TIME,('en','UTF8')): sdate = time.strftime('%a %b %d %Y') spec_file.write(''' %%changelog * %s Maintainer Name <maintainer@example.com> ''' % sdate) -panzi

Off topic: Here would be a with-expression or inline with (like the inline if) handy: spec_file.write(''' %%changelog * %s Maintainer Name <maintainer@example.com> ''' % (time.strftime('%a %b %d %Y') with localectx(locale.LC_TIME,('en','UTF8')))) However, this would be a very long line. Not very clean code. -panzi

Off topic: Here would be a with-expression or inline with (like the inline if) handy: spec_file.write(''' %%changelog * %s Maintainer Name <maintainer@example.com> ''' % (time.strftime('%a %b %d %Y') with localectx(locale.LC_TIME,('en','UTF8')))) However, this would be a very long line. Not very clean code. -panzi
participants (1)
-
Mathias Panzenböck