compatibility.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import operator
  2. import sys
  3. PY3 = sys.version_info[0] > 2
  4. PY34 = sys.version_info[0] == 3 and sys.version_info[1] == 4
  5. __all__ = ['PY3', 'map', 'filter', 'range', 'zip', 'reduce', 'zip_longest',
  6. 'iteritems', 'iterkeys', 'itervalues', 'import_module']
  7. if PY3:
  8. map = map
  9. filter = filter
  10. range = range
  11. zip = zip
  12. from functools import reduce
  13. from itertools import zip_longest
  14. iteritems = operator.methodcaller('items')
  15. iterkeys = operator.methodcaller('keys')
  16. itervalues = operator.methodcaller('values')
  17. else:
  18. range = xrange
  19. reduce = reduce
  20. from itertools import imap as map
  21. from itertools import ifilter as filter
  22. from itertools import izip as zip
  23. from itertools import izip_longest as zip_longest
  24. iteritems = operator.methodcaller('iteritems')
  25. iterkeys = operator.methodcaller('iterkeys')
  26. itervalues = operator.methodcaller('itervalues')
  27. try:
  28. from importlib import import_module
  29. except ImportError:
  30. def import_module(name):
  31. __import__(name)
  32. return sys.modules[name]