Portable Python script across Python version

Make scripts more future-proof by importing most __future__ stuff.

Differential Revision: https://reviews.llvm.org/D55208

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@349504 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py
index 5dbe809..54514b8 100644
--- a/bindings/python/clang/cindex.py
+++ b/bindings/python/clang/cindex.py
@@ -44,7 +44,7 @@
 Most object information is exposed using properties, when the underlying API
 call is efficient.
 """
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 # TODO
 # ====
diff --git a/docs/conf.py b/docs/conf.py
index a18ce3a..19113d0 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -11,7 +11,7 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import sys, os
 from datetime import date
 
diff --git a/tools/clang-format/clang-format-diff.py b/tools/clang-format/clang-format-diff.py
index 1721d8a..54347ce 100755
--- a/tools/clang-format/clang-format-diff.py
+++ b/tools/clang-format/clang-format-diff.py
@@ -21,7 +21,7 @@
   svn diff --diff-cmd=diff -x-U0 | clang-format-diff.py -i
 
 """
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import argparse
 import difflib
diff --git a/tools/clang-format/clang-format-sublime.py b/tools/clang-format/clang-format-sublime.py
index 16ff56e..5ea9a27 100644
--- a/tools/clang-format/clang-format-sublime.py
+++ b/tools/clang-format/clang-format-sublime.py
@@ -12,7 +12,7 @@
 # It operates on the current, potentially unsaved buffer and does not create
 # or save any files. To revert a formatting, just undo.
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import sublime
 import sublime_plugin
 import subprocess
diff --git a/tools/clang-format/clang-format.py b/tools/clang-format/clang-format.py
index 5fe592a..fe068bd 100644
--- a/tools/clang-format/clang-format.py
+++ b/tools/clang-format/clang-format.py
@@ -25,7 +25,7 @@
 #
 # It operates on the current, potentially unsaved buffer and does not create
 # or save any files. To revert a formatting, just undo.
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import difflib
 import json
diff --git a/tools/clang-format/git-clang-format b/tools/clang-format/git-clang-format
index 0b21039..96e3b4e 100755
--- a/tools/clang-format/git-clang-format
+++ b/tools/clang-format/git-clang-format
@@ -23,7 +23,7 @@
 Requires Python 2.7 or Python 3                                                  
 """               
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import argparse
 import collections
 import contextlib
diff --git a/tools/clang-rename/clang-rename.py b/tools/clang-rename/clang-rename.py
index 0cb8a26..3381c52 100644
--- a/tools/clang-rename/clang-rename.py
+++ b/tools/clang-rename/clang-rename.py
@@ -22,7 +22,7 @@
 name if the cursor points to a valid symbol.
 '''
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import vim
 import subprocess
 import sys
diff --git a/tools/scan-build-py/libscanbuild/arguments.py b/tools/scan-build-py/libscanbuild/arguments.py
index 73a7f24..eb8ea0d 100644
--- a/tools/scan-build-py/libscanbuild/arguments.py
+++ b/tools/scan-build-py/libscanbuild/arguments.py
@@ -12,7 +12,7 @@
 It also implements basic validation methods, related to the command.
 Validations are mostly calling specific help methods, or mangling values.
 """
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import os
 import sys
diff --git a/utils/ABITest/ABITestGen.py b/utils/ABITest/ABITestGen.py
index a829f92..93a6de9 100755
--- a/utils/ABITest/ABITestGen.py
+++ b/utils/ABITest/ABITestGen.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 from pprint import pprint
 import random, atexit, time
 from random import randrange
diff --git a/utils/ABITest/Enumeration.py b/utils/ABITest/Enumeration.py
index 7606724..24f5b5f 100644
--- a/utils/ABITest/Enumeration.py
+++ b/utils/ABITest/Enumeration.py
@@ -1,6 +1,6 @@
 """Utilities for enumeration of finite and countably infinite sets.
 """
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 ###
 # Countable iteration
 
diff --git a/utils/CIndex/completion_logger_server.py b/utils/CIndex/completion_logger_server.py
index 818d10d..2016671 100755
--- a/utils/CIndex/completion_logger_server.py
+++ b/utils/CIndex/completion_logger_server.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import sys
 from socket import *
 from time import strftime
