changeset 281:99fe87a24e8e trunk

In `Locale.parse()`, only parse the argument if it's a string, otherwise just return the argument. This assumes that a non-string argument is either a `Locale` instance, or a proxy object pretending to be one. That may not be a safe assumption, but at least it allows you to use proxy objects such as Paste's `StackedObjectProxy` for locales.
author cmlenz
date Wed, 05 Sep 2007 16:40:17 +0000
parents bbb917a96be4
children 437a2a4f675b
files babel/core.py
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/babel/core.py
+++ b/babel/core.py
@@ -206,9 +206,9 @@
                                      requested locale
         :see: `parse_locale`
         """
-        if type(identifier) is cls:
-            return identifier
-        return cls(*parse_locale(identifier, sep=sep))
+        if isinstance(identifier, basestring):
+            return cls(*parse_locale(identifier, sep=sep))
+        return identifier
     parse = classmethod(parse)
 
     def __eq__(self, other):
Copyright (C) 2012-2017 Edgewall Software