diff --git a/.ycm_extra_conf.py b/.ycm_extra_conf.py
index 26b584e90532f17ecc774fb02db08aaad5b9cb1e..46e1387ec9fb87cc4ef7fb12ab9a3d4779be5f55 100644
--- a/.ycm_extra_conf.py
+++ b/.ycm_extra_conf.py
@@ -2,7 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
 import json
 import os
 import shlex
diff --git a/accessible/mac/SelectorMapGen.py b/accessible/mac/SelectorMapGen.py
index 68074c8490b9f784cb31a5504390cbb96e82bc9e..1e406ade1f63a367041afaf830c7a15777715758 100755
--- a/accessible/mac/SelectorMapGen.py
+++ b/accessible/mac/SelectorMapGen.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import re
 
 
diff --git a/accessible/xpcom/AccEventGen.py b/accessible/xpcom/AccEventGen.py
index 311c53ff8f0a8e77b788a770c11e7c2c492b0d63..791b57827da6bc237f43b876465f2f5a3ed436fd 100755
--- a/accessible/xpcom/AccEventGen.py
+++ b/accessible/xpcom/AccEventGen.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import os
 
 import buildconfig
diff --git a/browser/app/macversion.py b/browser/app/macversion.py
index b6a21bc45743e7a4cebfed9abaa4216a20975c2d..878fb096403a4dcc06ad94a3e0704a525a2f4b61 100644
--- a/browser/app/macversion.py
+++ b/browser/app/macversion.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import io
 import re
 import sys
diff --git a/browser/app/winlauncher/freestanding/gen_ntdll_freestanding_lib.py b/browser/app/winlauncher/freestanding/gen_ntdll_freestanding_lib.py
index a69261cc3ae309a7725ce57050f13b5bd6421648..d9fe86d78e62bc00a4fa028aff8ee018a8266a5b 100644
--- a/browser/app/winlauncher/freestanding/gen_ntdll_freestanding_lib.py
+++ b/browser/app/winlauncher/freestanding/gen_ntdll_freestanding_lib.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import os
 import subprocess
 import tempfile
diff --git a/browser/components/migration/tests/marionette/test_refresh_firefox.py b/browser/components/migration/tests/marionette/test_refresh_firefox.py
index 4230175090976d4e095fd8400f46a17fe2be9d95..3ce4f52192ee482a0426b6700d35366dc0a3f59a 100644
--- a/browser/components/migration/tests/marionette/test_refresh_firefox.py
+++ b/browser/components/migration/tests/marionette/test_refresh_firefox.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import os
 import time
 
diff --git a/browser/components/search/test/marionette/test_engines_on_restart.py b/browser/components/search/test/marionette/test_engines_on_restart.py
index 496e2ed913cf4bdeca4215430c83707a59b1d3ff..d7a0634e75892a424fca574569573e7b18e58c98 100644
--- a/browser/components/search/test/marionette/test_engines_on_restart.py
+++ b/browser/components/search/test/marionette/test_engines_on_restart.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import textwrap
 
 from marionette_harness.marionette_test import MarionetteTestCase
diff --git a/browser/components/sessionstore/test/marionette/session_store_test_case.py b/browser/components/sessionstore/test/marionette/session_store_test_case.py
index 7aa2fab9820e20ac11aa188332f601bf6788e555..315adc5c4733a18ad4ce5a2d2a521f86f5b05415 100644
--- a/browser/components/sessionstore/test/marionette/session_store_test_case.py
+++ b/browser/components/sessionstore/test/marionette/session_store_test_case.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 from urllib.parse import quote
 
 from marionette_driver import Wait, errors
diff --git a/browser/components/sessionstore/test/marionette/test_restore_windows_after_close_last_tabs.py b/browser/components/sessionstore/test/marionette/test_restore_windows_after_close_last_tabs.py
index 0362070f06351f9133dc5e5f560f8a923b1face3..2022d8fb8741927d9d4e649cb81b2089781ce3ec 100644
--- a/browser/components/sessionstore/test/marionette/test_restore_windows_after_close_last_tabs.py
+++ b/browser/components/sessionstore/test/marionette/test_restore_windows_after_close_last_tabs.py
@@ -3,8 +3,6 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # add this directory to the path
-from __future__ import absolute_import
-
 import os
 import sys
 
diff --git a/browser/components/sessionstore/test/marionette/test_restore_windows_after_restart_and_quit.py b/browser/components/sessionstore/test/marionette/test_restore_windows_after_restart_and_quit.py
index b4e52db701db00afef2e8942ef513f2ba77c872b..be17f08472b7cfcd0876e4b614039d48c7c26e25 100644
--- a/browser/components/sessionstore/test/marionette/test_restore_windows_after_restart_and_quit.py
+++ b/browser/components/sessionstore/test/marionette/test_restore_windows_after_restart_and_quit.py
@@ -3,8 +3,6 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # add this directory to the path
-from __future__ import absolute_import
-
 import os
 import sys
 
diff --git a/browser/components/sessionstore/test/marionette/test_restore_windows_after_windows_shutdown.py b/browser/components/sessionstore/test/marionette/test_restore_windows_after_windows_shutdown.py
index 8f8e0d512cd6973b8aa11b96eddd65af3e555c91..21eec455bbd5d288f550369cf6725f2ae6199b27 100644
--- a/browser/components/sessionstore/test/marionette/test_restore_windows_after_windows_shutdown.py
+++ b/browser/components/sessionstore/test/marionette/test_restore_windows_after_windows_shutdown.py
@@ -3,8 +3,6 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # add this directory to the path
-from __future__ import absolute_import
-
 import os
 import sys
 