diff --git a/utils/TestUtils/deep-stack.py b/utils/TestUtils/deep-stack.py
index 8636efa..10bf47a 100755
--- a/utils/TestUtils/deep-stack.py
+++ b/utils/TestUtils/deep-stack.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 def pcall(f, N):
     if N == 0:
         print('    f(0)', file=f)
diff --git a/utils/analyzer/SATestAdd.py b/utils/analyzer/SATestAdd.py
index 377897e..52089f4 100755
--- a/utils/analyzer/SATestAdd.py
+++ b/utils/analyzer/SATestAdd.py
@@ -42,7 +42,7 @@
                                           diff -ur CachedSource PatchedSource \
                                               > changes_for_analyzer.patch
 """
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import SATestBuild
 
 import os
diff --git a/utils/analyzer/SATestUpdateDiffs.py b/utils/analyzer/SATestUpdateDiffs.py
index 64e6ca4..ea3c08c 100755
--- a/utils/analyzer/SATestUpdateDiffs.py
+++ b/utils/analyzer/SATestUpdateDiffs.py
@@ -3,7 +3,7 @@
 """
 Update reference results for static analyzer.
 """
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import SATestBuild
 
diff --git a/utils/analyzer/SumTimerInfo.py b/utils/analyzer/SumTimerInfo.py
index b3219b0..36e519a 100644
--- a/utils/analyzer/SumTimerInfo.py
+++ b/utils/analyzer/SumTimerInfo.py
@@ -6,7 +6,7 @@
 Statistics are enabled by passing '-internal-stats' option to scan-build
 (or '-analyzer-stats' to the analyzer).
 """
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import sys
 
diff --git a/utils/check_cfc/check_cfc.py b/utils/check_cfc/check_cfc.py
index aea9bdd..4ad88c8 100755
--- a/utils/check_cfc/check_cfc.py
+++ b/utils/check_cfc/check_cfc.py
@@ -47,7 +47,7 @@
  subclass.
 """
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import imp
 import os
diff --git a/utils/check_cfc/obj_diff.py b/utils/check_cfc/obj_diff.py
index 61b9118..1302834 100755
--- a/utils/check_cfc/obj_diff.py
+++ b/utils/check_cfc/obj_diff.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python2.7
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import argparse
 import difflib
diff --git a/utils/check_cfc/setup.py b/utils/check_cfc/setup.py
index 6005f6f..64f07d5 100644
--- a/utils/check_cfc/setup.py
+++ b/utils/check_cfc/setup.py
@@ -1,7 +1,7 @@
 """For use on Windows. Run with:
     python.exe setup.py py2exe
     """
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 from distutils.core import setup
 try:
     import py2exe
diff --git a/utils/clangdiag.py b/utils/clangdiag.py
index a9656c5..6baf65a 100755
--- a/utils/clangdiag.py
+++ b/utils/clangdiag.py
@@ -9,7 +9,7 @@
 #   (lldb) command script import /path/to/clandiag.py
 #----------------------------------------------------------------------
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import lldb
 import argparse
 import shlex
diff --git a/utils/hmaptool/hmaptool b/utils/hmaptool/hmaptool
index 2b1ca74..58baab2 100755
--- a/utils/hmaptool/hmaptool
+++ b/utils/hmaptool/hmaptool
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import json
 import optparse
diff --git a/utils/modfuzz.py b/utils/modfuzz.py
index 4dc25e84..61ca327 100644
--- a/utils/modfuzz.py
+++ b/utils/modfuzz.py
@@ -4,7 +4,7 @@
 #  1) Update the 'decls' list below with your fuzzing configuration.
 #  2) Run with the clang binary as the command-line argument.
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import random
 import subprocess
 import sys
diff --git a/utils/perf-training/perf-helper.py b/utils/perf-training/perf-helper.py
index 6337a9b..72b4b4e 100644
--- a/utils/perf-training/perf-helper.py
+++ b/utils/perf-training/perf-helper.py
@@ -7,7 +7,7 @@
 #
 #===------------------------------------------------------------------------===#
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 
 import sys
 import os
diff --git a/utils/token-delta.py b/utils/token-delta.py
index 9fc5646..62b4eb3 100755
--- a/utils/token-delta.py
+++ b/utils/token-delta.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-from __future__ import print_function
+from __future__ import absolute_import, division, print_function
 import os
 import re
 import subprocess