Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

compat.py 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # -*- coding: utf-8 -*-
  2. """
  3. requests.compat
  4. ~~~~~~~~~~~~~~~
  5. This module handles import compatibility issues between Python 2 and
  6. Python 3.
  7. """
  8. from pip._vendor import chardet
  9. import sys
  10. # -------
  11. # Pythons
  12. # -------
  13. # Syntax sugar.
  14. _ver = sys.version_info
  15. #: Python 2.x?
  16. is_py2 = (_ver[0] == 2)
  17. #: Python 3.x?
  18. is_py3 = (_ver[0] == 3)
  19. # Note: We've patched out simplejson support in pip because it prevents
  20. # upgrading simplejson on Windows.
  21. # try:
  22. # import simplejson as json
  23. # except (ImportError, SyntaxError):
  24. # # simplejson does not support Python 3.2, it throws a SyntaxError
  25. # # because of u'...' Unicode literals.
  26. import json
  27. # ---------
  28. # Specifics
  29. # ---------
  30. if is_py2:
  31. from urllib import (
  32. quote, unquote, quote_plus, unquote_plus, urlencode, getproxies,
  33. proxy_bypass, proxy_bypass_environment, getproxies_environment)
  34. from urlparse import urlparse, urlunparse, urljoin, urlsplit, urldefrag
  35. from urllib2 import parse_http_list
  36. import cookielib
  37. from Cookie import Morsel
  38. from StringIO import StringIO
  39. from collections import Callable, Mapping, MutableMapping
  40. from pip._vendor.urllib3.packages.ordered_dict import OrderedDict
  41. builtin_str = str
  42. bytes = str
  43. str = unicode
  44. basestring = basestring
  45. numeric_types = (int, long, float)
  46. integer_types = (int, long)
  47. elif is_py3:
  48. from urllib.parse import urlparse, urlunparse, urljoin, urlsplit, urlencode, quote, unquote, quote_plus, unquote_plus, urldefrag
  49. from urllib.request import parse_http_list, getproxies, proxy_bypass, proxy_bypass_environment, getproxies_environment
  50. from http import cookiejar as cookielib
  51. from http.cookies import Morsel
  52. from io import StringIO
  53. from collections import OrderedDict
  54. from collections.abc import Callable, Mapping, MutableMapping
  55. builtin_str = str
  56. str = str
  57. bytes = bytes
  58. basestring = (str, bytes)
  59. numeric_types = (int, float)
  60. integer_types = (int,)