From f69e697461d715982ef4a4964d859e4a7c076e8a Mon Sep 17 00:00:00 2001
From: Marco Castelluccio <mcastelluccio@mozilla.com>
Date: Fri, 23 Dec 2022 22:45:46 +0000
Subject: [PATCH] Bug 1801836 - Remove no longer necessary 'from __future__'
 imports.
 r=linter-reviewers,glandium,webdriver-reviewers,perftest-reviewers,geckoview-reviewers,jld,ahal,owlish,afinder
 DONTBUILD

Differential Revision: https://phabricator.services.mozilla.com/D165395
---
 .ycm_extra_conf.py                                            | 1 -
 accessible/mac/SelectorMapGen.py                              | 2 --
 accessible/xpcom/AccEventGen.py                               | 2 --
 browser/app/macversion.py                                     | 2 --
 .../winlauncher/freestanding/gen_ntdll_freestanding_lib.py    | 2 --
 .../migration/tests/marionette/test_refresh_firefox.py        | 2 --
 .../search/test/marionette/test_engines_on_restart.py         | 2 --
 .../sessionstore/test/marionette/session_store_test_case.py   | 2 --
 .../marionette/test_restore_windows_after_close_last_tabs.py  | 2 --
 .../marionette/test_restore_windows_after_restart_and_quit.py | 2 --
 .../marionette/test_restore_windows_after_windows_shutdown.py | 2 --
 browser/components/shell/test/mac_desktop_image.py            | 2 --
 browser/locales/filter.py                                     | 2 --
 browser/locales/generate_ini.py                               | 2 --
 build/RunCbindgen.py                                          | 2 --
 build/build-clang/build-clang.py                              | 2 --
 build/checksums.py                                            | 2 --
 build/compare-mozconfig/compare-mozconfigs.py                 | 2 --
 build/mach_initialize.py                                      | 2 --
 build/upload_generated_sources.py                             | 2 --
 build/valgrind/mach_commands.py                               | 2 --
 build/valgrind/output_handler.py                              | 2 --
 build/variables.py                                            | 2 --
 client.py                                                     | 2 --
 config/MozZipFile.py                                          | 2 --
 config/check_js_msg_encoding.py                               | 2 --
 config/check_js_opcode.py                                     | 2 --
 config/check_macroassembler_style.py                          | 2 --
 config/check_source_count.py                                  | 2 --
 config/check_spidermonkey_style.py                            | 2 --
 config/check_vanilla_allocations.py                           | 2 --
 config/createprecomplete.py                                   | 2 --
 config/external/ffi/preprocess_libffi_asm.py                  | 2 --
 config/external/ffi/subst_header.py                           | 2 --
 config/external/icu/data/convert_icudata.py                   | 2 --
 config/make-stl-wrappers.py                                   | 2 --
 config/make-system-wrappers.py                                | 2 --
 config/make-windows-h-wrapper.py                              | 2 --
 config/mozunit/mozunit/__init__.py                            | 2 --
 config/mozunit/mozunit/mozunit.py                             | 2 --
 config/mozunit/mozunit/pytest_plugin.py                       | 2 --
 config/mozunit/setup.py                                       | 2 --
 config/nsinstall.py                                           | 2 --
 config/printprereleasesuffix.py                               | 2 --
 config/rebuild_check.py                                       | 2 --
 config/run-and-prefix.py                                      | 2 --
 config/run_spidermonkey_checks.py                             | 2 --
 config/tests/test_mozbuild_reading.py                         | 2 --
 config/tests/unit-mozunit.py                                  | 2 --
 config/tests/unit-nsinstall.py                                | 2 --
 config/tests/unit-printprereleasesuffix.py                    | 2 --
 config/tests/unitMozZipFile.py                                | 2 --
 configure.py                                                  | 3 ---
 devtools/client/netmonitor/test/file_ws_backend_wsh.py        | 2 --
 devtools/client/shared/remote-debugging/adb/xpcshell/adb.py   | 2 --
 .../shared/commands/resource/tests/websocket_backend_wsh.py   | 1 -
 devtools/shared/css/generated/mach_commands.py                | 1 -
 devtools/shared/webconsole/GenerateDataFromWebIdls.py         | 1 -
 devtools/shared/webconsole/GenerateReservedWordsJS.py         | 1 -
 docs/conf.py                                                  | 2 --
 dom/base/gen-usecounters.py                                   | 2 --
 dom/bindings/mach_commands.py                                 | 2 --
 dom/bindings/mozwebidlcodegen/__init__.py                     | 2 --
 dom/bindings/mozwebidlcodegen/test/test_mozwebidlcodegen.py   | 2 --
 dom/bindings/parser/WebIDL.py                                 | 2 --
 dom/bindings/parser/runtests.py                               | 2 --
 extensions/pref/autoconfig/test/marionette/test_autoconfig.py | 2 --
 gfx/layers/d3d11/genshaders.py                                | 2 --
 gfx/skia/generate_mozbuild.py                                 | 1 -
 gfx/thebes/gencjkcisvs.py                                     | 2 --
 intl/icu_sources_data.py                                      | 2 --
 intl/unicharutil/util/base_chars.py                           | 2 --
 ipc/ipdl/ipdl.py                                              | 2 --
 ipc/ipdl/ipdl/__init__.py                                     | 2 --
 ipc/ipdl/ipdl/checker.py                                      | 2 --
 ipc/ipdl/ipdl/type.py                                         | 2 --
 ipc/ipdl/msgtype-components                                   | 2 --
 ipc/ipdl/test/cxx/genIPDLUnitTests.py                         | 2 --
 js/src/builtin/embedjs.py                                     | 2 --
 js/src/builtin/intl/make_intl_data.py                         | 2 --
 js/src/devtools/rootAnalysis/explain.py                       | 2 --
 js/src/devtools/rootAnalysis/mach_commands.py                 | 2 --
 js/src/devtools/rootAnalysis/run-test.py                      | 2 --
 js/src/frontend/align_stack_comment.py                        | 2 --
 js/src/jit-test/jit_test.py                                   | 2 --
 js/src/tests/compare_bench.py                                 | 2 --
 js/src/tests/jstests.py                                       | 2 --
 js/src/tests/lib/jittests.py                                  | 2 --
 js/src/tests/lib/manifest.py                                  | 2 --
 js/src/tests/lib/results.py                                   | 2 --
 js/src/tests/lib/structuredlog.py                             | 2 --
 js/src/tests/lib/tasks_adb_remote.py                          | 2 --
 js/src/tests/lib/tasks_win.py                                 | 2 --
 js/src/tests/lib/tempfile.py                                  | 2 --
 .../tests/non262/String/make-normalize-generateddata-input.py | 2 --
 js/src/tests/parsemark.py                                     | 2 --
 js/src/tests/test262-export.py                                | 2 --
 js/src/tests/test262-update.py                                | 2 --
 js/src/util/make_unicode.py                                   | 2 --
 js/xpconnect/loader/script_cache.py                           | 2 --
 layout/base/tests/marionette/selection.py                     | 2 --
 layout/reftests/border-image/gen-refs.py                      | 2 --
 layout/reftests/fonts/gsubtest/makegsubfonts.py               | 2 --
 layout/reftests/fonts/mark-generate.py                        | 2 --
 layout/reftests/fonts/math/generate.py                        | 1 -
 layout/style/test/gen-css-properties.py                       | 2 --
 layout/tools/reftest/mach_commands.py                         | 2 --
 layout/tools/reftest/mach_test_package_commands.py            | 2 --
 layout/tools/reftest/output.py                                | 2 --
 layout/tools/reftest/reftest/__init__.py                      | 2 --
 layout/tools/reftest/reftestcommandline.py                    | 2 --
 layout/tools/reftest/remotereftest.py                         | 2 --
 layout/tools/reftest/runreftest.py                            | 2 --
 layout/tools/reftest/selftest/conftest.py                     | 2 --
 layout/tools/reftest/selftest/test_python_manifest_parser.py  | 2 --
 layout/tools/reftest/selftest/test_reftest_manifest_parser.py | 2 --
 layout/tools/reftest/selftest/test_reftest_output.py          | 2 --
 mach                                                          | 2 --
 memory/replace/dmd/dmd.py                                     | 4 +---
 memory/replace/dmd/test/scan-test.py                          | 2 --
 memory/replace/logalloc/replay/logalloc_munge.py              | 2 --
 mobile/android/gen_from_jinja.py                              | 2 --
 mobile/android/gradle.py                                      | 2 --
 mobile/android/locales/filter.py                              | 2 --
 mobile/android/mach_commands.py                               | 2 --
 mobile/locales/filter.py                                      | 2 --
 modules/libpref/init/generate_static_pref_list.py             | 2 --
 modules/libpref/test/test_generate_static_pref_list.py        | 2 --
 remote/mach_commands.py                                       | 2 --
 security/manager/tools/getCTKnownLogs.py                      | 2 --
 security/sandbox/test/mac_register_font.py                    | 2 --
 .../docker/firefox-flatpak/extract_locales_from_l10n_json.py  | 2 --
 .../docker/firefox-snap/extract_locales_from_l10n_json.py     | 2 --
 .../docker/funsize-update-generator/scripts/funsize.py        | 2 --
 taskcluster/docker/updatebot/run.py                           | 2 --
 taskcluster/mach_commands.py                                  | 2 --
 taskcluster/scripts/misc/fetch-chromium.py                    | 2 --
 taskcluster/scripts/misc/repack_rust.py                       | 2 --
 taskcluster/scripts/tester/run-wizard                         | 2 --
 taskcluster/test/conftest.py                                  | 2 --
 taskcluster/test/test_autoland.py                             | 2 --
 taskcluster/test/test_autoland_backstop.py                    | 2 --
 taskcluster/test/test_mach_try_auto.py                        | 2 --
 taskcluster/test/test_mozilla_central.py                      | 2 --
 toolkit/components/telemetry/build_scripts/gen_event_data.py  | 2 --
 toolkit/components/telemetry/build_scripts/gen_event_enum.py  | 2 --
 .../components/telemetry/build_scripts/gen_histogram_data.py  | 2 --
 .../components/telemetry/build_scripts/gen_histogram_enum.py  | 2 --
 .../components/telemetry/build_scripts/gen_histogram_phf.py   | 2 --
 .../components/telemetry/build_scripts/gen_process_data.py    | 2 --
 .../components/telemetry/build_scripts/gen_process_enum.py    | 2 --
 toolkit/components/telemetry/build_scripts/gen_scalar_data.py | 2 --
 toolkit/components/telemetry/build_scripts/gen_scalar_enum.py | 2 --
 .../telemetry/build_scripts/gen_userinteraction_data.py       | 2 --
 .../telemetry/build_scripts/gen_userinteraction_phf.py        | 2 --
 .../build_scripts/mozparsers/shared_telemetry_utils.py        | 2 --
 .../components/telemetry/tests/marionette/mach_commands.py    | 1 -
 toolkit/content/neterror/gen_aboutneterror_codes.py           | 2 --
 toolkit/crashreporter/tools/symbolstore.py                    | 2 --
 toolkit/crashreporter/tools/upload_symbols.py                 | 2 --
 toolkit/locales/gen_multilocale.py                            | 2 --
 toolkit/locales/generate_update_locale.py                     | 2 --
 toolkit/mozapps/extensions/gen_built_in_addons.py             | 2 --
 toolkit/mozapps/installer/find-dupes.py                       | 2 --
 toolkit/mozapps/installer/informulate.py                      | 2 --
 toolkit/mozapps/installer/packager.py                         | 2 --
 .../update/tests/marionette/test_no_window_update_restart.py  | 2 --
 toolkit/mozapps/update/updater/gen_cert_header.py             | 1 -
 toolkit/xre/dllservices/mozglue/gen_dll_blocklist_defs.py     | 2 --
 toolkit/xre/test/marionette/test_fission_autostart.py         | 2 --
 toolkit/xre/test/marionette/test_win32k_enrollment.py         | 2 --
 .../xre/test/marionette/test_win32k_enrollment.template.py    | 2 --
 tools/browsertime/mach_commands.py                            | 2 --
 tools/compare-locales/mach_commands.py                        | 2 --
 tools/crashreporter/system-symbols/mac/PackageSymbolDumper.py | 2 --
 tools/crashreporter/system-symbols/mac/get_update_packages.py | 2 --
 tools/crashreporter/system-symbols/mac/list-packages.py       | 2 --
 .../system-symbols/mac/scrapesymbols/gathersymbols.py         | 2 --
 tools/crashreporter/system-symbols/win/scrape-report.py       | 2 --
 tools/esmify/mach_commands.py                                 | 2 --
 tools/fuzzing/smoke/js.py                                     | 2 --
 tools/fuzzing/smoke/smoke.py                                  | 2 --
 tools/fuzzing/smoke/tests.py                                  | 2 --
 tools/jprof/split-profile.py                                  | 2 --
 tools/lint/eslint/__init__.py                                 | 2 --
 tools/lint/hooks.py                                           | 2 --
 tools/lint/libpref/__init__.py                                | 2 --
 tools/lint/perfdocs/framework_gatherers.py                    | 2 --
 tools/lint/perfdocs/gatherer.py                               | 2 --
 tools/lint/perfdocs/generator.py                              | 2 --
 tools/lint/perfdocs/logger.py                                 | 2 --
 tools/lint/perfdocs/perfdocs.py                               | 2 --
 tools/lint/perfdocs/utils.py                                  | 2 --
 tools/lint/perfdocs/verifier.py                               | 2 --
 tools/lint/python/black.py                                    | 2 --
 tools/lint/test/conftest.py                                   | 2 --
 tools/lint/test/test_codespell.py                             | 2 --
 tools/lint/test/test_file_license.py                          | 2 --
 tools/lint/test/test_file_perm.py                             | 2 --
 tools/lint/test/test_file_whitespace.py                       | 2 --
 tools/lint/test/test_lintpref.py                              | 2 --
 tools/lint/test/test_trojan_source.py                         | 2 --
 tools/mach_commands.py                                        | 2 --
 tools/moztreedocs/__init__.py                                 | 2 --
 tools/moztreedocs/mach_commands.py                            | 2 --
 tools/moztreedocs/package.py                                  | 2 --
 tools/moztreedocs/upload.py                                   | 2 --
 tools/phabricator/mach_commands.py                            | 2 --
 tools/power/mach_commands.py                                  | 2 --
 tools/rb/find_leakers.py                                      | 2 --
 tools/rb/fix_stacks.py                                        | 2 --
 tools/tryselect/selectors/chooser/__init__.py                 | 2 --
 tools/tryselect/selectors/chooser/app.py                      | 2 --
 tools/tryselect/test/conftest.py                              | 2 --
 tools/tryselect/test/test_again.py                            | 2 --
 tools/tryselect/test/test_auto.py                             | 2 --
 tools/tryselect/test/test_chooser.py                          | 2 --
 tools/tryselect/test/test_fuzzy.py                            | 2 --
 tools/tryselect/test/test_mozharness_integration.py           | 2 --
 tools/tryselect/test/test_presets.py                          | 2 --
 tools/tryselect/test/test_task_configs.py                     | 2 --
 tools/update-verify/python/util/commands.py                   | 2 --
 tools/update-verify/release/compare-directories.py            | 2 --
 tools/update-verify/release/replace-updater-certs.py          | 2 --
 tools/update-verify/scripts/chunked-verify.py                 | 2 --
 tools/vcs/mach_commands.py                                    | 2 --
 xpcom/base/ErrorList.py                                       | 2 --
 xpcom/idl-parser/xpidl/header.py                              | 2 --
 xpcom/idl-parser/xpidl/jsonxpt.py                             | 2 --
 xpcom/idl-parser/xpidl/runtests.py                            | 2 --
 xpcom/idl-parser/xpidl/rust.py                                | 2 --
 xpcom/idl-parser/xpidl/rust_macros.py                         | 2 --
 xpcom/idl-parser/xpidl/xpidl.py                               | 2 --
 233 files changed, 1 insertion(+), 459 deletions(-)

