code: def smart_text(s, encoding='utf-8', strings_only=False, errors='strict'):
      
      if isinstance(s, Promise):
          # The input is the result of a gettext_lazy() call.
          return s
      return force_text(s, encoding, strings_only, errors)
docs: Returns a text object representing 's' -- unicode on Python 2 and str on
      Python 3. Treats bytestrings using the 'encoding' codec.
  
      If strings_only is True, don't convert (some) non-string-like objects.