Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1# -*- coding: utf-8 -*- 

2 

3""" 

4requests._internal_utils 

5~~~~~~~~~~~~~~ 

6 

7Provides utility functions that are consumed internally by Requests 

8which depend on extremely few external helpers (such as compat) 

9""" 

10 

11from .compat import is_py2, builtin_str, str 

12 

13 

14def to_native_string(string, encoding='ascii'): 

15 """Given a string object, regardless of type, returns a representation of 

16 that string in the native string type, encoding and decoding where 

17 necessary. This assumes ASCII unless told otherwise. 

18 """ 

19 if isinstance(string, builtin_str): 

20 out = string 

21 else: 

22 if is_py2: 

23 out = string.encode(encoding) 

24 else: 

25 out = string.decode(encoding) 

26 

27 return out 

28 

29 

30def unicode_is_ascii(u_string): 

31 """Determine if unicode string only contains ASCII characters. 

32 

33 :param str u_string: unicode string to check. Must be unicode 

34 and not Python 2 `str`. 

35 :rtype: bool 

36 """ 

37 assert isinstance(u_string, str) 

38 try: 

39 u_string.encode('ascii') 

40 return True 

41 except UnicodeEncodeError: 

42 return False