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

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

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

""" 

future: Easy, safe support for Python 2/3 compatibility 

======================================================= 

 

``future`` is the missing compatibility layer between Python 2 and Python 

3. It allows you to use a single, clean Python 3.x-compatible codebase to 

support both Python 2 and Python 3 with minimal overhead. 

 

It is designed to be used as follows:: 

 

from __future__ import (absolute_import, division, 

print_function, unicode_literals) 

from builtins import ( 

bytes, dict, int, list, object, range, str, 

ascii, chr, hex, input, next, oct, open, 

pow, round, super, 

filter, map, zip) 

 

followed by predominantly standard, idiomatic Python 3 code that then runs 

similarly on Python 2.6/2.7 and Python 3.3+. 

 

The imports have no effect on Python 3. On Python 2, they shadow the 

corresponding builtins, which normally have different semantics on Python 3 

versus 2, to provide their Python 3 semantics. 

 

 

Standard library reorganization 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

 

``future`` supports the standard library reorganization (PEP 3108) through the 

following Py3 interfaces: 

 

>>> # Top-level packages with Py3 names provided on Py2: 

>>> import html.parser 

>>> import queue 

>>> import tkinter.dialog 

>>> import xmlrpc.client 

>>> # etc. 

 

>>> # Aliases provided for extensions to existing Py2 module names: 

>>> from future.standard_library import install_aliases 

>>> install_aliases() 

 

>>> from collections import Counter, OrderedDict # backported to Py2.6 

>>> from collections import UserDict, UserList, UserString 

>>> import urllib.request 

>>> from itertools import filterfalse, zip_longest 

>>> from subprocess import getoutput, getstatusoutput 

 

 

Automatic conversion 

-------------------- 

 

An included script called `futurize 

<http://python-future.org/automatic_conversion.html>`_ aids in converting 

code (from either Python 2 or Python 3) to code compatible with both 

platforms. It is similar to ``python-modernize`` but goes further in 

providing Python 3 compatibility through the use of the backported types 

and builtin functions in ``future``. 

 

 

Documentation 

------------- 

 

See: http://python-future.org 

 

 

Credits 

------- 

 

:Author: Ed Schofield 

:Sponsor: Python Charmers Pty Ltd, Australia, and Python Charmers Pte 

Ltd, Singapore. http://pythoncharmers.com 

:Others: See docs/credits.rst or http://python-future.org/credits.html 

 

 

Licensing 

--------- 

Copyright 2013-2018 Python Charmers Pty Ltd, Australia. 

The software is distributed under an MIT licence. See LICENSE.txt. 

 

""" 

 

__title__ = 'future' 

__author__ = 'Ed Schofield' 

__license__ = 'MIT' 

__copyright__ = 'Copyright 2013-2018 Python Charmers Pty Ltd' 

__ver_major__ = 0 

__ver_minor__ = 17 

__ver_patch__ = 1 

__ver_sub__ = '' 

__version__ = "%d.%d.%d%s" % (__ver_major__, __ver_minor__, 

__ver_patch__, __ver_sub__)