diff --git a/browser/components/shell/test/mac_desktop_image.py b/browser/components/shell/test/mac_desktop_image.py
index bdf2e842e639acdb454396ec73a1dd68846765ca..e3ccc77190b99be6a0cbbbbf539c06f7be3e319b 100755
--- a/browser/components/shell/test/mac_desktop_image.py
+++ b/browser/components/shell/test/mac_desktop_image.py
@@ -15,8 +15,6 @@ paths by default when using macOS's /usr/bin/python.
 Includes generous amount of logging to aid debugging for use in automated tests.
 """
 
-from __future__ import absolute_import, print_function
-
 import argparse
 import logging
 import os
diff --git a/browser/locales/filter.py b/browser/locales/filter.py
index 523dd50e29b37b7c32331919ee9fb4db18ad3e62..9155947e436a9102e91a467501b16ef2f0e2932a 100644
--- a/browser/locales/filter.py
+++ b/browser/locales/filter.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 
 def test(mod, path, entity=None):
     # ignore anything but Firefox
diff --git a/browser/locales/generate_ini.py b/browser/locales/generate_ini.py
index 6ae800f2764c85c537bd1374bca2862bcc42456a..ed936d8428a4b3a41a7d7a22a8d0a8efb6aa0b06 100644
--- a/browser/locales/generate_ini.py
+++ b/browser/locales/generate_ini.py
@@ -5,8 +5,6 @@
 # Generate updater.ini by doing some light substitution on the localized updater.ini input,
 # and appending the contents of updater_ini_append on Windows.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import codecs
 import re
 import shutil
diff --git a/build/RunCbindgen.py b/build/RunCbindgen.py
index a42a6a435c61c7afce23c5e073f555159884e9d1..f797cad385d7a634038ef49f5971f33bca37bfc8 100644
--- a/build/RunCbindgen.py
+++ b/build/RunCbindgen.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import os
 import subprocess
 
diff --git a/build/build-clang/build-clang.py b/build/build-clang/build-clang.py
index f186078c2a87843d49eaf961044b82ba01ec9089..5345b0a3cb207e52a1894d949a86b2e06c006f7d 100755
--- a/build/build-clang/build-clang.py
+++ b/build/build-clang/build-clang.py
@@ -4,8 +4,6 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Only necessary for flake8 to be happy...
-from __future__ import print_function
-
 import argparse
 import errno
 import fnmatch
diff --git a/build/checksums.py b/build/checksums.py
index 970e44d8032315aa5bbf87754d59607defe02f2a..1a393b4a6d977bd4ee87fbae76e700b22625fea3 100755
--- a/build/checksums.py
+++ b/build/checksums.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import with_statement
-
 import hashlib
 import logging
 import os
diff --git a/build/compare-mozconfig/compare-mozconfigs.py b/build/compare-mozconfig/compare-mozconfigs.py
index 7a46d61d7623a760622279e55c6e1d9bd9dd2685..210fd0568e5ac0a74b903747b854a0b25f697f7a 100644
--- a/build/compare-mozconfig/compare-mozconfigs.py
+++ b/build/compare-mozconfig/compare-mozconfigs.py
@@ -5,8 +5,6 @@
 
 # originally from https://hg.mozilla.org/build/tools/file/4ab9c1a4e05b/scripts/release/compare-mozconfigs.py  # NOQA: E501
 
-from __future__ import unicode_literals
-
 import difflib
 import logging
 import os
diff --git a/build/mach_initialize.py b/build/mach_initialize.py
index 8842bf92a4b8e2821e314628ec2f043b1d05c23e..d6f054a3d2120858158450bcd8c842e092f049e6 100644
--- a/build/mach_initialize.py
+++ b/build/mach_initialize.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import division, print_function, unicode_literals
-
 import math
 import os
 import shutil
diff --git a/build/upload_generated_sources.py b/build/upload_generated_sources.py
index abfef92e3cecf9dbdeee1dfae1b65ef6203530b2..accce4beb9ddc0ac7a009d5a4acf2d18555bde34 100644
--- a/build/upload_generated_sources.py
+++ b/build/upload_generated_sources.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import gzip
 import io
diff --git a/build/valgrind/mach_commands.py b/build/valgrind/mach_commands.py
index c3b8eab49db6920b5bf8c0eb2c1b5db1e1a0761e..2b6fa79ce07b52542a76c75b866cb25dc0601c0f 100644
--- a/build/valgrind/mach_commands.py
+++ b/build/valgrind/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals
-
 import json
 import logging
 import os
diff --git a/build/valgrind/output_handler.py b/build/valgrind/output_handler.py
index d3a84d3444341853b9c57b701dc1cab5406d98be..613f7f8c1fb8b1ea8ec67469d8fef68398e4fe6b 100644
--- a/build/valgrind/output_handler.py
+++ b/build/valgrind/output_handler.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function, unicode_literals
-
 import logging
 import re
 
diff --git a/build/variables.py b/build/variables.py
index ef2d6e6800f3c5a09585f52990c827c91c28e652..357e05c37bf56ad4859314956edb75b253732766 100644
--- a/build/variables.py
+++ b/build/variables.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function, unicode_literals
-
 import os
 import subprocess
 import sys
diff --git a/client.py b/client.py
index f092a6c92aace7b95d11eda297e1891febdcc07b..ea16f95627c94e3a78db88b6ba28d9865b468d71 100755
--- a/client.py
+++ b/client.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 HG_EXCLUSIONS = [".hg", ".hgignore", ".hgtags"]
 
 import glob
diff --git a/config/MozZipFile.py b/config/MozZipFile.py
index 2d3ff00ced320d6e0e9a17fc3bbea387cec14652..6e74bc1eba25d43ba33598a18502e69a8913f830 100644
--- a/config/MozZipFile.py
+++ b/config/MozZipFile.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 import time
 import zipfile
diff --git a/config/check_js_msg_encoding.py b/config/check_js_msg_encoding.py
index 56077ee2cf04245a43840609002ef7289de99345..6543405f904438e3af235095edbd8a9fe92c6813 100644
--- a/config/check_js_msg_encoding.py
+++ b/config/check_js_msg_encoding.py
@@ -9,8 +9,6 @@
 # JSErrorFormatString.format member should be in ASCII encoding.
 # ----------------------------------------------------------------------------
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 import sys
 
diff --git a/config/check_js_opcode.py b/config/check_js_opcode.py
index 2f24061beec6573faaf5778f310e2a3f2607008a..b6a6c1f1c834661270b600c62844bd92d2624467 100644
--- a/config/check_js_opcode.py
+++ b/config/check_js_opcode.py
@@ -7,8 +7,6 @@
 # This script checks bytecode documentation in js/src/vm/Opcodes.h
 # ----------------------------------------------------------------------------
 
-from __future__ import absolute_import, print_function
-
 import os
 import sys
 
diff --git a/config/check_macroassembler_style.py b/config/check_macroassembler_style.py
index bfe28c0d8d61006951b3bce6ad57558c678281d3..02a1cdfe321281801860a14def8474c871d34306 100644
--- a/config/check_macroassembler_style.py
+++ b/config/check_macroassembler_style.py
@@ -20,8 +20,6 @@
 # proper methods annotations.
 # ----------------------------------------------------------------------------
 
-from __future__ import absolute_import, print_function
-
 import difflib
 import os
 import re
diff --git a/config/check_source_count.py b/config/check_source_count.py
index c465f6749a207de71c5af2253bc2e1c4b9fc4744..a0a3f2c6d4f7c217dbd29ac3c418711637992710 100755
--- a/config/check_source_count.py
+++ b/config/check_source_count.py
@@ -9,8 +9,6 @@
 #   not, an error message is printed, quoting ERROR_LOCATION, which should
 #   probably be the filename and line number of the erroneous call to
 #   check_source_count.py.
-from __future__ import absolute_import, print_function
-
 import re
 import sys
 
diff --git a/config/check_spidermonkey_style.py b/config/check_spidermonkey_style.py
index 21d48fe223ece15903ed0d937883f1c74afa2ea2..3ad27cbe883258b0808af2281a79e7f1094163f6 100644
--- a/config/check_spidermonkey_style.py
+++ b/config/check_spidermonkey_style.py
@@ -35,8 +35,6 @@
 #   isolation, but don't try to do any order checking between such blocks.
 # ----------------------------------------------------------------------------
 
-from __future__ import absolute_import, print_function
-
 import difflib
 import os
 import re
diff --git a/config/check_vanilla_allocations.py b/config/check_vanilla_allocations.py
index 8fbef54a15846ce778c4adda61bab841434c42a7..76ba122c1177d49aaf53593f334665196b0b7728 100644
--- a/config/check_vanilla_allocations.py
+++ b/config/check_vanilla_allocations.py
@@ -38,8 +38,6 @@
 # mismatched alloc/free checking.
 # ----------------------------------------------------------------------------
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import re
 import subprocess
diff --git a/config/createprecomplete.py b/config/createprecomplete.py
index 7a442d65bf458e2c7f2ad6b70d8a1ff959b44b81..8c5fceefaa657eb65073037187d081df8ccaadc8 100644
--- a/config/createprecomplete.py
+++ b/config/createprecomplete.py
@@ -6,8 +6,6 @@
 # longer present in a complete update. The current working directory is used for
 # the location to enumerate and to create the precomplete file.
 
-from __future__ import absolute_import, unicode_literals
-
 import io
 import os
 
diff --git a/config/external/ffi/preprocess_libffi_asm.py b/config/external/ffi/preprocess_libffi_asm.py
index b4b6a8c5ae2296d5f7509d31fcba393bb84470f6..4808c3a7e4f27b94d49f132c20b370d78806503a 100644
--- a/config/external/ffi/preprocess_libffi_asm.py
+++ b/config/external/ffi/preprocess_libffi_asm.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distibuted with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import os
 import shlex
 import subprocess
diff --git a/config/external/ffi/subst_header.py b/config/external/ffi/subst_header.py
index 49c524eddc512afc5cb6ab31a40428590b70d131..e1448ff889a2cbf7b647f1b5040878b581a6424a 100644
--- a/config/external/ffi/subst_header.py
+++ b/config/external/ffi/subst_header.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distibuted with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import sys
 
 import buildconfig
diff --git a/config/external/icu/data/convert_icudata.py b/config/external/icu/data/convert_icudata.py
index b2ad5cee73757a2d90d33f7f58f870e64d81e38d..b09affb9d85fb05b6ddab0c85ddca1c080f8c213 100644
--- a/config/external/icu/data/convert_icudata.py
+++ b/config/external/icu/data/convert_icudata.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import os
 import subprocess
 
diff --git a/config/make-stl-wrappers.py b/config/make-stl-wrappers.py
index 0adbcb56d5a71598322f3313e82a6b1b8cb06670..2fc3de42528d68c17c6fec813b18b418cf6d12c4 100644
--- a/config/make-stl-wrappers.py
+++ b/config/make-stl-wrappers.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import, print_function
-
 import os
 import string
 
diff --git a/config/make-system-wrappers.py b/config/make-system-wrappers.py
index fc3fc6b29e6e798c11a597dbfdbd57fceb90439b..a4b3d51af1e8c10d51338639bc2c29713bf3858a 100644
--- a/config/make-system-wrappers.py
+++ b/config/make-system-wrappers.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import, print_function
-
 import os
 
 from mozbuild.util import FileAvoidWrite
diff --git a/config/make-windows-h-wrapper.py b/config/make-windows-h-wrapper.py
index a64c318993bccc0629d093139dc63741c369b8b9..91d335ba420c1b586487bfa491b56d3e6c9d276e 100644
--- a/config/make-windows-h-wrapper.py
+++ b/config/make-windows-h-wrapper.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import re
 import string
 import textwrap
diff --git a/config/mozunit/mozunit/__init__.py b/config/mozunit/mozunit/__init__.py
index c250385f9ebcd24aadd8d00e75bfa07d9c74c47b..51f02c874ee4b9f28f4ec6e59290ce84f292eb76 100644
--- a/config/mozunit/mozunit/__init__.py
+++ b/config/mozunit/mozunit/__init__.py
@@ -3,6 +3,4 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 from .mozunit import *
diff --git a/config/mozunit/mozunit/mozunit.py b/config/mozunit/mozunit/mozunit.py
index 66a126888dc907a0ea9c1090e8a2c94e5b2150e6..b295ad881f6aea98a1d57533a0c0f09d9c374860 100644
--- a/config/mozunit/mozunit/mozunit.py
+++ b/config/mozunit/mozunit/mozunit.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import inspect
 import io
 import os
diff --git a/config/mozunit/mozunit/pytest_plugin.py b/config/mozunit/mozunit/pytest_plugin.py
index 6f8aef4c1a418e7aee3f0253889b2183c5ce6b3f..e05fc579e428e520f2e7814ee0cb76023edec86a 100644
--- a/config/mozunit/mozunit/pytest_plugin.py
+++ b/config/mozunit/mozunit/pytest_plugin.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import pytest
 
 
diff --git a/config/mozunit/setup.py b/config/mozunit/setup.py
index b223c5116f9ca424a38d76980fb64862055072a1..c2771b9053b90d2d2c66ac0c35c37f175a9331b8 100644
--- a/config/mozunit/setup.py
+++ b/config/mozunit/setup.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 from setuptools import setup
 
 setup(
diff --git a/config/nsinstall.py b/config/nsinstall.py
index 01dd5988b5be52907476c5bb0ba22eaae5e2eef9..200a7ee19c918a007f7b1df63600147eb1e8d3bb 100644
--- a/config/nsinstall.py
+++ b/config/nsinstall.py
@@ -9,8 +9,6 @@
 # a full build environment set up.
 # The basic limitation is, it doesn't even try to link and ignores
 # all related options.
-from __future__ import absolute_import, print_function
-
 import os
 import os.path
 import shutil
diff --git a/config/printprereleasesuffix.py b/config/printprereleasesuffix.py
index 7d4182da1d2a52e6f9e694e4358cf83cc294ea4a..a3403e3d2aac3425c0adbdd899b7ce955e7afa06 100644
--- a/config/printprereleasesuffix.py
+++ b/config/printprereleasesuffix.py
@@ -9,8 +9,6 @@
 # 2.1a3pre > ""
 # 3.2b4    > " 3.2 Beta 4"
 # 3.2b4pre > ""
-from __future__ import absolute_import, print_function
-
 import re
 import sys
 
diff --git a/config/rebuild_check.py b/config/rebuild_check.py
index 537a411ec1c1c9c11578f771885b552465801fd9..a906fdc304f8b73d1e73d4a32227b43ed0f2bd6d 100644
--- a/config/rebuild_check.py
+++ b/config/rebuild_check.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import errno
 import os
 
diff --git a/config/run-and-prefix.py b/config/run-and-prefix.py
index d78fceb7ff3f94b261c09e4bbf1921b9cd330daf..af27e6743bca5c2ce0d69632d0547dfd63a1ba4b 100644
--- a/config/run-and-prefix.py
+++ b/config/run-and-prefix.py
@@ -6,8 +6,6 @@
 # This script runs a process and prefixes its output with.
 # Usage: run-and-prefix.py prefix command arg0 argv1...
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 import subprocess
 import sys
diff --git a/config/run_spidermonkey_checks.py b/config/run_spidermonkey_checks.py
index 0d927caee7fa6569b53649e46a88a03fcd6c716a..1d7ed98af31a98b43606a6639facd8d7e612aed2 100644
--- a/config/run_spidermonkey_checks.py
+++ b/config/run_spidermonkey_checks.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import subprocess
 import sys
 
diff --git a/config/tests/test_mozbuild_reading.py b/config/tests/test_mozbuild_reading.py
index 6048d416120af7cd09ab48f27588d9eee77e8680..17fecf1452f5b1522a91b139530c32bcbdb242de 100644
--- a/config/tests/test_mozbuild_reading.py
+++ b/config/tests/test_mozbuild_reading.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals
-
 import os
 import sys
 import unittest
diff --git a/config/tests/unit-mozunit.py b/config/tests/unit-mozunit.py
index 3023b6ed20442c33645d835cda1d80df65bd5ed6..6915d86718d69b874f45c12477cb61e23252f77d 100644
--- a/config/tests/unit-mozunit.py
+++ b/config/tests/unit-mozunit.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import os
 import unittest
 from tempfile import mkstemp
diff --git a/config/tests/unit-nsinstall.py b/config/tests/unit-nsinstall.py
index 3d893b7a94392948a24af7407f2ff72f5b6b2440..bfdf259e868cc231f29353811ffb26134b863fd5 100644
--- a/config/tests/unit-nsinstall.py
+++ b/config/tests/unit-nsinstall.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import
-
 import os
 import os.path
 import sys
diff --git a/config/tests/unit-printprereleasesuffix.py b/config/tests/unit-printprereleasesuffix.py
index bd0296cc9f778da4cc7f62f74e3b09dcc06b27b6..cebf48883ce864075a2fdcbee61a0b6f3ff8cf6e 100644
--- a/config/tests/unit-printprereleasesuffix.py
+++ b/config/tests/unit-printprereleasesuffix.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import
-
 import unittest
 
 import mozunit
diff --git a/config/tests/unitMozZipFile.py b/config/tests/unitMozZipFile.py
index 332f4942db6938f0fd06811d5dd169d08d219ab1..4965dc1df3e850a70fa673b9696dc7b141de7d5e 100644
--- a/config/tests/unitMozZipFile.py
+++ b/config/tests/unitMozZipFile.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import copy
 import os
 import random
diff --git a/configure.py b/configure.py
index 842cb08ad2089caf8a28704bc919bb96f1041faa..fb2a1ad72498d7c5048545701aee950b0cbb9d16 100644
--- a/configure.py
+++ b/configure.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import codecs
 import errno
 import io
@@ -250,7 +248,6 @@ def config_status(config, execute=True):
                 """\
             #!%(python)s
             # coding=utf-8
-            from __future__ import unicode_literals
         """
             )
             % {"python": config["PYTHON3"]}
diff --git a/devtools/client/netmonitor/test/file_ws_backend_wsh.py b/devtools/client/netmonitor/test/file_ws_backend_wsh.py
index 73abb6debe1817ad867e35bd575b048f4898e6e2..fe74ae2065a895da1aa5f7e5018566dd51cca756 100644
--- a/devtools/client/netmonitor/test/file_ws_backend_wsh.py
+++ b/devtools/client/netmonitor/test/file_ws_backend_wsh.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import
-
 from mod_pywebsocket import msgutil
 
 
diff --git a/devtools/client/shared/remote-debugging/adb/xpcshell/adb.py b/devtools/client/shared/remote-debugging/adb/xpcshell/adb.py
index be21cf5bfeeca13a4fa04e8e0efb80f7f036c7a4..4b720a1f862f19adb0b0b7d2da70848877a16422 100644
--- a/devtools/client/shared/remote-debugging/adb/xpcshell/adb.py
+++ b/devtools/client/shared/remote-debugging/adb/xpcshell/adb.py
@@ -7,8 +7,6 @@
 A fake ADB binary
 """
 
-from __future__ import absolute_import
-
 import os
 import socketserver
 import sys
diff --git a/devtools/shared/commands/resource/tests/websocket_backend_wsh.py b/devtools/shared/commands/resource/tests/websocket_backend_wsh.py
index 564715114b700fe044324d72fd2018c34c275af1..170f15fe6c9c52d3aff557976dcde9bc7c1d3cde 100644
--- a/devtools/shared/commands/resource/tests/websocket_backend_wsh.py
+++ b/devtools/shared/commands/resource/tests/websocket_backend_wsh.py
@@ -1,4 +1,3 @@
-from __future__ import absolute_import
 from mod_pywebsocket import msgutil
 
 
diff --git a/devtools/shared/css/generated/mach_commands.py b/devtools/shared/css/generated/mach_commands.py
index db9d2c9e84a0d131a04107d409aab215ee8729f2..7a41ea49b25f4e742043522574e987166844ca62 100644
--- a/devtools/shared/css/generated/mach_commands.py
+++ b/devtools/shared/css/generated/mach_commands.py
@@ -8,7 +8,6 @@ script that uses InspectorUtils to query the CSS properties used by the browser.
 This information is used to generate the properties-db.js file.
 """
 
-from __future__ import absolute_import, print_function
 import json
 import logging
 import os
diff --git a/devtools/shared/webconsole/GenerateDataFromWebIdls.py b/devtools/shared/webconsole/GenerateDataFromWebIdls.py
index b9006a89829fce6c1639002996357a38ed22b390..77940cae74e59fc734e90ba42a6f476c8dcc3b04 100644
--- a/devtools/shared/webconsole/GenerateDataFromWebIdls.py
+++ b/devtools/shared/webconsole/GenerateDataFromWebIdls.py
@@ -11,7 +11,6 @@ Run this script via
 with a mozconfig that references a built non-artifact build.
 """
 
-from __future__ import absolute_import, unicode_literals, print_function
 from os import path, remove, system
 import json
 import WebIDL
diff --git a/devtools/shared/webconsole/GenerateReservedWordsJS.py b/devtools/shared/webconsole/GenerateReservedWordsJS.py
index 4ecc35feff8162db9929b1ba76fff0856b201f01..cd8a47b648dca118f900ddc4452c56810d38f2d5 100644
--- a/devtools/shared/webconsole/GenerateReservedWordsJS.py
+++ b/devtools/shared/webconsole/GenerateReservedWordsJS.py
@@ -2,7 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
 import re
 import sys
 
diff --git a/docs/conf.py b/docs/conf.py
index 32fac28412858b84b2d9e22680bbffd48f3f9135..eee8ca316ee8eadf0f0b69d6f88f027b66db208e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals
-
 import os
 import sys
 
diff --git a/dom/base/gen-usecounters.py b/dom/base/gen-usecounters.py
index 6b38152f1f0db543c96abc5e4e809f96f92b868f..bd0dba7b0bbcae90f912c62daf4dddc62fd233b0 100755
--- a/dom/base/gen-usecounters.py
+++ b/dom/base/gen-usecounters.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import os
 import sys
 
diff --git a/dom/bindings/mach_commands.py b/dom/bindings/mach_commands.py
index c76400c21415ad8e440281ac830b99cc70222ab7..b9bb17bf7cdcc94deacadf2be4d321ee1c33e5e4 100644
--- a/dom/bindings/mach_commands.py
+++ b/dom/bindings/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals
-
 import os
 import sys
 
