From 56eb340528d392612f3229b4bd8b7416553c3b15 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 19 Apr 2010 11:52:56 +0000 Subject: [PATCH] Fixed #13374 -- Corrected some more minor issues causing problems for PyPy. Thanks to Alex Gaynor for the report and patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12998 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- .../core/management/commands/makemessages.py | 36 +++++++++++++++---- tests/regressiontests/forms/localflavor/se.py | 2 +- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 000ed0a8fa..955a822e0c 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -185,7 +185,11 @@ def make_messages(locale=None, domain='django', verbosity='1', all=False, src = open(os.path.join(dirpath, file), "rU").read() src = pythonize_re.sub('\n#', src) thefile = '%s.py' % file - open(os.path.join(dirpath, thefile), "w").write(src) + f = open(os.path.join(dirpath, thefile), "w") + try: + f.write(src) + finally: + f.close() cmd = 'xgettext -d %s -L Perl --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % (domain, os.path.join(dirpath, thefile)) msgs, errors = _popen(cmd) if errors: @@ -199,7 +203,11 @@ def make_messages(locale=None, domain='django', verbosity='1', all=False, else: msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8') if msgs: - open(potfile, 'ab').write(msgs) + f = open(potfile, 'ab') + try: + f.write(msgs) + finally: + f.close() os.unlink(os.path.join(dirpath, thefile)) elif domain == 'django' and (file_ext == '.py' or file_ext in extensions): thefile = file @@ -207,7 +215,11 @@ def make_messages(locale=None, domain='django', verbosity='1', all=False, src = open(os.path.join(dirpath, file), "rU").read() thefile = '%s.py' % file try: - open(os.path.join(dirpath, thefile), "w").write(templatize(src)) + f = open(os.path.join(dirpath, thefile), "w") + try: + f.write(templatize(src)) + finally: + f.close() except SyntaxError, msg: msg = "%s (file: %s)" % (msg, os.path.join(dirpath, file)) raise SyntaxError(msg) @@ -229,7 +241,11 @@ def make_messages(locale=None, domain='django', verbosity='1', all=False, else: msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8') if msgs: - open(potfile, 'ab').write(msgs) + f = open(potfile, 'ab') + try: + f.write(msgs) + finally: + f.close() if thefile != file: os.unlink(os.path.join(dirpath, thefile)) @@ -237,14 +253,22 @@ def make_messages(locale=None, domain='django', verbosity='1', all=False, msgs, errors = _popen('msguniq --to-code=utf-8 "%s"' % potfile) if errors: raise CommandError("errors happened while running msguniq\n%s" % errors) - open(potfile, 'w').write(msgs) + f = open(potfile, 'w') + try: + f.write(msgs) + finally: + f.close() if os.path.exists(pofile): msgs, errors = _popen('msgmerge -q "%s" "%s"' % (pofile, potfile)) if errors: raise CommandError("errors happened while running msgmerge\n%s" % errors) elif not invoked_for_django: msgs = copy_plural_forms(msgs, locale, domain, verbosity) - open(pofile, 'wb').write(msgs) + f = open(pofile, 'wb') + try: + f.write(msgs) + finally: + f.close() os.unlink(potfile) diff --git a/tests/regressiontests/forms/localflavor/se.py b/tests/regressiontests/forms/localflavor/se.py index 44bd953c6e..2d92761557 100644 --- a/tests/regressiontests/forms/localflavor/se.py +++ b/tests/regressiontests/forms/localflavor/se.py @@ -12,7 +12,7 @@ tests = r""" >>> olddate = datetime.date >>> datetime.date = MockDate >>> datetime.date.today() -MockDate(2008, 5, 14) +...MockDate(2008, 5, 14) # SECountySelect #####################################################