From d8f6b55aa8f05a479eb0018b470932805f2c95d1 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Sat, 7 Jun 2014 20:36:59 -0700 Subject: [PATCH] Optimize is_protected_type slightly (used by force_text, which is used basically everywhere) --- django/utils/encoding.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/django/utils/encoding.py b/django/utils/encoding.py index ee67df30ea..beb5e54ae8 100644 --- a/django/utils/encoding.py +++ b/django/utils/encoding.py @@ -52,14 +52,17 @@ def smart_text(s, encoding='utf-8', strings_only=False, errors='strict'): return force_text(s, encoding, strings_only, errors) +_PROTECTED_TYPES = six.integer_types + (type(None), float, Decimal, + datetime.datetime, datetime.date, datetime.time) + + def is_protected_type(obj): """Determine if the object instance is of a protected type. Objects of protected types are preserved as-is when passed to force_text(strings_only=True). """ - return isinstance(obj, six.integer_types + (type(None), float, Decimal, - datetime.datetime, datetime.date, datetime.time)) + return isinstance(obj, _PROTECTED_TYPES) def force_text(s, encoding='utf-8', strings_only=False, errors='strict'):