diff --git a/dom/bindings/mozwebidlcodegen/__init__.py b/dom/bindings/mozwebidlcodegen/__init__.py
index 5078ee38a6bf496c5e60b247884f9cf0c300f2e3..5d54c2bae27378b0e70aa6ef5bf4e544abfce075 100644
--- a/dom/bindings/mozwebidlcodegen/__init__.py
+++ b/dom/bindings/mozwebidlcodegen/__init__.py
@@ -5,8 +5,6 @@
 # This module contains code for managing WebIDL files and bindings for
 # the build system.
 
-from __future__ import print_function, unicode_literals
-
 import errno
 import hashlib
 import io
diff --git a/dom/bindings/mozwebidlcodegen/test/test_mozwebidlcodegen.py b/dom/bindings/mozwebidlcodegen/test/test_mozwebidlcodegen.py
index 25f5a4f059d69ad49517d8f7bcd60e379a4cf73f..44442f78fda2b7bb0cf3e70b7e7cf2bc5f279e1a 100644
--- a/dom/bindings/mozwebidlcodegen/test/test_mozwebidlcodegen.py
+++ b/dom/bindings/mozwebidlcodegen/test/test_mozwebidlcodegen.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import unicode_literals
-
 import imp
 import io
 import json
diff --git a/dom/bindings/parser/WebIDL.py b/dom/bindings/parser/WebIDL.py
index 70b23611381283111aa07df0e9b89c7fbce0bc6f..6a467c0fa0dd7c7c1d78eb7a9ced42c396552398 100644
--- a/dom/bindings/parser/WebIDL.py
+++ b/dom/bindings/parser/WebIDL.py
@@ -4,8 +4,6 @@
 
 """ A WebIDL parser. """
 
-from __future__ import print_function
-
 import copy
 import math
 import os
diff --git a/dom/bindings/parser/runtests.py b/dom/bindings/parser/runtests.py
index abf16a7b190c907198ade84d999005f3ec317ff8..95e540bd77ff1929ca46f37d222bdbaa8eecc90f 100644
--- a/dom/bindings/parser/runtests.py
+++ b/dom/bindings/parser/runtests.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import print_function
-
 import os
 import sys
 import glob
diff --git a/extensions/pref/autoconfig/test/marionette/test_autoconfig.py b/extensions/pref/autoconfig/test/marionette/test_autoconfig.py
index 74ee4059a9e5559ebebe8cb09dccd12ee0ff67a2..0cdc0feede44deb30da897ca6b2ab968b9ee9686 100644
--- a/extensions/pref/autoconfig/test/marionette/test_autoconfig.py
+++ b/extensions/pref/autoconfig/test/marionette/test_autoconfig.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import os
 import shutil
 
diff --git a/gfx/layers/d3d11/genshaders.py b/gfx/layers/d3d11/genshaders.py
index 49fed0500470db9911febddc51384cb219d75f2e..b9701978d5c26a962e6cd2d5bbeb0348138dd447 100644
--- a/gfx/layers/d3d11/genshaders.py
+++ b/gfx/layers/d3d11/genshaders.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 import argparse
 import codecs
 import locale
diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py
index 7c98b986573689f3eaf5ec0f2aee6153d726c2d7..20e29297331b8a268732a3af8255af1066aa5be8 100755
--- a/gfx/skia/generate_mozbuild.py
+++ b/gfx/skia/generate_mozbuild.py
@@ -1,6 +1,5 @@
 #!/usr/bin/env python
 
-from __future__ import print_function
 import locale
 import subprocess
 from collections import defaultdict
diff --git a/gfx/thebes/gencjkcisvs.py b/gfx/thebes/gencjkcisvs.py
index c61da73c42609ac903d4aea9bd75c89436c17201..1797f2be6c95868acd98132a9f1b0ef4eb02c7e9 100644
--- a/gfx/thebes/gencjkcisvs.py
+++ b/gfx/thebes/gencjkcisvs.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import os.path
 import re
 import sys
diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
index 0158f37295d29317ff170928f5ae68d4efea5561..0ebbab4938b3d7b5dcd39d412c057dd45f2da076 100644
--- a/intl/icu_sources_data.py
+++ b/intl/icu_sources_data.py
@@ -10,8 +10,6 @@
 # This script expects to be run from `update-icu.sh` after the in-tree
 # copy of ICU has been updated.
 
-from __future__ import absolute_import, print_function
-
 import glob
 import multiprocessing
 import os
diff --git a/intl/unicharutil/util/base_chars.py b/intl/unicharutil/util/base_chars.py
index 7133cf25b52feae03ee0be05333fb8a2af66235b..91d3ba335255048bf45dfdc8e44b045d8561eb2f 100644
--- a/intl/unicharutil/util/base_chars.py
+++ b/intl/unicharutil/util/base_chars.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import re
 from collections import namedtuple
 from unicodedata import category, combining, normalize
diff --git a/ipc/ipdl/ipdl.py b/ipc/ipdl/ipdl.py
index 365f950c568a48acb7d957a91f9a18509dbfbb02..1770416aaac960f5a3b0308173755d3f66aa1c0d 100644
--- a/ipc/ipdl/ipdl.py
+++ b/ipc/ipdl/ipdl.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import print_function
-
 import optparse
 import os
 import sys
