changeset 509:cd2dec0823c9 stable

Python 2.3 compatibility: backporting r456 and r457 to 0.9 branch (see #233)
author fschwarz
date Fri, 04 Mar 2011 13:14:03 +0000
parents 56ea1ec02e16
children 4c473bedd528
files 0.9.x/ChangeLog 0.9.x/babel/messages/catalog.py 0.9.x/babel/messages/checkers.py 0.9.x/babel/messages/frontend.py 0.9.x/babel/messages/jslexer.py 0.9.x/babel/messages/plurals.py 0.9.x/babel/messages/pofile.py 0.9.x/babel/util.py
diffstat 8 files changed, 14 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/0.9.x/ChangeLog
+++ b/0.9.x/ChangeLog
@@ -5,6 +5,7 @@
  * Backport r493-494: documentation typo fixes.
  * Make the CLDR import script work with Python 2.7.
  * Fix various typos.
+ * Fixed Python 2.3 compatibility (ticket #146).
  * Sort output of list-locales.
  * Make the POT-Creation-Date of the catalog being updated equal to
    POT-Creation-Date of the template used to update (ticket #148).
--- a/0.9.x/babel/messages/catalog.py
+++ b/0.9.x/babel/messages/catalog.py
@@ -19,17 +19,13 @@
 from email import message_from_string
 from copy import copy
 import re
-try:
-    set
-except NameError:
-    from sets import Set as set
 import time
 
 from babel import __version__ as VERSION
 from babel.core import Locale
 from babel.dates import format_datetime
 from babel.messages.plurals import get_plural
-from babel.util import odict, distinct, LOCALTZ, UTC, FixedOffsetTimezone
+from babel.util import odict, distinct, set, LOCALTZ, UTC, FixedOffsetTimezone
 
 __all__ = ['Message', 'Catalog', 'TranslationError']
 __docformat__ = 'restructuredtext en'
--- a/0.9.x/babel/messages/checkers.py
+++ b/0.9.x/babel/messages/checkers.py
@@ -18,6 +18,7 @@
 
 from itertools import izip
 from babel.messages.catalog import TranslationError, PYTHON_FORMAT
+from babel.util import set
 
 #: list of format chars that are compatible to each other
 _string_format_compatibilities = [
--- a/0.9.x/babel/messages/frontend.py
+++ b/0.9.x/babel/messages/frontend.py
@@ -1176,8 +1176,9 @@
 def parse_keywords(strings=[]):
     """Parse keywords specifications from the given list of strings.
 
-    >>> kw = parse_keywords(['_', 'dgettext:2', 'dngettext:2,3'])
-    >>> for keyword, indices in sorted(kw.items()):
+    >>> kw = parse_keywords(['_', 'dgettext:2', 'dngettext:2,3']).items()
+    >>> kw.sort()
+    >>> for keyword, indices in kw:
     ...     print (keyword, indices)
     ('_', None)
     ('dgettext', (2,))
--- a/0.9.x/babel/messages/jslexer.py
+++ b/0.9.x/babel/messages/jslexer.py
@@ -16,7 +16,8 @@
 """
 
 import re
-from operator import itemgetter
+
+from babel.util import itemgetter
 
 
 operators = [
--- a/0.9.x/babel/messages/plurals.py
+++ b/0.9.x/babel/messages/plurals.py
@@ -13,9 +13,8 @@
 
 """Plural form definitions."""
 
-
-from operator import itemgetter
 from babel.core import default_locale, Locale
+from babel.util import itemgetter
 
 
 LC_CTYPE = default_locale('LC_CTYPE')
--- a/0.9.x/babel/messages/pofile.py
+++ b/0.9.x/babel/messages/pofile.py
@@ -21,14 +21,10 @@
 from datetime import date, datetime
 import os
 import re
-try:
-    set
-except NameError:
-    from sets import Set as set
 
 from babel import __version__ as VERSION
 from babel.messages.catalog import Catalog, Message
-from babel.util import wraptext, LOCALTZ
+from babel.util import set, wraptext, LOCALTZ
 
 __all__ = ['read_po', 'write_po']
 __docformat__ = 'restructuredtext en'
@@ -195,7 +191,9 @@
                 translations[-1][1] += u'\n' + line.rstrip()
 
     for lineno, line in enumerate(fileobj.readlines()):
-        line = line.strip().decode(catalog.charset)
+        line = line.strip()
+        if not isinstance(line, unicode):
+            line = line.decode(catalog.charset)
         if line.startswith('#'):
             in_msgid[0] = in_msgstr[0] = False
             if messages and translations:
--- a/0.9.x/babel/util.py
+++ b/0.9.x/babel/util.py
@@ -18,7 +18,7 @@
 import os
 import re
 try:
-    set
+    set = set
 except NameError:
     from sets import Set as set
 import textwrap
Copyright (C) 2012-2017 Edgewall Software