text: # coding: utf-8
  # Modified Work: Copyright (c) 2018, 2022, Oracle and/or its affiliates.  All rights reserved.
  # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
  # Copyright 2018 Kenneth Reitz
  
  # -*- coding: utf-8 -*-
  
  """
  requests._internal_utils
  ~~~~~~~~~~~~~~
  
  Provides utility functions that are consumed internally by Requests
  which depend on extremely few external helpers (such as compat)
  """
  
  from .compat import is_py2, builtin_str, str
  
  
  def to_native_string(string, encoding='ascii'):
      """Given a string object, regardless of type, returns a representation of
      that string in the native string type, encoding and decoding where
      necessary. This assumes ASCII unless told otherwise.
      """
      if isinstance(string, builtin_str):
          out = string
      else:
          if is_py2:
              out = string.encode(encoding)
          else:
              out = string.decode(encoding)
  
      return out
  
  
  def unicode_is_ascii(u_string):
      """Determine if unicode string only contains ASCII characters.
  
      :param str u_string: unicode string to check. Must be unicode
          and not Python 2 `str`.
      :rtype: bool
      """
      assert isinstance(u_string, str)
      try:
          u_string.encode('ascii')
          return True
      except UnicodeEncodeError:
          return False
  