1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

# -*- 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