diff --git a/ipc/ipdl/ipdl/__init__.py b/ipc/ipdl/ipdl/__init__.py
index a85a12e14a99ad1d9eba3e450359d986cf05c165..50ceb4f95303ca329604d0af12584b29b9f09731 100644
--- a/ipc/ipdl/ipdl/__init__.py
+++ b/ipc/ipdl/ipdl/__init__.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 __all__ = [
     "gencxx",
     "genipdl",
diff --git a/ipc/ipdl/ipdl/checker.py b/ipc/ipdl/ipdl/checker.py
index eb969b4d60bc0257669f461bdc5cef77b745cbbe..c93dc3e0e837ee74809408135c2dd5ecca96a0e3 100644
--- a/ipc/ipdl/ipdl/checker.py
+++ b/ipc/ipdl/ipdl/checker.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import sys
 from ipdl.ast import Visitor, ASYNC
 
diff --git a/ipc/ipdl/ipdl/type.py b/ipc/ipdl/ipdl/type.py
index eb71cae5c651504181fca4404772c021af52746b..f8689dee60d2d1f1efe23356ea5b7f3a3caa7db6 100644
--- a/ipc/ipdl/ipdl/type.py
+++ b/ipc/ipdl/ipdl/type.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import os
 import sys
 
diff --git a/ipc/ipdl/msgtype-components b/ipc/ipdl/msgtype-components
index 35229182a22c80b5df1a4dae90a72e580a34889e..4a01d3a71cc38727fcb65ff6aa222506efb54707 100644
--- a/ipc/ipdl/msgtype-components
+++ b/ipc/ipdl/msgtype-components
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import sys
 
 msgid = int(sys.argv[1])
diff --git a/ipc/ipdl/test/cxx/genIPDLUnitTests.py b/ipc/ipdl/test/cxx/genIPDLUnitTests.py
index 3636ec041683d124a718e2a1a541a656ff232b2a..160b90a031c39a76d471146fff2ca83e86be8bb8 100644
--- a/ipc/ipdl/test/cxx/genIPDLUnitTests.py
+++ b/ipc/ipdl/test/cxx/genIPDLUnitTests.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function, unicode_literals
-
 import string
 import sys
 
diff --git a/js/src/builtin/embedjs.py b/js/src/builtin/embedjs.py
index 06510fe700527ed74367f4dbb67212451b8c0368..a82aaab951e8b112abb8d6806894159166923f4f 100644
--- a/js/src/builtin/embedjs.py
+++ b/js/src/builtin/embedjs.py
@@ -36,8 +36,6 @@
 #
 # It uses the C preprocessor to process its inputs.
 
-from __future__ import with_statement
-
 import errno
 import os
 import re
diff --git a/js/src/builtin/intl/make_intl_data.py b/js/src/builtin/intl/make_intl_data.py
index a65764e0141e22177d1a33800d7ca08132f3f43a..1f9d7ff30e472eca24dce88d4ac2ad30b4a7aebe 100755
--- a/js/src/builtin/intl/make_intl_data.py
+++ b/js/src/builtin/intl/make_intl_data.py
@@ -41,8 +41,6 @@
     simple digit mappings and verifies that it's in sync with ICU/CLDR.
 """
 
-from __future__ import print_function
-
 import io
 import json
 import os
diff --git a/js/src/devtools/rootAnalysis/explain.py b/js/src/devtools/rootAnalysis/explain.py
index 09c1c64f5fd18fe0cd5e9599983f79368f8a1787..becfcf17a0935e47eecb3cc2eb81011615f36021 100755
--- a/js/src/devtools/rootAnalysis/explain.py
+++ b/js/src/devtools/rootAnalysis/explain.py
@@ -4,8 +4,6 @@
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
-from __future__ import print_function
-
 import argparse
 import re
 from collections import defaultdict
diff --git a/js/src/devtools/rootAnalysis/mach_commands.py b/js/src/devtools/rootAnalysis/mach_commands.py
index a52ab2b3d4c0e8d50b22ef3bd805439b173531fa..2127282a916fbab86de40874b3ea783b20be982a 100644
--- a/js/src/devtools/rootAnalysis/mach_commands.py
+++ b/js/src/devtools/rootAnalysis/mach_commands.py
@@ -5,8 +5,6 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import json
 import os
diff --git a/js/src/devtools/rootAnalysis/run-test.py b/js/src/devtools/rootAnalysis/run-test.py
index 3eef3844e84466d6b34a2c13cd1e42c7f1f2590c..2768f3be1b707f664da031e4dc17553580f48269 100755
--- a/js/src/devtools/rootAnalysis/run-test.py
+++ b/js/src/devtools/rootAnalysis/run-test.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import argparse
 import os
 import site
diff --git a/js/src/frontend/align_stack_comment.py b/js/src/frontend/align_stack_comment.py
index 1c439df97348170d5c80a693afc38165c9ca9d1b..28d5d8cf7fe17761fe35e3421364de5420848a66 100755
--- a/js/src/frontend/align_stack_comment.py
+++ b/js/src/frontend/align_stack_comment.py
@@ -13,8 +13,6 @@
       //        [stack] VAL1 VAL2 VAL3
 """
 
-from __future__ import print_function
-
 import re
 import sys
 
diff --git a/js/src/jit-test/jit_test.py b/js/src/jit-test/jit_test.py
index e21ff3517f3b0936017b45449bb48893c25d7734..32765a20dd75d858cca29e5eed4ad45ae6309834 100755
--- a/js/src/jit-test/jit_test.py
+++ b/js/src/jit-test/jit_test.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function, unicode_literals
-
 import math
 import os
 import platform
diff --git a/js/src/tests/compare_bench.py b/js/src/tests/compare_bench.py
index daa28d3a7de2b5096b007a5a85833358c811742d..be8721a2fa5c8287c30aff820925fda4c0d6efb7 100644
--- a/js/src/tests/compare_bench.py
+++ b/js/src/tests/compare_bench.py
@@ -2,8 +2,6 @@
 """usage: %progname candidate_path baseline_path
 """
 
-from __future__ import print_function
-
 import json
 import optparse
 from operator import itemgetter
diff --git a/js/src/tests/jstests.py b/js/src/tests/jstests.py
index c22937c2234fe9173fede0ba7fec7910b75a449a..cc11c3dfc294345645eeaeb0b299a4beace42f26 100755
--- a/js/src/tests/jstests.py
+++ b/js/src/tests/jstests.py
@@ -9,8 +9,6 @@ The JS Shell Test Harness.
 See the adjacent README.txt for more details.
 """
 
-from __future__ import print_function
-
 import math
 import os
 import platform
diff --git a/js/src/tests/lib/jittests.py b/js/src/tests/lib/jittests.py
index 233711019a8e3f2d08415c3a7865f0a6886ca28a..de92067c3acbcda3079d0f0b19a0e9428dd1ea9f 100755
--- a/js/src/tests/lib/jittests.py
+++ b/js/src/tests/lib/jittests.py
@@ -6,8 +6,6 @@
 
 # jit_test.py -- Python harness for JavaScript trace tests.
 
-from __future__ import print_function
-
 import os
 import re
 import sys
diff --git a/js/src/tests/lib/manifest.py b/js/src/tests/lib/manifest.py
index 91fdd7b21c9f780dad07e03f4c518d504898f978..26c6821ed9db4e4dba7458b6306beae78770707d 100644
--- a/js/src/tests/lib/manifest.py
+++ b/js/src/tests/lib/manifest.py
@@ -2,8 +2,6 @@
 #
 # This includes classes for representing and parsing JS manifests.
 
-from __future__ import print_function
-
 import io
 import os
 import posixpath
diff --git a/js/src/tests/lib/results.py b/js/src/tests/lib/results.py
index f9c7746c01b5a95544f47df9a2793276e356b635..f902060354273cf764ea41748145c780674ba153 100644
--- a/js/src/tests/lib/results.py
+++ b/js/src/tests/lib/results.py
@@ -1,5 +1,3 @@
-from __future__ import print_function
-
 import json
 import pipes
 import re
diff --git a/js/src/tests/lib/structuredlog.py b/js/src/tests/lib/structuredlog.py
index 3196cc139a28b70513c04b822af8ee89728bd0a4..2f2d317d0208fd9f0952e5e568e3d5b3dac3a9ed 100644
--- a/js/src/tests/lib/structuredlog.py
+++ b/js/src/tests/lib/structuredlog.py
@@ -1,8 +1,6 @@
 # produce mozlog-compatible log messages, following the spec at
 # https://mozbase.readthedocs.io/en/latest/mozlog.html
 
-from __future__ import print_function
-
 import json
 import os
 from time import time
diff --git a/js/src/tests/lib/tasks_adb_remote.py b/js/src/tests/lib/tasks_adb_remote.py
index 767b36461ca60476d6d8f38c527196bbdef2f4d4..e03d253873c8f0bcea8c2b81b99fb38842c470f0 100644
--- a/js/src/tests/lib/tasks_adb_remote.py
+++ b/js/src/tests/lib/tasks_adb_remote.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-from __future__ import division, print_function, unicode_literals
-
 import os
 import posixpath
 import sys
diff --git a/js/src/tests/lib/tasks_win.py b/js/src/tests/lib/tasks_win.py
index 0f3143f11707fe851f63d31343dcc240105c0ffc..3a5b20298f3dcef4f6593f9a63680349deeb2da5 100644
--- a/js/src/tests/lib/tasks_win.py
+++ b/js/src/tests/lib/tasks_win.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-from __future__ import division, print_function, unicode_literals
-
 import subprocess
 import sys
 from datetime import datetime, timedelta
diff --git a/js/src/tests/lib/tempfile.py b/js/src/tests/lib/tempfile.py
index bde9fbc5b520f8d63b62a50276862e4faa2fa881..604864dce10b289cecfb5282b7ea122de56ee639 100644
--- a/js/src/tests/lib/tempfile.py
+++ b/js/src/tests/lib/tempfile.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 try:
     # Python 3.2
     from tempfile import TemporaryDirectory
diff --git a/js/src/tests/non262/String/make-normalize-generateddata-input.py b/js/src/tests/non262/String/make-normalize-generateddata-input.py
index be1f71d2d96c1bdbc09c7288fec6018e9282c265..5c3d2d3e442cde84e5b13c3aa6c3973eb58feddf 100644
--- a/js/src/tests/non262/String/make-normalize-generateddata-input.py
+++ b/js/src/tests/non262/String/make-normalize-generateddata-input.py
@@ -7,8 +7,6 @@
     to js/src/tests/non262/String/normalize-generateddata-input.js
 """
 
-from __future__ import print_function
-
 import re
 import sys
 
diff --git a/js/src/tests/parsemark.py b/js/src/tests/parsemark.py
index 8f26f7160d7a450f1b37ea06f60a6b554ed04779..199747e7dd5cd59521ab4903394cacd6cde2b2a4 100644
--- a/js/src/tests/parsemark.py
+++ b/js/src/tests/parsemark.py
@@ -21,8 +21,6 @@ Arguments:
   dirpath               directory filled with parsilicious js files
 """
 
-from __future__ import print_function
-
 import json
 import math
 import optparse
diff --git a/js/src/tests/test262-export.py b/js/src/tests/test262-export.py
index 89539b680ad4fe9450cad43bc35a151fc7b131d1..ebcb388a29beb016e2eeeb6153ea46241a25110c 100755
--- a/js/src/tests/test262-export.py
+++ b/js/src/tests/test262-export.py
@@ -5,8 +5,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import os
 import re
 import shutil
diff --git a/js/src/tests/test262-update.py b/js/src/tests/test262-update.py
index 739e7fc43fa4f6b7c4249d832186c9783552eb13..d2d67763d2e9493508517c1639000fd11670f5a3 100755
--- a/js/src/tests/test262-update.py
+++ b/js/src/tests/test262-update.py
@@ -5,8 +5,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import contextlib
 import io
 import os
diff --git a/js/src/util/make_unicode.py b/js/src/util/make_unicode.py
index cf3899c76827fac66b5e77557db2957f5c7168bb..617268fa9cb789ed749dee93d5ad1d8c8204bb05 100755
--- a/js/src/util/make_unicode.py
+++ b/js/src/util/make_unicode.py
@@ -19,8 +19,6 @@
 #    You should have received a copy of the GNU General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from __future__ import print_function, unicode_literals
-
 import csv
 import io
 import os
diff --git a/js/xpconnect/loader/script_cache.py b/js/xpconnect/loader/script_cache.py
index 5f84b16dd7ac6ca8b751404532dc3b2bb1f4674c..bd3a746fcf7491568414ce3fa38d1618616b703a 100755
--- a/js/xpconnect/loader/script_cache.py
+++ b/js/xpconnect/loader/script_cache.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import io
 import os
 import struct
diff --git a/layout/base/tests/marionette/selection.py b/layout/base/tests/marionette/selection.py
index 40e4e052dfcfa03574c7b9deafa1cc82ab2fb28f..6cfe155927d6a23dedbc57dcbdf278b62824dfb8 100644
--- a/layout/base/tests/marionette/selection.py
+++ b/layout/base/tests/marionette/selection.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 from marionette_driver.marionette import Actions, errors
 
 
diff --git a/layout/reftests/border-image/gen-refs.py b/layout/reftests/border-image/gen-refs.py
index 5dfa38b38bed1b346a8d3bb0f1ccfe0efc67d618..029d46f2a899300b2a00869de6d2e66dc67e0ff1 100644
--- a/layout/reftests/border-image/gen-refs.py
+++ b/layout/reftests/border-image/gen-refs.py
@@ -27,8 +27,6 @@
 # Assumes there is no intrinsic size for the border-image-source, so uses
 # the size of the border image area.
 
-from __future__ import print_function, absolute_import
-
 import sys
 
 
diff --git a/layout/reftests/fonts/gsubtest/makegsubfonts.py b/layout/reftests/fonts/gsubtest/makegsubfonts.py
index 66ce3c3247048343ad922f347d05c493816d33cb..73d022e6be2b1f1225cbaaef30e8178883c909a7 100644
--- a/layout/reftests/fonts/gsubtest/makegsubfonts.py
+++ b/layout/reftests/fonts/gsubtest/makegsubfonts.py
@@ -1,5 +1,3 @@
-from __future__ import print_function, absolute_import
-
 import os
 import textwrap
 from xml.etree import ElementTree
diff --git a/layout/reftests/fonts/mark-generate.py b/layout/reftests/fonts/mark-generate.py
index 11bc7ecca72daaf142a095f9dd03a5470d1222e1..01e2d005480a4de80113c25dbf1c8ec253a60d55 100755
--- a/layout/reftests/fonts/mark-generate.py
+++ b/layout/reftests/fonts/mark-generate.py
@@ -15,8 +15,6 @@
 # To install what you need, on Ubuntu,
 #   sudo apt-get install python-fontforge
 
-from __future__ import print_function, absolute_import
-
 import fontforge
 
 # generate a set of fonts, each with our special glyph at one codepoint,
diff --git a/layout/reftests/fonts/math/generate.py b/layout/reftests/fonts/math/generate.py
index 54e1f05f501af9ef2af1acc205d0f942fff30d9b..9981208c300efa1dbed7b7d55e2c395bb1a08415 100644
--- a/layout/reftests/fonts/math/generate.py
+++ b/layout/reftests/fonts/math/generate.py
@@ -15,7 +15,6 @@
 # To install what you need, on Ubuntu,
 #   sudo apt-get install python-fontforge
 
-from __future__ import print_function, absolute_import
 import fontforge
 
 em = 1000
diff --git a/layout/style/test/gen-css-properties.py b/layout/style/test/gen-css-properties.py
index ec91b695cdc0ab1ca047f6fe54ec9f785a4093a1..1d6fad226db39c6e6d1dd0411363d272c7e13807 100644
--- a/layout/style/test/gen-css-properties.py
+++ b/layout/style/test/gen-css-properties.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import os
 import sys
 import subprocess
diff --git a/layout/tools/reftest/mach_commands.py b/layout/tools/reftest/mach_commands.py
index 96595c3fe37ab08279b19679a02ccf83ccbfcfae..bd99ac439365c557de788b9c9e0212384990f6d2 100644
--- a/layout/tools/reftest/mach_commands.py
+++ b/layout/tools/reftest/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 import re
 import sys
diff --git a/layout/tools/reftest/mach_test_package_commands.py b/layout/tools/reftest/mach_test_package_commands.py
index 56599647c5e751dc26336550e4151c59b65b678c..4effd4cfda2385b557b4a16c9d0481104ea5ab41 100644
--- a/layout/tools/reftest/mach_test_package_commands.py
+++ b/layout/tools/reftest/mach_test_package_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 import sys
 from argparse import Namespace
diff --git a/layout/tools/reftest/output.py b/layout/tools/reftest/output.py
index b181b3fb54472bd79f7041505542d2b339173b7b..fe435eb545925a2ae4d0d3a8f2e33665f6fa248d 100644
--- a/layout/tools/reftest/output.py
+++ b/layout/tools/reftest/output.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import json
 import threading
 from collections import defaultdict
diff --git a/layout/tools/reftest/reftest/__init__.py b/layout/tools/reftest/reftest/__init__.py
index e3ed9b53e13d444e51a0f2e4eb7fa5515cfbe5e7..f82a07ec44cd6d35bc9c125ac051fb8f31c34144 100644
--- a/layout/tools/reftest/reftest/__init__.py
+++ b/layout/tools/reftest/reftest/__init__.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import io
 import os
 import re
diff --git a/layout/tools/reftest/reftestcommandline.py b/layout/tools/reftest/reftestcommandline.py
index 70958b2dc9c61ba839c267ffac44447ca9325606..e2f0baff8c45998ecf21673095c7d33ff0fe0240 100644
--- a/layout/tools/reftest/reftestcommandline.py
+++ b/layout/tools/reftest/reftestcommandline.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import argparse
 import os
 import sys
diff --git a/layout/tools/reftest/remotereftest.py b/layout/tools/reftest/remotereftest.py
index 8b22fb2c78843523534d59489c0d82083441e475..8d5e3fb44f0072861edfa1c0c9d8026c6cbc0870 100644
--- a/layout/tools/reftest/remotereftest.py
+++ b/layout/tools/reftest/remotereftest.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import datetime
 import os
 import posixpath
diff --git a/layout/tools/reftest/runreftest.py b/layout/tools/reftest/runreftest.py
index 052f037693f52f917144832af505158b08a7988e..60806c202fc7e53ac2aff69806647df2169ef90e 100644
--- a/layout/tools/reftest/runreftest.py
+++ b/layout/tools/reftest/runreftest.py
@@ -5,8 +5,6 @@
 """
 Runs the reftest test harness.
 """
-from __future__ import absolute_import, print_function
-
 import json
 import multiprocessing
 import os
diff --git a/layout/tools/reftest/selftest/conftest.py b/layout/tools/reftest/selftest/conftest.py
index 0beeb096f1da2f32737075b982d5670051c45861..1255caf8a7fee8dec4faa3dfde2e8e4911a85fed 100644
--- a/layout/tools/reftest/selftest/conftest.py
+++ b/layout/tools/reftest/selftest/conftest.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import json
 import os
 from argparse import Namespace
diff --git a/layout/tools/reftest/selftest/test_python_manifest_parser.py b/layout/tools/reftest/selftest/test_python_manifest_parser.py
index 339aadfeb317c5e3f0e092fd4a2a78b9b8a869b5..5ec9ce324cb602df2d715ee58b3f9512f7dbb49e 100644
--- a/layout/tools/reftest/selftest/test_python_manifest_parser.py
+++ b/layout/tools/reftest/selftest/test_python_manifest_parser.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import mozunit
 import pytest
 
diff --git a/layout/tools/reftest/selftest/test_reftest_manifest_parser.py b/layout/tools/reftest/selftest/test_reftest_manifest_parser.py
index c1b715cb288fe67936b5b5eff12fe8987c371dad..009aa17a7fbb6a59db550b3be6c381d6680c7394 100644
--- a/layout/tools/reftest/selftest/test_reftest_manifest_parser.py
+++ b/layout/tools/reftest/selftest/test_reftest_manifest_parser.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import mozunit
 import pytest
 
diff --git a/layout/tools/reftest/selftest/test_reftest_output.py b/layout/tools/reftest/selftest/test_reftest_output.py
index 1ca48d42cdb5426a837fe677d45e69f257c18ee9..ef343f754d7421fae3851c10a6a6009d0b942377 100644
--- a/layout/tools/reftest/selftest/test_reftest_output.py
+++ b/layout/tools/reftest/selftest/test_reftest_output.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import os
 
 try:
diff --git a/mach b/mach
index 7e00054bf5a15e26a6d7e2f2b302269f83fa881b..5811a8fd6e6c9d624e9d48b3bb2cfacc0b25c0dd 100755
--- a/mach
+++ b/mach
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 import platform
 import sys
diff --git a/memory/replace/dmd/dmd.py b/memory/replace/dmd/dmd.py
index 9e39f20b55c95b43f272d4a95eb0a1af54f1eed4..2fa7fccbb1a86c05b572db4018a3777f42dba5da 100755
--- a/memory/replace/dmd/dmd.py
+++ b/memory/replace/dmd/dmd.py
@@ -6,8 +6,6 @@
 
 """This script analyzes a JSON file emitted by DMD."""
 
-from __future__ import absolute_import, division, print_function
-
 import argparse
 import collections
 import gzip
@@ -639,7 +637,7 @@ def printDigest(args, digest):
                 cond = is_match
             elif arg.startswith("!"):
                 key = arg[1:]
-                cond = lambda rec, key: not is_match(rec, key)  # noqa: E731
+                def cond(rec, key): return not is_match(rec, key)  # noqa: E731
             else:
                 key = arg
                 cond = is_match
diff --git a/memory/replace/dmd/test/scan-test.py b/memory/replace/dmd/test/scan-test.py
index f5d6fb4567fbf7e4fa56105a7951e3a63801d129..c282b026934e384fb8018ae70851d1a968b489f2 100644
--- a/memory/replace/dmd/test/scan-test.py
+++ b/memory/replace/dmd/test/scan-test.py
@@ -6,8 +6,6 @@
 
 """Testing for the JSON file emitted by DMD heap scan mode when running SmokeDMD."""
 
-from __future__ import absolute_import, division, print_function
-
 import argparse
 import gzip
 import json
diff --git a/memory/replace/logalloc/replay/logalloc_munge.py b/memory/replace/logalloc/replay/logalloc_munge.py
index 4d40670fc86881d6580cfb23989f83bff9db2cca..52d0032463a8e259ee9011b7efd7429f9bf4abe7 100644
--- a/memory/replace/logalloc/replay/logalloc_munge.py
+++ b/memory/replace/logalloc/replay/logalloc_munge.py
@@ -18,8 +18,6 @@ The resulting output is:
 See README for more details.
 """
 
-from __future__ import absolute_import, print_function
-
 import sys
 from collections import defaultdict, deque
 
diff --git a/mobile/android/gen_from_jinja.py b/mobile/android/gen_from_jinja.py
index 1f3bbc122c82e37eb4995371da316637f00c2e80..6c625226ee314dec342752a227cddec0c33081c1 100644
--- a/mobile/android/gen_from_jinja.py
+++ b/mobile/android/gen_from_jinja.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import os
 
 from jinja2 import Environment, FileSystemLoader, StrictUndefined
diff --git a/mobile/android/gradle.py b/mobile/android/gradle.py
index d9b355d987f87dd4b6b10052fee6a2984839c1f7..9f310ddb7bd8c9b7fdcb146782cddb39548dd872 100644
--- a/mobile/android/gradle.py
+++ b/mobile/android/gradle.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import os
 import subprocess
 import sys
diff --git a/mobile/android/locales/filter.py b/mobile/android/locales/filter.py
index 6728f362eb63c9e1dfff32432b665d0ff3f5b57c..94a14b95c96e24a09d4d83d4c5c7325e7883ed9e 100644
--- a/mobile/android/locales/filter.py
+++ b/mobile/android/locales/filter.py
@@ -7,8 +7,6 @@ reported and l10n-merged.
 This needs to stay in sync with the copy in mobile/locales.
 """
 
-from __future__ import absolute_import
-
 
 def test(mod, path, entity=None):
     import re
diff --git a/mobile/android/mach_commands.py b/mobile/android/mach_commands.py
index a6dd48bbb1f0d5d65bd8ee40ecc2357b74277074..14125cfe05bf951bca70c0c29046003cf34328c2 100644
--- a/mobile/android/mach_commands.py
+++ b/mobile/android/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import logging
 import os
diff --git a/mobile/locales/filter.py b/mobile/locales/filter.py
index 3e753a14a3bfb711ddfea226835b2dd90bedb0e1..311d785f2c16da2f5a46754958165955a5f683ca 100644
--- a/mobile/locales/filter.py
+++ b/mobile/locales/filter.py
@@ -7,8 +7,6 @@ reported and l10n-merged.
 This needs to stay in sync with the copy in mobile/android/locales.
 """
 
-from __future__ import absolute_import
-
 
 def test(mod, path, entity=None):
     import re
diff --git a/modules/libpref/init/generate_static_pref_list.py b/modules/libpref/init/generate_static_pref_list.py
index 5242c12214bcfa6141ffcfd5be00caa504fd74a9..8656df681d88115a56b907b37117617b7b3686d5 100644
--- a/modules/libpref/init/generate_static_pref_list.py
+++ b/modules/libpref/init/generate_static_pref_list.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import os
 import sys
 from collections import defaultdict
diff --git a/modules/libpref/test/test_generate_static_pref_list.py b/modules/libpref/test/test_generate_static_pref_list.py
index 6fa7104c4704449bc89dcd187b3c93c4b1d31b3f..118aa47ec64fa04b0fc7620d2db7278be62e4ae1 100644
--- a/modules/libpref/test/test_generate_static_pref_list.py
+++ b/modules/libpref/test/test_generate_static_pref_list.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import sys
 import unittest
 from os import path
diff --git a/remote/mach_commands.py b/remote/mach_commands.py
index 2fe60badf180b9001b36c54a52c985887dd62f60..200f24eec6fcf1ef9e5457ee91cb9bc55b10dc69 100644
--- a/remote/mach_commands.py
+++ b/remote/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import json
 import os
diff --git a/security/manager/tools/getCTKnownLogs.py b/security/manager/tools/getCTKnownLogs.py
index 3270f567ed167fc77f3f706b88df6421551590bc..a121283a6a94fa1356ddd4c8be344f65355813f9 100755
--- a/security/manager/tools/getCTKnownLogs.py
+++ b/security/manager/tools/getCTKnownLogs.py
@@ -14,8 +14,6 @@ and edited to include the disqualification time for the disqualified logs using
 https://cs.chromium.org/chromium/src/net/cert/ct_known_logs_static-inc.h
 """
 
-from __future__ import print_function
-
 import argparse
 import base64
 import datetime
diff --git a/security/sandbox/test/mac_register_font.py b/security/sandbox/test/mac_register_font.py
index d537e5837609a038cf193fb40e22b116b6237cc2..549becf565afe0302dca4a57f78defe963543b23 100755
--- a/security/sandbox/test/mac_register_font.py
+++ b/security/sandbox/test/mac_register_font.py
@@ -9,8 +9,6 @@ mac_register_font.py
 Mac-specific utility command to register a font file with the OS.
 """
 
-from __future__ import print_function
-
 import argparse
 import sys
 
diff --git a/taskcluster/docker/firefox-flatpak/extract_locales_from_l10n_json.py b/taskcluster/docker/firefox-flatpak/extract_locales_from_l10n_json.py
index d3cb62bcb3f48313ff877a94bc9448e5ed8e0ab9..b1eb745d7f9e572fd7f6e6780d9e2eb7b3f3bc1b 100644
--- a/taskcluster/docker/firefox-flatpak/extract_locales_from_l10n_json.py
+++ b/taskcluster/docker/firefox-flatpak/extract_locales_from_l10n_json.py
@@ -7,8 +7,6 @@
 """
 
 
-from __future__ import absolute_import, print_function
-
 import json
 import sys
 
diff --git a/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py b/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py
index c52b2dd471934c36b7478ba128989b3b5b25a94b..07bc007a3114004f071cfd837e1e88c15f77bb58 100644
--- a/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py
+++ b/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py
@@ -4,8 +4,6 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
-from __future__ import absolute_import, print_function
-
 import json
 import sys
 
diff --git a/taskcluster/docker/funsize-update-generator/scripts/funsize.py b/taskcluster/docker/funsize-update-generator/scripts/funsize.py
index 817389945dd8af8e8e2791c085c7b36da768d639..84fd2fbd0bfca95cacb5af153a87646efe7eeb8a 100644
--- a/taskcluster/docker/funsize-update-generator/scripts/funsize.py
+++ b/taskcluster/docker/funsize-update-generator/scripts/funsize.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, division, print_function
-
 import argparse
 import asyncio
 import configparser
diff --git a/taskcluster/docker/updatebot/run.py b/taskcluster/docker/updatebot/run.py
index c4e2880d1c93655bc7cdc3cd26efb8db7e30340d..ad9bcb8788dffccbf813a3bfb6661cda675a88c1 100755
--- a/taskcluster/docker/updatebot/run.py
+++ b/taskcluster/docker/updatebot/run.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import sys
 
 sys.path.append("/builds/worker/checkouts/gecko/third_party/python")
diff --git a/taskcluster/mach_commands.py b/taskcluster/mach_commands.py
index d28f5e2bd02972ff217d4f975d4387a4fc6706ae..b752cb7d16bc6df556930c7959403b418fc61ed5 100644
--- a/taskcluster/mach_commands.py
+++ b/taskcluster/mach_commands.py
@@ -5,8 +5,6 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import json
 import logging
diff --git a/taskcluster/scripts/misc/fetch-chromium.py b/taskcluster/scripts/misc/fetch-chromium.py
index a731ca4a1365155a5f4bb47f8ffc8010b18aa8bd..941aa846316eb1373b9dc441a6b71238ee713877 100644
--- a/taskcluster/scripts/misc/fetch-chromium.py
+++ b/taskcluster/scripts/misc/fetch-chromium.py
@@ -11,8 +11,6 @@ defined version) for a given platform. It then uploads the build,
 with the revision of the build stored in a REVISION file.
 """
 
-from __future__ import absolute_import, print_function
-
 import argparse
 import errno
 import os
diff --git a/taskcluster/scripts/misc/repack_rust.py b/taskcluster/scripts/misc/repack_rust.py
index f22b2605be9893161f07caa269fd2f40c63ba9f6..e0b10aaecbada82cbfeefa01d099526ac069019d 100755
--- a/taskcluster/scripts/misc/repack_rust.py
+++ b/taskcluster/scripts/misc/repack_rust.py
@@ -9,8 +9,6 @@ with the necessary tool and target support for the Firefox
 build environment.
 """
 
-from __future__ import absolute_import, print_function
-
 import argparse
 import errno
 import glob
diff --git a/taskcluster/scripts/tester/run-wizard b/taskcluster/scripts/tester/run-wizard
index 9892737352f043cad96cac6a638bce97d513d19b..99ecb6ff2fb66c9857c4a1f8c605cb60e76ba41e 100755
--- a/taskcluster/scripts/tester/run-wizard
+++ b/taskcluster/scripts/tester/run-wizard
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this,
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function, unicode_literals
-
 import datetime
 import os
 import subprocess
diff --git a/taskcluster/test/conftest.py b/taskcluster/test/conftest.py
index 15baf7453a7d4176847a8f5b8bd4d7b853df4644..9001958c6a218524aecebc9dff2eafbd84c7c9d2 100644
--- a/taskcluster/test/conftest.py
+++ b/taskcluster/test/conftest.py
@@ -1,8 +1,6 @@
 # Any copyright is dedicated to the public domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
-from __future__ import absolute_import
-
 import json
 import logging
 import os
diff --git a/taskcluster/test/test_autoland.py b/taskcluster/test/test_autoland.py
index 4d49997618ef0f6927525a61fc66e94b4ffa47a7..05d181620aa90e18f16ce73bf4d7920394b65f62 100644
--- a/taskcluster/test/test_autoland.py
+++ b/taskcluster/test/test_autoland.py
@@ -1,8 +1,6 @@
 # Any copyright is dedicated to the public domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import pytest
 from mozunit import main
 
diff --git a/taskcluster/test/test_autoland_backstop.py b/taskcluster/test/test_autoland_backstop.py
index 23eff55ce18f759a4cf7f97bde15aa4e745e7f46..55ea11ca4d52ad0a117d2dcdf3abc419acc1a834 100644
--- a/taskcluster/test/test_autoland_backstop.py
+++ b/taskcluster/test/test_autoland_backstop.py
@@ -1,8 +1,6 @@
 # Any copyright is dedicated to the public domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import pytest
 from mozunit import main
 
diff --git a/taskcluster/test/test_mach_try_auto.py b/taskcluster/test/test_mach_try_auto.py
index 379459fca1fc62630e1546d63410a4b35f4b55d5..f26110b57f953e0827b15afe8ffbdb5081cf6453 100644
--- a/taskcluster/test/test_mach_try_auto.py
+++ b/taskcluster/test/test_mach_try_auto.py
@@ -1,8 +1,6 @@
 # Any copyright is dedicated to the public domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import pytest
 from gecko_taskgraph.util.bugbug import push_schedules
 from gecko_taskgraph.util.chunking import BugbugLoader
diff --git a/taskcluster/test/test_mozilla_central.py b/taskcluster/test/test_mozilla_central.py
index 042b14a18a578829125626cd77d4ede16ce24c83..696a108db6713935af33f45990f1cbdd5edb9881 100644
--- a/taskcluster/test/test_mozilla_central.py
+++ b/taskcluster/test/test_mozilla_central.py
@@ -1,8 +1,6 @@
 # Any copyright is dedicated to the public domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import pytest
 from mozunit import main
 
diff --git a/toolkit/components/telemetry/build_scripts/gen_event_data.py b/toolkit/components/telemetry/build_scripts/gen_event_data.py
index ae90626a5d3e217c78eaca08a66382f7d0608781..2e321cea7283a32b6b19bb85963497f64f064687 100644
--- a/toolkit/components/telemetry/build_scripts/gen_event_data.py
+++ b/toolkit/components/telemetry/build_scripts/gen_event_data.py
@@ -5,8 +5,6 @@
 # Write out event information for C++. The events are defined
 # in a file provided as a command-line argument.
 
-from __future__ import print_function
-
 import itertools
 import json
 import sys
diff --git a/toolkit/components/telemetry/build_scripts/gen_event_enum.py b/toolkit/components/telemetry/build_scripts/gen_event_enum.py
index 3e106d328239de99826721748e277e9c85f18029..9dd418b3dd0407c9c7877c04f38dfb7bf4858375 100644
--- a/toolkit/components/telemetry/build_scripts/gen_event_enum.py
+++ b/toolkit/components/telemetry/build_scripts/gen_event_enum.py
@@ -6,8 +6,6 @@
 #
 # The events are defined in files provided as command-line arguments.
 
-from __future__ import print_function
-
 import sys
 
 import buildconfig
diff --git a/toolkit/components/telemetry/build_scripts/gen_histogram_data.py b/toolkit/components/telemetry/build_scripts/gen_histogram_data.py
index eb33058aab89907b3c1bf5c6b63d94e2f88302c7..a203dde9f9c1d3d656dc5b9039fab0145a8420a3 100644
--- a/toolkit/components/telemetry/build_scripts/gen_histogram_data.py
+++ b/toolkit/components/telemetry/build_scripts/gen_histogram_data.py
@@ -5,8 +5,6 @@
 # Write out histogram information for C++.  The histograms are defined
 # in a file provided as a command-line argument.
 
-from __future__ import print_function
-
 import sys
 from os import path
 
diff --git a/toolkit/components/telemetry/build_scripts/gen_histogram_enum.py b/toolkit/components/telemetry/build_scripts/gen_histogram_enum.py
index ad1c5bcbbf582b21fb83cb22a46bee78f3bfc123..8f224c5140d1422a587c306a777b0be660790589 100644
--- a/toolkit/components/telemetry/build_scripts/gen_histogram_enum.py
+++ b/toolkit/components/telemetry/build_scripts/gen_histogram_enum.py
@@ -12,8 +12,6 @@
 #
 # The histograms are defined in files provided as command-line arguments.
 
-from __future__ import print_function
-
 import itertools
 import sys
 
diff --git a/toolkit/components/telemetry/build_scripts/gen_histogram_phf.py b/toolkit/components/telemetry/build_scripts/gen_histogram_phf.py
index 779333d183b32473f87e8ade25ef3a8c2190419f..38c724550675eacce767a8540e6afc4a258a4093 100644
--- a/toolkit/components/telemetry/build_scripts/gen_histogram_phf.py
+++ b/toolkit/components/telemetry/build_scripts/gen_histogram_phf.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 from mozparsers.shared_telemetry_utils import ParserError
 from perfecthash import PerfectHash
 
diff --git a/toolkit/components/telemetry/build_scripts/gen_process_data.py b/toolkit/components/telemetry/build_scripts/gen_process_data.py
index 7c6dff3401d4fb9dbe013d509db322f99a7a1ea5..2a494689adde378a51a86afbb44759e523819831 100644
--- a/toolkit/components/telemetry/build_scripts/gen_process_data.py
+++ b/toolkit/components/telemetry/build_scripts/gen_process_data.py
@@ -5,8 +5,6 @@
 # Write out processes data for C++. The processes are defined
 # in a file provided as a command-line argument.
 
-from __future__ import print_function
-
 import collections
 import sys
 
diff --git a/toolkit/components/telemetry/build_scripts/gen_process_enum.py b/toolkit/components/telemetry/build_scripts/gen_process_enum.py
index d8a1405e0c21f1d4e33d7924f92d3595173b17dc..bfe2d65e436b0f435ea51ab2cb82b491f0b9b5da 100644
--- a/toolkit/components/telemetry/build_scripts/gen_process_enum.py
+++ b/toolkit/components/telemetry/build_scripts/gen_process_enum.py
@@ -5,8 +5,6 @@
 # Write out processes data for C++. The processes are defined
 # in a file provided as a command-line argument.
 
-from __future__ import print_function
-
 import collections
 import sys
 
diff --git a/toolkit/components/telemetry/build_scripts/gen_scalar_data.py b/toolkit/components/telemetry/build_scripts/gen_scalar_data.py
index c5a41bb2c8011fc574efdd66d6d75d2324ae8eef..6ef1f457b54b87b2fab9f5aa02e6ad44044ea438 100644
--- a/toolkit/components/telemetry/build_scripts/gen_scalar_data.py
+++ b/toolkit/components/telemetry/build_scripts/gen_scalar_data.py
@@ -5,8 +5,6 @@
 # Write out scalar information for C++.  The scalars are defined
 # in a file provided as a command-line argument.
 
-from __future__ import print_function
-
 import json
 import sys
 from collections import OrderedDict
diff --git a/toolkit/components/telemetry/build_scripts/gen_scalar_enum.py b/toolkit/components/telemetry/build_scripts/gen_scalar_enum.py
index 616f2a8918ef1fa35ab9052f67460ffeeffb140e..321cd047d749c31fe1ae18937bdbef81336ccd99 100644
--- a/toolkit/components/telemetry/build_scripts/gen_scalar_enum.py
+++ b/toolkit/components/telemetry/build_scripts/gen_scalar_enum.py
@@ -7,8 +7,6 @@
 #
 # The scalars are defined in files provided as command-line arguments.
 
-from __future__ import print_function
-
 import sys
 
 import buildconfig
diff --git a/toolkit/components/telemetry/build_scripts/gen_userinteraction_data.py b/toolkit/components/telemetry/build_scripts/gen_userinteraction_data.py
index bd5b1131a3b4a88041c5cfb17cae7a7256332955..b12cbde2399b1f410c0da598a0a78aa3adf2002f 100644
--- a/toolkit/components/telemetry/build_scripts/gen_userinteraction_data.py
+++ b/toolkit/components/telemetry/build_scripts/gen_userinteraction_data.py
@@ -5,8 +5,6 @@
 # Write out UserInteraction information for C++. The UserInteractions are
 # defined in a file provided as a command-line argument.
 
-from __future__ import print_function
-
 import sys
 from os import path
 
diff --git a/toolkit/components/telemetry/build_scripts/gen_userinteraction_phf.py b/toolkit/components/telemetry/build_scripts/gen_userinteraction_phf.py
index 9731ec50d12c23a973289d6a0758d597dd9a4027..f1c7256414363177923668ea33f7cadbbb3063e0 100644
--- a/toolkit/components/telemetry/build_scripts/gen_userinteraction_phf.py
+++ b/toolkit/components/telemetry/build_scripts/gen_userinteraction_phf.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 from mozparsers.shared_telemetry_utils import ParserError
 from perfecthash import PerfectHash
 
diff --git a/toolkit/components/telemetry/build_scripts/mozparsers/shared_telemetry_utils.py b/toolkit/components/telemetry/build_scripts/mozparsers/shared_telemetry_utils.py
index 6c26b4c22f313a66502bf31805eceba4a25ebf4f..bf4a1356f22949bc2877c1c73ea7057c9bc3267c 100644
--- a/toolkit/components/telemetry/build_scripts/mozparsers/shared_telemetry_utils.py
+++ b/toolkit/components/telemetry/build_scripts/mozparsers/shared_telemetry_utils.py
@@ -5,8 +5,6 @@
 # This file contains utility functions shared by the scalars and the histogram generation
 # scripts.
 
-from __future__ import print_function
-
 import os
 import re
 import sys
diff --git a/toolkit/components/telemetry/tests/marionette/mach_commands.py b/toolkit/components/telemetry/tests/marionette/mach_commands.py
index 5c299683d497826a59d0661a680dfcffa4db0715..07709f5304b36c1e00a1e406b2a132c3a4a944f4 100644
--- a/toolkit/components/telemetry/tests/marionette/mach_commands.py
+++ b/toolkit/components/telemetry/tests/marionette/mach_commands.py
@@ -1,7 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import, print_function, unicode_literals
 
 import argparse
 import logging
diff --git a/toolkit/content/neterror/gen_aboutneterror_codes.py b/toolkit/content/neterror/gen_aboutneterror_codes.py
index d2e601a503e00ad8b4e276894157d980b35fd4e6..806756422f74d432590c2ae95213a59d471971b1 100644
--- a/toolkit/content/neterror/gen_aboutneterror_codes.py
+++ b/toolkit/content/neterror/gen_aboutneterror_codes.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import
-
 import sys
 
 from fluent.syntax import parse
diff --git a/toolkit/crashreporter/tools/symbolstore.py b/toolkit/crashreporter/tools/symbolstore.py
index 4d8a4c18377135174f1b8ee5f7adbf8750ec9e4a..6826f4f17195e597b69e4464c2cabed46169c2df 100755
--- a/toolkit/crashreporter/tools/symbolstore.py
+++ b/toolkit/crashreporter/tools/symbolstore.py
@@ -21,8 +21,6 @@
 #     -s <srcdir>  : Use <srcdir> as the top source directory to
 #                    generate relative filenames.
 
-from __future__ import print_function
-
 import ctypes
 import errno
 import os
diff --git a/toolkit/crashreporter/tools/upload_symbols.py b/toolkit/crashreporter/tools/upload_symbols.py
index 71ecae1afa7526177c442092ce0cb07acc2a5931..01e9aab9fb556d75019da833aeb79c2e8b4b7139 100644
--- a/toolkit/crashreporter/tools/upload_symbols.py
+++ b/toolkit/crashreporter/tools/upload_symbols.py
@@ -14,8 +14,6 @@
 # you can put the token in a file and set `SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE`
 # environment variable to the path to the file.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import logging
 import os
diff --git a/toolkit/locales/gen_multilocale.py b/toolkit/locales/gen_multilocale.py
index 14e8c80cb241150d1d672365e1c8fd1fe739aac4..1d151b68bf7d66ee4576cd97a5b7d453e31e2ace 100644
--- a/toolkit/locales/gen_multilocale.py
+++ b/toolkit/locales/gen_multilocale.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function, unicode_literals
-
 import sys
 
 
diff --git a/toolkit/locales/generate_update_locale.py b/toolkit/locales/generate_update_locale.py
index af00cef8c9da9c23268b8734dd585463420815ca..30d492a27297d3e5597a7dda9e9d61fe5500458b 100644
--- a/toolkit/locales/generate_update_locale.py
+++ b/toolkit/locales/generate_update_locale.py
@@ -4,8 +4,6 @@
 
 # Generate update.locale, which simply contains the name of the current locale.
 
-from __future__ import unicode_literals, print_function
-
 
 def main(output, locale=None):
     assert locale is not None
diff --git a/toolkit/mozapps/extensions/gen_built_in_addons.py b/toolkit/mozapps/extensions/gen_built_in_addons.py
index 3568afe1f69364d6152a978dc951cc1651c91705..9e8078f2bcea75b2fde98178f5aa297123717be2 100644
--- a/toolkit/mozapps/extensions/gen_built_in_addons.py
+++ b/toolkit/mozapps/extensions/gen_built_in_addons.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import json
 import os.path
diff --git a/toolkit/mozapps/installer/find-dupes.py b/toolkit/mozapps/installer/find-dupes.py
index 7c865079caed68593c23baaef3711240de2b3340..1931481b7ca62fd7088e8ab80444f5045fc6c807 100644
--- a/toolkit/mozapps/installer/find-dupes.py
+++ b/toolkit/mozapps/installer/find-dupes.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals, print_function
-
 import sys
 import hashlib
 import functools
diff --git a/toolkit/mozapps/installer/informulate.py b/toolkit/mozapps/installer/informulate.py
index 4cf1affc46d90b69d203b959ac99dbc04f90af5d..ec45e25f89a07fecd343f7bce1264fe7568bc58d 100644
--- a/toolkit/mozapps/installer/informulate.py
+++ b/toolkit/mozapps/installer/informulate.py
@@ -6,8 +6,6 @@
 # Generate build info files for use by other tools.
 # This script assumes it is being run in a Mozilla CI build.
 
-from __future__ import unicode_literals
-
 from argparse import ArgumentParser
 import datetime
 import buildconfig
diff --git a/toolkit/mozapps/installer/packager.py b/toolkit/mozapps/installer/packager.py
index ec8d2de343c2b1337dc15eb7f5c459015d61e86f..29364045ddca1d6fbfcf9f2271cf3b63a3d4cda0 100644
--- a/toolkit/mozapps/installer/packager.py
+++ b/toolkit/mozapps/installer/packager.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals, print_function
-
 from mozpack.packager.formats import (
     FlatFormatter,
     JarFormatter,
diff --git a/toolkit/mozapps/update/tests/marionette/test_no_window_update_restart.py b/toolkit/mozapps/update/tests/marionette/test_no_window_update_restart.py
index e0035da2158a69f9eb62f3c3ed46ec8852da8be2..245efc774dd12efb1c52bbd8f7349f7b92251242 100644
--- a/toolkit/mozapps/update/tests/marionette/test_no_window_update_restart.py
+++ b/toolkit/mozapps/update/tests/marionette/test_no_window_update_restart.py
@@ -9,8 +9,6 @@
 # windows at all and mochitest has a test runner window that Firefox recognizes, but mustn't close
 # during testing.
 
-from __future__ import absolute_import
-
 from marionette_driver import Wait, errors
 from marionette_harness import MarionetteTestCase
 
diff --git a/toolkit/mozapps/update/updater/gen_cert_header.py b/toolkit/mozapps/update/updater/gen_cert_header.py
index e01207dbcf216181b2a6935ac3d8d7b2c4bd0351..da78cad674e2151c14e59c7dc3210ac9e888b860 100644
--- a/toolkit/mozapps/update/updater/gen_cert_header.py
+++ b/toolkit/mozapps/update/updater/gen_cert_header.py
@@ -2,7 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
 import os
 
 
diff --git a/toolkit/xre/dllservices/mozglue/gen_dll_blocklist_defs.py b/toolkit/xre/dllservices/mozglue/gen_dll_blocklist_defs.py
index eaa84b8293124bae7b77e16ed79a4139b9e14e40..056db4d9951d94e23214013db640eb0081a66b12 100644
--- a/toolkit/xre/dllservices/mozglue/gen_dll_blocklist_defs.py
+++ b/toolkit/xre/dllservices/mozglue/gen_dll_blocklist_defs.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import print_function
-
 import os
 from copy import deepcopy
 from struct import unpack
diff --git a/toolkit/xre/test/marionette/test_fission_autostart.py b/toolkit/xre/test/marionette/test_fission_autostart.py
index 9b27009844ec4d6b0b7bfa60b205adc7bf366810..b830c0eacac8b684c20300c932e7d9c0311b329f 100644
--- a/toolkit/xre/test/marionette/test_fission_autostart.py
+++ b/toolkit/xre/test/marionette/test_fission_autostart.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 from contextlib import contextmanager
 
 from marionette_harness import MarionetteTestCase
diff --git a/toolkit/xre/test/marionette/test_win32k_enrollment.py b/toolkit/xre/test/marionette/test_win32k_enrollment.py
index 358fab276178b2c8d06d878f17253e61ca46ba01..d09331319b7e0e93029a2a83f8acbd7dee95ee60 100644
--- a/toolkit/xre/test/marionette/test_win32k_enrollment.py
+++ b/toolkit/xre/test/marionette/test_win32k_enrollment.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 from contextlib import contextmanager
 
 from marionette_harness import MarionetteTestCase
diff --git a/toolkit/xre/test/marionette/test_win32k_enrollment.template.py b/toolkit/xre/test/marionette/test_win32k_enrollment.template.py
index cac6e3e497c9a8a5c02e9215883fdb1f4455ad78..30dc7fed33603bd6237c34c5be46adbdbf33f083 100644
--- a/toolkit/xre/test/marionette/test_win32k_enrollment.template.py
+++ b/toolkit/xre/test/marionette/test_win32k_enrollment.template.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 from contextlib import contextmanager
 
 from marionette_harness import MarionetteTestCase
diff --git a/tools/browsertime/mach_commands.py b/tools/browsertime/mach_commands.py
index 3caa13e5cde8c57e6a0dce1dc2072efc849e857c..4850c82b75f7ba74061a332f278e7a4b45fa0a82 100644
--- a/tools/browsertime/mach_commands.py
+++ b/tools/browsertime/mach_commands.py
@@ -28,8 +28,6 @@ To invoke browsertime, run
 All arguments are passed through to browsertime.
 """
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import collections
 import contextlib
diff --git a/tools/compare-locales/mach_commands.py b/tools/compare-locales/mach_commands.py
index ebd375290826c0877435e09bf4222ca567fc9852..56d101467bda5caee49c1bb5190c09efdb8ebf76 100644
--- a/tools/compare-locales/mach_commands.py
+++ b/tools/compare-locales/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this,
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import logging
 import os
diff --git a/tools/crashreporter/system-symbols/mac/PackageSymbolDumper.py b/tools/crashreporter/system-symbols/mac/PackageSymbolDumper.py
index d9614c54aa1a164f3c791defbed1da36884f3534..bfb3048d7c4ad31ebb90405f297d926d894911dc 100755
--- a/tools/crashreporter/system-symbols/mac/PackageSymbolDumper.py
+++ b/tools/crashreporter/system-symbols/mac/PackageSymbolDumper.py
@@ -39,8 +39,6 @@ Created on Apr 11, 2012
 
 @author: mrmiller
 """
-from __future__ import absolute_import
-
 import argparse
 import concurrent.futures
 import errno
diff --git a/tools/crashreporter/system-symbols/mac/get_update_packages.py b/tools/crashreporter/system-symbols/mac/get_update_packages.py
index 21a54b8d0489e1187218bca73af1112d9408052b..3192fa3ef009cad86d91955e1c7d4af33697db80 100644
--- a/tools/crashreporter/system-symbols/mac/get_update_packages.py
+++ b/tools/crashreporter/system-symbols/mac/get_update_packages.py
@@ -21,8 +21,6 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 
-from __future__ import absolute_import
-
 import argparse
 import concurrent.futures
 import logging
diff --git a/tools/crashreporter/system-symbols/mac/list-packages.py b/tools/crashreporter/system-symbols/mac/list-packages.py
index d6297df45e9f3317b96f22042f32aa6eb61be430..444c27be9dd45acf5e8f69fece14a40d20a5c787 100755
--- a/tools/crashreporter/system-symbols/mac/list-packages.py
+++ b/tools/crashreporter/system-symbols/mac/list-packages.py
@@ -20,8 +20,6 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 
-from __future__ import absolute_import, print_function
-
 import os
 import sys
 
diff --git a/tools/crashreporter/system-symbols/mac/scrapesymbols/gathersymbols.py b/tools/crashreporter/system-symbols/mac/scrapesymbols/gathersymbols.py
index 0b54b673157dc986c6f2183f909ff4647a1c2dc9..70be2a62a753fff6dbd9f5a9e86fb28d3385f814 100644
--- a/tools/crashreporter/system-symbols/mac/scrapesymbols/gathersymbols.py
+++ b/tools/crashreporter/system-symbols/mac/scrapesymbols/gathersymbols.py
@@ -2,8 +2,6 @@
 # Any copyright is dedicated to the Public Domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
-from __future__ import absolute_import, print_function
-
 import argparse
 import concurrent.futures
 import datetime
diff --git a/tools/crashreporter/system-symbols/win/scrape-report.py b/tools/crashreporter/system-symbols/win/scrape-report.py
index 16ba8bb638b92e0c8ca9757f256a3e41fabeffbe..9bc21801c3dae731ebf0fea6c1682c9ee3843097 100644
--- a/tools/crashreporter/system-symbols/win/scrape-report.py
+++ b/tools/crashreporter/system-symbols/win/scrape-report.py
@@ -14,8 +14,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from __future__ import absolute_import
-
 import csv
 import json
 import logging
diff --git a/tools/esmify/mach_commands.py b/tools/esmify/mach_commands.py
index 7707479e371480416e05b375f22e8d61780c1ffb..59c0777a9ea7d321c49de8bff73612a2e289a6d5 100644
--- a/tools/esmify/mach_commands.py
+++ b/tools/esmify/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import json
 import logging
 import os
diff --git a/tools/fuzzing/smoke/js.py b/tools/fuzzing/smoke/js.py
index 3fd06ab584d35cd80658d38580392b581cebd4ba..d6ad08eb6a203a8e43744a2e3ab71d22867e0d34 100755
--- a/tools/fuzzing/smoke/js.py
+++ b/tools/fuzzing/smoke/js.py
@@ -5,8 +5,6 @@
 """ Hello I am a fake jsshell for testing purpose.
 Add more features!
 """
-from __future__ import absolute_import
-
 import argparse
 import sys
 
diff --git a/tools/fuzzing/smoke/smoke.py b/tools/fuzzing/smoke/smoke.py
index 4c118f29ce1a93aac30bd92b96b66161e3227177..e328be71d6a00e0d78464a9a44b3c71ef8bbba45 100644
--- a/tools/fuzzing/smoke/smoke.py
+++ b/tools/fuzzing/smoke/smoke.py
@@ -15,8 +15,6 @@ Everything included in this directory will be added in
 tools if you need. They will be located in `$MOZ_FETCHES_DIR` and follow the
 same directory structure than the source tree.
 """
-from __future__ import absolute_import
-
 import os
 import os.path
 import shlex
diff --git a/tools/fuzzing/smoke/tests.py b/tools/fuzzing/smoke/tests.py
index 913798cb180c15d4aeacd57c73e43180c125c914..bc06e2427b8d0a28d871b366f8358c3e52f4071a 100644
--- a/tools/fuzzing/smoke/tests.py
+++ b/tools/fuzzing/smoke/tests.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 import os
 from contextlib import contextmanager
 
diff --git a/tools/jprof/split-profile.py b/tools/jprof/split-profile.py
index 1a73e5cfa49aa62c40709e6ae1ac1320027b5425..c280c130c23baedf26f286ce32dfc89937a641f5 100755
--- a/tools/jprof/split-profile.py
+++ b/tools/jprof/split-profile.py
@@ -52,8 +52,6 @@
 # functions in the input file can lead to a logical splitting of the
 # profile into segments.
 
-from __future__ import absolute_import, print_function
-
 import os.path
 import subprocess
 import sys
diff --git a/tools/lint/eslint/__init__.py b/tools/lint/eslint/__init__.py
index 071706e688434c54be9ae833eae0dbefbe12dca9..af3f5efc56fdeca469ed6a8d0cbe29777cfbde6b 100644
--- a/tools/lint/eslint/__init__.py
+++ b/tools/lint/eslint/__init__.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import json
 import os
 import signal
diff --git a/tools/lint/hooks.py b/tools/lint/hooks.py
index b46df71536592e0e13b3841ff521aac57e852cdf..fead62ec7e09128e5be3e9f4e8eaed1441198a36 100755
--- a/tools/lint/hooks.py
+++ b/tools/lint/hooks.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import os
 import signal
 import subprocess
diff --git a/tools/lint/libpref/__init__.py b/tools/lint/libpref/__init__.py
index f59d3f11c38c0ee9d4b5d415809808ff8dc1c987..e986be39d093c95fbc2742c64b52a5f5562f596c 100644
--- a/tools/lint/libpref/__init__.py
+++ b/tools/lint/libpref/__init__.py
@@ -4,8 +4,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, division, print_function
-
 import re
 import sys
 
diff --git a/tools/lint/perfdocs/framework_gatherers.py b/tools/lint/perfdocs/framework_gatherers.py
index 37ea462e02e155399ba9c34f18e86aa9aa3a0964..c85690879bef955df10768ff1806e249ffcb6f52 100644
--- a/tools/lint/perfdocs/framework_gatherers.py
+++ b/tools/lint/perfdocs/framework_gatherers.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 import json
 import os
 import pathlib
diff --git a/tools/lint/perfdocs/gatherer.py b/tools/lint/perfdocs/gatherer.py
index 0c403567d87a02c67b5ef55a7a983955bf0bed00..02c13a103e484dde3a090ddd51a47a7a9fdfe5ea 100644
--- a/tools/lint/perfdocs/gatherer.py
+++ b/tools/lint/perfdocs/gatherer.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 import os
 import pathlib
 
diff --git a/tools/lint/perfdocs/generator.py b/tools/lint/perfdocs/generator.py
index cf49714f825edf88afce80180313e99aaf8524ed..3f3a0acefa68e98612c3be8474e905db502314ff 100644
--- a/tools/lint/perfdocs/generator.py
+++ b/tools/lint/perfdocs/generator.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 import pathlib
 import re
 import shutil
diff --git a/tools/lint/perfdocs/logger.py b/tools/lint/perfdocs/logger.py
index 2e1a66b717c5b401bb828862ab01c51461c3521e..6f0a482d159c3ef8eb3ea8835c819e5693f806d1 100644
--- a/tools/lint/perfdocs/logger.py
+++ b/tools/lint/perfdocs/logger.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 import pathlib
 
 
diff --git a/tools/lint/perfdocs/perfdocs.py b/tools/lint/perfdocs/perfdocs.py
index 185fd0d915a757b2954df963b5aa8f9ef8376888..b41edb1979c3c50956dc9caf8ffdc9bc33090a42 100644
--- a/tools/lint/perfdocs/perfdocs.py
+++ b/tools/lint/perfdocs/perfdocs.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import, print_function
-
 import os
 import pathlib
 
diff --git a/tools/lint/perfdocs/utils.py b/tools/lint/perfdocs/utils.py
index 68072c4179993498896de62450aae2d932927a92..3bf20d33cc484ca762b692cb0301c093e343d4c7 100644
--- a/tools/lint/perfdocs/utils.py
+++ b/tools/lint/perfdocs/utils.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 import difflib
 import filecmp
 import os
diff --git a/tools/lint/perfdocs/verifier.py b/tools/lint/perfdocs/verifier.py
index 373b452fad055834fbd482bff0a61cf03dd8d1a9..db6f849922fdf94d4fa5b02b3cc939cd1a6e2166 100644
--- a/tools/lint/perfdocs/verifier.py
+++ b/tools/lint/perfdocs/verifier.py
@@ -1,8 +1,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-from __future__ import absolute_import
-
 import os
 import pathlib
 import re
diff --git a/tools/lint/python/black.py b/tools/lint/python/black.py
index e98cdc24d7b535e4bacbc2c7f37d03b6d15aa95c..8c44a56951295c1d5849c2918b36ffce0f5dcb78 100644
--- a/tools/lint/python/black.py
+++ b/tools/lint/python/black.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import os
 import platform
 import re
diff --git a/tools/lint/test/conftest.py b/tools/lint/test/conftest.py
index eb76928aa588dd357b6d389467c7f01654ab62a0..ca5adab7aef2bc86e91bce78c50a9d1874324a6f 100644
--- a/tools/lint/test/conftest.py
+++ b/tools/lint/test/conftest.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import logging
 import os
 import pathlib
diff --git a/tools/lint/test/test_codespell.py b/tools/lint/test/test_codespell.py
index 7cf9a122410fe9a6204fb6acf01647bd96212c32..8baae66b418e529c3b6f31f4882ebb0e752a2f20 100644
--- a/tools/lint/test/test_codespell.py
+++ b/tools/lint/test/test_codespell.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import mozunit
 
 LINTER = "codespell"
diff --git a/tools/lint/test/test_file_license.py b/tools/lint/test/test_file_license.py
index b7f0efac603443060a235a0993d4843b4908305a..b00b023baee92debc636d38dc73410e464f85e40 100644
--- a/tools/lint/test/test_file_license.py
+++ b/tools/lint/test/test_file_license.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import mozunit
 
 LINTER = "license"
diff --git a/tools/lint/test/test_file_perm.py b/tools/lint/test/test_file_perm.py
index a9f991eef2ce6a404b9de347fc0bd4441b97ad76..08d6a20eef0a6de9bdc8587cc010fc53196d6a9a 100644
--- a/tools/lint/test/test_file_perm.py
+++ b/tools/lint/test/test_file_perm.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import mozunit
 import pytest
 
diff --git a/tools/lint/test/test_file_whitespace.py b/tools/lint/test/test_file_whitespace.py
index ae167999232f9f99491f3416c6e410732cb1a503..51b6fc4795291ab073cc2c19e43d2fe145889cae 100644
--- a/tools/lint/test/test_file_whitespace.py
+++ b/tools/lint/test/test_file_whitespace.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import mozunit
 
 LINTER = "file-whitespace"
diff --git a/tools/lint/test/test_lintpref.py b/tools/lint/test/test_lintpref.py
index 4fb3b8d23ce465cb8c0d34c84ba97631c50e25cf..3e75b1675e49a0f31389deb09a8c1f526020d5cf 100644
--- a/tools/lint/test/test_lintpref.py
+++ b/tools/lint/test/test_lintpref.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import mozunit
 
 LINTER = "lintpref"
diff --git a/tools/lint/test/test_trojan_source.py b/tools/lint/test/test_trojan_source.py
index 8a846ba1b85929ecae567bc88e4974bdd381ff59..64a3789c37653ed4a120ab812f14cdd5bc3b9a40 100644
--- a/tools/lint/test/test_trojan_source.py
+++ b/tools/lint/test/test_trojan_source.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, print_function
-
 import mozunit
 
 LINTER = "trojan-source"
diff --git a/tools/mach_commands.py b/tools/mach_commands.py
index 9b19117e6a1c1bacee74b41e1a2d28535809ed7c..50fdaf9849374c0d0b9d22ab3b8288d492b3a0e5 100644
--- a/tools/mach_commands.py
+++ b/tools/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import argparse
 import logging
 import subprocess
diff --git a/tools/moztreedocs/__init__.py b/tools/moztreedocs/__init__.py
index e0aab86b8e94b40af398d14a2bd8e4c7441bd546..7d13b4b635055acc1768e0a375ae5c706f19aad0 100644
--- a/tools/moztreedocs/__init__.py
+++ b/tools/moztreedocs/__init__.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 import tempfile
 from pathlib import PurePath
diff --git a/tools/moztreedocs/mach_commands.py b/tools/moztreedocs/mach_commands.py
index 32a2c8d5268c9d7a08858f0fea2cb149d8182a3c..737954f48660cab01e41d0314ffcb6e46228327e 100644
--- a/tools/moztreedocs/mach_commands.py
+++ b/tools/moztreedocs/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import fnmatch
 import json
 import multiprocessing
diff --git a/tools/moztreedocs/package.py b/tools/moztreedocs/package.py
index 9b4b20e229790cb11de9c03d2e1e7a94722a7d56..b8db23ee879bfc2991acf8d93211d6c4b1e3738b 100644
--- a/tools/moztreedocs/package.py
+++ b/tools/moztreedocs/package.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals
-
 import os
 
 from mozpack.archive import create_tar_gz_from_files
diff --git a/tools/moztreedocs/upload.py b/tools/moztreedocs/upload.py
index beb7c14640cd561dedd30927d8f59e4764aa4d35..ee98d8815b9d84a2f40fced6f0bb1dcf960a3da2 100644
--- a/tools/moztreedocs/upload.py
+++ b/tools/moztreedocs/upload.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import concurrent.futures as futures
 import io
 import mimetypes
diff --git a/tools/phabricator/mach_commands.py b/tools/phabricator/mach_commands.py
index 6cdfd45d40077b6507fbe113f4f821835e1e2fe6..811defb314dddef82b7b3c8ffdd768d14572e8b2 100644
--- a/tools/phabricator/mach_commands.py
+++ b/tools/phabricator/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals
-
 import mozfile
 from mach.decorators import Command, CommandArgument
 from mach.site import MozSiteMetadata
diff --git a/tools/power/mach_commands.py b/tools/power/mach_commands.py
index 31bbf0ef39742e2d1d9ad831f1c2bdaef942f4b1..956dcdf440eaa1420ad54f762ce938c52109704b 100644
--- a/tools/power/mach_commands.py
+++ b/tools/power/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 from distutils.version import StrictVersion
 
 from mach.decorators import Command, CommandArgument
diff --git a/tools/rb/find_leakers.py b/tools/rb/find_leakers.py
index 0359d6fefb5b842c14be087d0f295a764be84e12..9e9a37ac69a9f0c5c8b24b295c0da9e392848704 100755
--- a/tools/rb/find_leakers.py
+++ b/tools/rb/find_leakers.py
@@ -9,8 +9,6 @@
 # sees if they `Release' or `Dtor'. If not, it reports them as leaks.
 # Please see README file in the same directory.
 
-from __future__ import absolute_import, print_function
-
 import sys
 
 import six
diff --git a/tools/rb/fix_stacks.py b/tools/rb/fix_stacks.py
index 5813363588ff05257ed2d988792c7914cdc125ec..398041df1de573b7b8030e372fd879449cc88da6 100755
--- a/tools/rb/fix_stacks.py
+++ b/tools/rb/fix_stacks.py
@@ -7,8 +7,6 @@
 # This script uses `fix-stacks` to post-process the entries produced by
 # MozFormatCodeAddress().
 
-from __future__ import absolute_import, print_function
-
 import atexit
 import os
 import platform
diff --git a/tools/tryselect/selectors/chooser/__init__.py b/tools/tryselect/selectors/chooser/__init__.py
index f9eac295cc5dcfc811c0d076c9d418880e8cb25d..51263a184545430fdc6593ab1834d19cc8360b63 100644
--- a/tools/tryselect/selectors/chooser/__init__.py
+++ b/tools/tryselect/selectors/chooser/__init__.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 import webbrowser
 from threading import Timer
diff --git a/tools/tryselect/selectors/chooser/app.py b/tools/tryselect/selectors/chooser/app.py
index a1dfea498bb787a28f9b0b55645dc2e6e4d68436..adbf6f33dd5ad3d405a331c5f6152bb51ff4c53e 100644
--- a/tools/tryselect/selectors/chooser/app.py
+++ b/tools/tryselect/selectors/chooser/app.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 from abc import ABCMeta, abstractproperty
 from collections import defaultdict
 
diff --git a/tools/tryselect/test/conftest.py b/tools/tryselect/test/conftest.py
index 706b86d9b98520081dce00c7f37bc5b3492b3048..7ffffc4b9b0df637021c6badbf61146f5d397c8f 100644
--- a/tools/tryselect/test/conftest.py
+++ b/tools/tryselect/test/conftest.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 from unittest.mock import MagicMock
 
diff --git a/tools/tryselect/test/test_again.py b/tools/tryselect/test/test_again.py
index 68b04cc4e90df5f775358e59b5465464e69b0ea5..0e5d9d6b6dcd8ae7f848bb5b7c466fa2890fdce1 100644
--- a/tools/tryselect/test/test_again.py
+++ b/tools/tryselect/test/test_again.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 
 import mozunit
diff --git a/tools/tryselect/test/test_auto.py b/tools/tryselect/test/test_auto.py
index cb0daf4252f6e41bddfe40685c397540e171b4d5..63f0fe6bd724e6a4b66536ce1ec8871a7f444d2b 100644
--- a/tools/tryselect/test/test_auto.py
+++ b/tools/tryselect/test/test_auto.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import mozunit
 import pytest
 from tryselect.selectors.auto import AutoParser
diff --git a/tools/tryselect/test/test_chooser.py b/tools/tryselect/test/test_chooser.py
index 615f8085243fb0f087a04820c2a9b7f14e1f000a..885ed41a787d23c06a0ab672c44ab95debbd9d68 100644
--- a/tools/tryselect/test/test_chooser.py
+++ b/tools/tryselect/test/test_chooser.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import mozunit
 import pytest
 from tryselect.selectors.chooser.app import create_application
diff --git a/tools/tryselect/test/test_fuzzy.py b/tools/tryselect/test/test_fuzzy.py
index f88bd5c189fae42abf9bc31bbaf028620b3f0232..7391745bebda94a4d60bdb532f064d448daf5bf0 100644
--- a/tools/tryselect/test/test_fuzzy.py
+++ b/tools/tryselect/test/test_fuzzy.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import os
 
 import mozunit
diff --git a/tools/tryselect/test/test_mozharness_integration.py b/tools/tryselect/test/test_mozharness_integration.py
index 16cfc91d4e2dbd5513c3c8affbd097dcf4e004f8..b2585468f2619909bd4ec33437109de9d290659b 100644
--- a/tools/tryselect/test/test_mozharness_integration.py
+++ b/tools/tryselect/test/test_mozharness_integration.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import imp
 import json
 import os
diff --git a/tools/tryselect/test/test_presets.py b/tools/tryselect/test/test_presets.py
index 38e34e3bdcd07512184e3bcf1b5a4df8f585a0cb..89cc810808c23f8ee40561b22414f7f21aca10d1 100644
--- a/tools/tryselect/test/test_presets.py
+++ b/tools/tryselect/test/test_presets.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import mozunit
 import pytest
 
diff --git a/tools/tryselect/test/test_task_configs.py b/tools/tryselect/test/test_task_configs.py
index 6883bd3e57e289b10c8768c15a13e532894159b8..6c0eeadaa67800deb2c4652355622ca863decc45 100644
--- a/tools/tryselect/test/test_task_configs.py
+++ b/tools/tryselect/test/test_task_configs.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 import inspect
 import subprocess
 from argparse import ArgumentParser
diff --git a/tools/update-verify/python/util/commands.py b/tools/update-verify/python/util/commands.py
index acc8de3626defa0922901885a2d7bc986af34cc8..cb2b2119ff7708732a4df3707e18eea092db5b3d 100644
--- a/tools/update-verify/python/util/commands.py
+++ b/tools/update-verify/python/util/commands.py
@@ -4,8 +4,6 @@
 
 """Functions for running commands"""
 
-from __future__ import absolute_import, print_function
-
 import logging
 import os
 import subprocess
diff --git a/tools/update-verify/release/compare-directories.py b/tools/update-verify/release/compare-directories.py
index b5fd901965dc43a74badd56f49b6b4edb133e0e5..f73bd55581d42d4e1c72512fc0409ff500817013 100755
--- a/tools/update-verify/release/compare-directories.py
+++ b/tools/update-verify/release/compare-directories.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import argparse
 import difflib
 import hashlib
diff --git a/tools/update-verify/release/replace-updater-certs.py b/tools/update-verify/release/replace-updater-certs.py
index 55b28de0e65cc6941a0f8d1fbc028b876188ce06..9e981fbfe0b282f8bcd4ac14cfefdb617e9eddad 100644
--- a/tools/update-verify/release/replace-updater-certs.py
+++ b/tools/update-verify/release/replace-updater-certs.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import os.path
 import sys
 
diff --git a/tools/update-verify/scripts/chunked-verify.py b/tools/update-verify/scripts/chunked-verify.py
index 3410a02f24615bfb3c0d0c345f7e7a1b534a2e44..8c4320d4ccfee437b58d380c571b66da2164b98a 100644
--- a/tools/update-verify/scripts/chunked-verify.py
+++ b/tools/update-verify/scripts/chunked-verify.py
@@ -3,8 +3,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, print_function
-
 import logging
 import os
 import sys
diff --git a/tools/vcs/mach_commands.py b/tools/vcs/mach_commands.py
index d773470bed64c3888394ab422c1cfdf64472c8a3..4623a23634f0f6ad4c14fbdbcc6edf712a2de7fb 100644
--- a/tools/vcs/mach_commands.py
+++ b/tools/vcs/mach_commands.py
@@ -2,8 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-from __future__ import absolute_import, unicode_literals
-
 import json
 import logging
 import os
diff --git a/xpcom/base/ErrorList.py b/xpcom/base/ErrorList.py
index 2fd3b8b4b938ae802fe6bfef326fe30828322e87..00d84f9aaabac1ed05d2496a66baa1a9f473ab4a 100755
--- a/xpcom/base/ErrorList.py
+++ b/xpcom/base/ErrorList.py
@@ -1,6 +1,4 @@
 #!/usr/bin/env python
-from __future__ import absolute_import
-
 from collections import OrderedDict
 
 
diff --git a/xpcom/idl-parser/xpidl/header.py b/xpcom/idl-parser/xpidl/header.py
index c8b51f60f700459068a22016ce4c5bb6950ee59b..4b547694154e953d83ba7d62a8ce38964822bc82 100644
--- a/xpcom/idl-parser/xpidl/header.py
+++ b/xpcom/idl-parser/xpidl/header.py
@@ -7,8 +7,6 @@
 
 """Print a C++ header file for the IDL files specified on the command line"""
 
-from __future__ import absolute_import
-
 import itertools
 import os.path
 import re
diff --git a/xpcom/idl-parser/xpidl/jsonxpt.py b/xpcom/idl-parser/xpidl/jsonxpt.py
index 4b63d8ffb93e258d3bd60924d0c187ffca6a7da0..342188f6451b1022684792c6252b791c8f5c899e 100644
--- a/xpcom/idl-parser/xpidl/jsonxpt.py
+++ b/xpcom/idl-parser/xpidl/jsonxpt.py
@@ -7,8 +7,6 @@
 
 """Generate a json XPT typelib for an IDL file"""
 
-from __future__ import absolute_import
-
 import itertools
 import json
 
diff --git a/xpcom/idl-parser/xpidl/runtests.py b/xpcom/idl-parser/xpidl/runtests.py
index aa610cfdffd19c60d8af1d390c640ac25a238fe8..f209b5483a15bd545e5db87648c9030b703ac07f 100755
--- a/xpcom/idl-parser/xpidl/runtests.py
+++ b/xpcom/idl-parser/xpidl/runtests.py
@@ -5,8 +5,6 @@
 #
 # Unit tests for xpidl.py
 
-from __future__ import absolute_import
-
 import sys
 
 # Hack: the first entry in sys.path is the directory containing the script.
diff --git a/xpcom/idl-parser/xpidl/rust.py b/xpcom/idl-parser/xpidl/rust.py
index 1e35bf0187150339c8b62b20e7c9634a70a5c210..7c19bd01f12c4cd4875e03b0165a8c155e8d7a39 100644
--- a/xpcom/idl-parser/xpidl/rust.py
+++ b/xpcom/idl-parser/xpidl/rust.py
@@ -34,8 +34,6 @@
 # and when possible we should avoid doing so. We don't generate bindings for
 # these methods here currently.
 
-from __future__ import absolute_import
-
 import os.path
 import re
 
diff --git a/xpcom/idl-parser/xpidl/rust_macros.py b/xpcom/idl-parser/xpidl/rust_macros.py
index 00ec506d7b0ec1f7b3f85cfacd8a1b337fd8b2c4..d610a08d312a6d2487825cb8211d76ee3783ab61 100644
--- a/xpcom/idl-parser/xpidl/rust_macros.py
+++ b/xpcom/idl-parser/xpidl/rust_macros.py
@@ -6,8 +6,6 @@
 
 """Generate rust bindings information for the IDL file specified"""
 
-from __future__ import absolute_import
-
 from xpidl import rust, xpidl
 
 derive_method_tmpl = """\
diff --git a/xpcom/idl-parser/xpidl/xpidl.py b/xpcom/idl-parser/xpidl/xpidl.py
index 0cd3e6da47f38b6105f98dbe7127c1d0f1543f9e..925d588dd558bfb27ceca142be74979ffe067a92 100755
--- a/xpcom/idl-parser/xpidl/xpidl.py
+++ b/xpcom/idl-parser/xpidl/xpidl.py
@@ -7,8 +7,6 @@
 
 """A parser for cross-platform IDL (XPIDL) files."""
 
-from __future__ import absolute_import, print_function
-
 import os.path
 import re
 import sys