diff --git a/.ycm_extra_conf.py b/.ycm_extra_conf.py
index 26b584e90532f..46e1387ec9fb8 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 68074c8490b9f..1e406ade1f63a 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 311c53ff8f0a8..791b57827da6b 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 b6a21bc45743e..878fb096403a4 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 a69261cc3ae30..d9fe86d78e62b 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 4230175090976..3ce4f52192ee4 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 496e2ed913cf4..d7a0634e75892 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 7aa2fab9820e2..315adc5c4733a 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 0362070f06351..2022d8fb87419 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 b4e52db701db0..be17f08472b7c 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 8f8e0d512cd69..21eec455bbd5d 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 bdf2e842e639a..e3ccc77190b99 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 523dd50e29b37..9155947e436a9 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 6ae800f2764c8..ed936d8428a4b 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 a42a6a435c61c..f797cad385d7a 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 f186078c2a878..5345b0a3cb207 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 970e44d803231..1a393b4a6d977 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 7a46d61d7623a..210fd0568e5ac 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 8842bf92a4b8e..d6f054a3d2120 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 abfef92e3cecf..accce4beb9ddc 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 c3b8eab49db69..2b6fa79ce07b5 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 d3a84d3444341..613f7f8c1fb8b 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 ef2d6e6800f3c..357e05c37bf56 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 f092a6c92aace..ea16f95627c94 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 2d3ff00ced320..6e74bc1eba25d 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 56077ee2cf042..6543405f90443 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 2f24061beec65..b6a6c1f1c8346 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 bfe28c0d8d610..02a1cdfe32128 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 c465f6749a207..a0a3f2c6d4f7c 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 21d48fe223ece..3ad27cbe88325 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 8fbef54a15846..76ba122c1177d 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 7a442d65bf458..8c5fceefaa657 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 b4b6a8c5ae229..4808c3a7e4f27 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 49c524eddc512..e1448ff889a2c 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 b2ad5cee73757..b09affb9d85fb 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 0adbcb56d5a71..2fc3de42528d6 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 fc3fc6b29e6e7..a4b3d51af1e8c 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 a64c318993bcc..91d335ba420c1 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 c250385f9ebcd..51f02c874ee4b 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 66a126888dc90..b295ad881f6ae 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 6f8aef4c1a418..e05fc579e428e 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 b223c5116f9ca..c2771b9053b90 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 01dd5988b5be5..200a7ee19c918 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 7d4182da1d2a5..a3403e3d2aac3 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 537a411ec1c1c..a906fdc304f8b 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 d78fceb7ff3f9..af27e6743bca5 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 0d927caee7fa6..1d7ed98af31a9 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 6048d416120af..17fecf1452f5b 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 3023b6ed20442..6915d86718d69 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 3d893b7a94392..bfdf259e868cc 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 bd0296cc9f778..cebf48883ce86 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 332f4942db693..4965dc1df3e85 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 842cb08ad2089..fb2a1ad72498d 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 73abb6debe181..fe74ae2065a89 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 be21cf5bfeeca..4b720a1f862f1 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 564715114b700..170f15fe6c9c5 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 db9d2c9e84a0d..7a41ea49b25f4 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 b9006a89829fc..77940cae74e59 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 4ecc35feff816..cd8a47b648dca 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 32fac28412858..eee8ca316ee8e 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 6b38152f1f0db..bd0dba7b0bbca 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 c76400c21415a..b9bb17bf7cdcc 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 5078ee38a6bf4..5d54c2bae2737 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 25f5a4f059d69..44442f78fda2b 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 70b2361138128..6a467c0fa0dd7 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 abf16a7b190c9..95e540bd77ff1 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 74ee4059a9e55..0cdc0feede44d 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 49fed0500470d..b9701978d5c26 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 7c98b98657368..20e29297331b8 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 c61da73c42609..1797f2be6c958 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 0158f37295d29..0ebbab4938b3d 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 7133cf25b52fe..91d3ba3352550 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 365f950c568a4..1770416aaac96 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 a85a12e14a99a..50ceb4f95303c 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 eb969b4d60bc0..c93dc3e0e837e 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 eb71cae5c6515..f8689dee60d2d 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 35229182a22c8..4a01d3a71cc38 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 3636ec041683d..160b90a031c39 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 06510fe700527..a82aaab951e8b 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 a65764e0141e2..1f9d7ff30e472 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 09c1c64f5fd18..becfcf17a0935 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 a52ab2b3d4c0e..2127282a916fb 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 3eef3844e8446..2768f3be1b707 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 1c439df973481..28d5d8cf7fe17 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 e21ff3517f3b0..32765a20dd75d 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 daa28d3a7de2b..be8721a2fa5c8 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 c22937c2234fe..cc11c3dfc2943 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 233711019a8e3..de92067c3acbc 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 91fdd7b21c9f7..26c6821ed9db4 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 f9c7746c01b5a..f902060354273 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 3196cc139a28b..2f2d317d0208f 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 767b36461ca60..e03d253873c8f 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 0f3143f11707f..3a5b20298f3dc 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 bde9fbc5b520f..604864dce10b2 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 be1f71d2d96c1..5c3d2d3e442cd 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 8f26f7160d7a4..199747e7dd5cd 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 89539b680ad4f..ebcb388a29beb 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 739e7fc43fa4f..d2d67763d2e94 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 cf3899c76827f..617268fa9cb78 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 5f84b16dd7ac6..bd3a746fcf749 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 40e4e052dfcfa..6cfe155927d6a 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 5dfa38b38bed1..029d46f2a8993 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 66ce3c3247048..73d022e6be2b1 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 11bc7ecca72da..01e2d005480a4 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 54e1f05f501af..9981208c300ef 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 ec91b695cdc0a..1d6fad226db39 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 96595c3fe37ab..bd99ac439365c 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 56599647c5e75..4effd4cfda238 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 b181b3fb54472..fe435eb545925 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 e3ed9b53e13d4..f82a07ec44cd6 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 70958b2dc9c61..e2f0baff8c459 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 8b22fb2c78843..8d5e3fb44f007 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 052f037693f52..60806c202fc7e 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 0beeb096f1da2..1255caf8a7fee 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 339aadfeb317c..5ec9ce324cb60 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 c1b715cb288fe..009aa17a7fbb6 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 1ca48d42cdb54..ef343f754d742 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 7e00054bf5a15..5811a8fd6e6c9 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 9e39f20b55c95..2fa7fccbb1a86 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 f5d6fb4567fbf..c282b026934e3 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 4d40670fc8688..52d0032463a8e 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 1f3bbc122c82e..6c625226ee314 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 d9b355d987f87..9f310ddb7bd8c 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 6728f362eb63c..94a14b95c96e2 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 a6dd48bbb1f0d..14125cfe05bf9 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 3e753a14a3bfb..311d785f2c16d 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 5242c12214bcf..8656df681d881 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 6fa7104c47044..118aa47ec64fa 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 2fe60badf180b..200f24eec6fcf 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 3270f567ed167..a121283a6a94f 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 d537e5837609a..549becf565afe 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 d3cb62bcb3f48..b1eb745d7f9e5 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 c52b2dd471934..07bc007a31140 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 817389945dd8a..84fd2fbd0bfca 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 c4e2880d1c936..ad9bcb8788dff 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 d28f5e2bd0297..b752cb7d16bc6 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 a731ca4a13651..941aa846316eb 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 f22b2605be989..e0b10aaecbada 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 9892737352f04..99ecb6ff2fb66 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 15baf7453a7d4..9001958c6a218 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 4d49997618ef0..05d181620aa90 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 23eff55ce18f7..55ea11ca4d52a 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 379459fca1fc6..f26110b57f953 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 042b14a18a578..696a108db6713 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 ae90626a5d3e2..2e321cea7283a 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 3e106d328239d..9dd418b3dd040 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 eb33058aab899..a203dde9f9c1d 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 ad1c5bcbbf582..8f224c5140d14 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 779333d183b32..38c724550675e 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 7c6dff3401d4f..2a494689adde3 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 d8a1405e0c21f..bfe2d65e436b0 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 c5a41bb2c8011..6ef1f457b54b8 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 616f2a8918ef1..321cd047d749c 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 bd5b1131a3b4a..b12cbde2399b1 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 9731ec50d12c2..f1c7256414363 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 6c26b4c22f313..bf4a1356f2294 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 5c299683d4978..07709f5304b36 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 d2e601a503e00..806756422f74d 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 4d8a4c1837713..6826f4f17195e 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 71ecae1afa752..01e9aab9fb556 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 14e8c80cb2411..1d151b68bf7d6 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 af00cef8c9da9..30d492a27297d 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 3568afe1f6936..9e8078f2bcea7 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 7c865079caed6..1931481b7ca62 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 4cf1affc46d90..ec45e25f89a07 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 ec8d2de343c2b..29364045ddca1 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 e0035da2158a6..245efc774dd12 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 e01207dbcf216..da78cad674e21 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 eaa84b8293124..056db4d9951d9 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 9b27009844ec4..b830c0eacac8b 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 358fab276178b..d09331319b7e0 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 cac6e3e497c9a..30dc7fed33603 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 3caa13e5cde8c..4850c82b75f7b 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 ebd375290826c..56d101467bda5 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 d9614c54aa1a1..bfb3048d7c4ad 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 21a54b8d0489e..3192fa3ef009c 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 d6297df45e9f3..444c27be9dd45 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 0b54b673157dc..70be2a62a753f 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 16ba8bb638b92..9bc21801c3dae 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 7707479e37148..59c0777a9ea7d 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 3fd06ab584d35..d6ad08eb6a203 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 4c118f29ce1a9..e328be71d6a00 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 913798cb180c1..bc06e2427b8d0 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 1a73e5cfa49aa..c280c130c23ba 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 071706e688434..af3f5efc56fde 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 b46df71536592..fead62ec7e091 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 f59d3f11c38c0..e986be39d093c 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 37ea462e02e15..c85690879bef9 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 0c403567d87a0..02c13a103e484 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 cf49714f825ed..3f3a0acefa68e 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 2e1a66b717c5b..6f0a482d159c3 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 185fd0d915a75..b41edb1979c3c 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 68072c4179993..3bf20d33cc484 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 373b452fad055..db6f849922fdf 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 e98cdc24d7b53..8c44a56951295 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 eb76928aa588d..ca5adab7aef2b 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 7cf9a122410fe..8baae66b418e5 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 b7f0efac60344..b00b023baee92 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 a9f991eef2ce6..08d6a20eef0a6 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 ae167999232f9..51b6fc4795291 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 4fb3b8d23ce46..3e75b1675e49a 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 8a846ba1b8592..64a3789c37653 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 9b19117e6a1c1..50fdaf9849374 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 e0aab86b8e94b..7d13b4b635055 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 32a2c8d5268c9..737954f48660c 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 9b4b20e229790..b8db23ee879bf 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 beb7c14640cd5..ee98d8815b9d8 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 6cdfd45d40077..811defb314ddd 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 31bbf0ef39742..956dcdf440eaa 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 0359d6fefb5b8..9e9a37ac69a9f 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 5813363588ff0..398041df1de57 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 f9eac295cc5dc..51263a1845454 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 a1dfea498bb78..adbf6f33dd5ad 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 706b86d9b9852..7ffffc4b9b0df 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 68b04cc4e90df..0e5d9d6b6dcd8 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 cb0daf4252f6e..63f0fe6bd724e 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 615f8085243fb..885ed41a787d2 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 f88bd5c189fae..7391745bebda9 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 16cfc91d4e2db..b2585468f2619 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 38e34e3bdcd07..89cc810808c23 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 6883bd3e57e28..6c0eeadaa6780 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 acc8de3626def..cb2b2119ff770 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 b5fd901965dc4..f73bd55581d42 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 55b28de0e65cc..9e981fbfe0b28 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 3410a02f24615..8c4320d4ccfee 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 d773470bed64c..4623a23634f0f 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 2fd3b8b4b938a..00d84f9aaabac 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 c8b51f60f7004..4b547694154e9 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 4b63d8ffb93e2..342188f6451b1 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 aa610cfdffd19..f209b5483a15b 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 1e35bf0187150..7c19bd01f12c4 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 00ec506d7b0ec..d610a08d312a6 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 0cd3e6da47f38..925d588dd558b 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
-- 
GitLab