mirror of
https://github.com/django/django.git
synced 2025-10-25 06:36:07 +00:00
Introduced force_bytes and force_str.
This is consistent with the smart_* series of functions and it's going to be used by the next commit.
This commit is contained in:
@@ -139,6 +139,19 @@ def smart_bytes(s, encoding='utf-8', strings_only=False, errors='strict'):
|
||||
"""
|
||||
Returns a bytestring version of 's', encoded as specified in 'encoding'.
|
||||
|
||||
If strings_only is True, don't convert (some) non-string-like objects.
|
||||
"""
|
||||
if isinstance(s, Promise):
|
||||
# The input is the result of a gettext_lazy() call.
|
||||
return s
|
||||
return force_bytes(s, encoding, strings_only, errors)
|
||||
|
||||
|
||||
def force_bytes(s, encoding='utf-8', strings_only=False, errors='strict'):
|
||||
"""
|
||||
Similar to smart_bytes, except that lazy instances are resolved to
|
||||
strings, rather than kept as lazy objects.
|
||||
|
||||
If strings_only is True, don't convert (some) non-string-like objects.
|
||||
"""
|
||||
if isinstance(s, bytes):
|
||||
@@ -169,8 +182,10 @@ def smart_bytes(s, encoding='utf-8', strings_only=False, errors='strict'):
|
||||
|
||||
if six.PY3:
|
||||
smart_str = smart_text
|
||||
force_str = force_text
|
||||
else:
|
||||
smart_str = smart_bytes
|
||||
force_str = force_bytes
|
||||
# backwards compatibility for Python 2
|
||||
smart_unicode = smart_text
|
||||
force_unicode = force_text
|
||||
@@ -181,6 +196,10 @@ Apply smart_text in Python 3 and smart_bytes in Python 2.
|
||||
This is suitable for writing to sys.stdout (for instance).
|
||||
"""
|
||||
|
||||
force_str.__doc__ = """\
|
||||
Apply force_text in Python 3 and force_bytes in Python 2.
|
||||
"""
|
||||
|
||||
def iri_to_uri(iri):
|
||||
"""
|
||||
Convert an Internationalized Resource Identifier (IRI) portion to a URI
|
||||
|
||||
Reference in New Issue
Block a user