JJMC89 submitted this change.

View Change


Approvals: JJMC89: Verified; Looks good to me, approved
update all shebangs to use env for portability

see T326512#8616170

Change-Id: I09d6fd68158c529d18da587e9e1574abe5076df6
---
M scripts/redirect.py
M tests/collections_tests.py
M tests/generate_user_files_tests.py
M tests/tools_chars_tests.py
M scripts/harvest_template.py
M tests/interwiki_graph_tests.py
M tests/datasite_tests.py
M scripts/category_redirect.py
M tests/replacebot_tests.py
M scripts/clean_sandbox.py
M tests/page_tests.py
M tests/interwikidata_tests.py
M pywikibot/scripts/version.py
M tests/mediawikiversion_tests.py
M pywikibot/scripts/shell.py
M scripts/protect.py
M tests/script_tests.py
M tests/oauth_tests.py
M scripts/commonscat.py
M scripts/noreferences.py
M scripts/watchlist.py
M tests/reflinks_tests.py
M tests/namespace_tests.py
M tests/basesite_tests.py
M tests/memento_tests.py
M tests/site_generators_tests.py
M scripts/create_isbn_edition.py
M scripts/image.py
M scripts/dataextend.py
M scripts/newitem.py
M make_dist.py
M scripts/replace.py
M tests/cache_tests.py
M scripts/claimit.py
M tests/noreferences_tests.py
M tests/logentries_tests.py
M tests/cosmetic_changes_tests.py
M scripts/transferbot.py
M pwb.py
M scripts/illustrate_wikidata.py
M tests/l10n_tests.py
M scripts/commons_information.py
M tests/redirect_bot_tests.py
M tests/category_tests.py
M tests/linter_tests.py
M tests/harvest_template_tests.py
M tests/data_ingestion_tests.py
M tests/tools_tests.py
M scripts/interwiki.py
M tests/plural_tests.py
M tests/gui_tests.py
M tests/user_tests.py
M scripts/fixing_redirects.py
M tests/pwb_tests.py
M tests/i18n_tests.py
M tests/http_tests.py
M tests/date_tests.py
M tests/eventstreams_tests.py
M scripts/welcome.py
M tests/site_tests.py
M scripts/interwikidata.py
M tests/token_tests.py
M scripts/maintenance/make_i18n_dict.py
M tests/site_detect_tests.py
M scripts/revertbot.py
M scripts/data_ingestion.py
M scripts/djvutext.py
M scripts/coordinate_import.py
M scripts/replicate_wiki.py
M tests/interwiki_link_tests.py
M tests/fixes_tests.py
M tests/pwb/print_argv.py
M tests/upload_tests.py
M tests/flow_thanks_tests.py
M tests/diff_tests.py
M scripts/delinker.py
M tests/pagegenerators_tests.py
M tests/pwb/print_env.py
M tests/tools_formatter_tests.py
M scripts/category.py
M scripts/patrol.py
M tests/djvu_tests.py
M tests/xmlreader_tests.py
M tests/protectbot_tests.py
M tests/flow_tests.py
M tests/uploadscript_tests.py
M scripts/upload.py
M tests/link_tests.py
M setup.py
M tests/pwb/print_unicode.py
M scripts/weblinkchecker.py
M tests/tests_tests.py
M tests/uploadbot_tests.py
M pywikibot/scripts/generate_family_file.py
M scripts/listpages.py
M tests/login_tests.py
M tests/make_dist_tests.py
M scripts/imagetransfer.py
M tests/ui_tests.py
M tests/category_bot_tests.py
M scripts/basic.py
M scripts/maintenance/cache.py
M scripts/speedy_delete.py
M tests/pwb/print_locals.py
M tests/deletionbot_tests.py
M scripts/nowcommons.py
M tests/time_tests.py
M scripts/checkimages.py
M scripts/template.py
M tests/edit_tests.py
M scripts/pagefromfile.py
M tests/thanks_tests.py
M tests/mysql_tests.py
M tests/interwikimap_tests.py
M pywikibot/scripts/preload_sites.py
M tests/ui_options_tests.py
M tests/wikibase_edit_tests.py
M tests/dry_site_tests.py
M scripts/maintenance/wikimedia_sites.py
M tests/checkimages_tests.py
M tests/site_login_logout_tests.py
M scripts/add_text.py
M scripts/cosmetic_changes.py
M tests/add_text_tests.py
M pywikibot/scripts/login.py
M scripts/misspelling.py
M scripts/blockpageschecker.py
M tests/proofreadpage_tests.py
M tests/generate_family_file_tests.py
M tests/family_tests.py
M tests/echo_tests.py
M tests/textlib_tests.py
M scripts/touch.py
M tests/wikibase_tests.py
M tests/titletranslate_tests.py
M tests/flow_edit_tests.py
M scripts/unusedfiles.py
M tests/edit_failure_tests.py
M tests/paraminfo_tests.py
M scripts/maintenance/colors.py
M tests/bot_tests.py
M pywikibot/scripts/generate_user_files.py
M tests/siteinfo_tests.py
M tests/sparql_tests.py
M scripts/reflinks.py
M scripts/download_dump.py
M scripts/category_graph.py
M scripts/solve_disambiguation.py
M scripts/parser_function_count.py
M tests/fixing_redirects_tests.py
M tests/template_bot_tests.py
M tests/tools_threading_tests.py
M tests/wikistats_tests.py
M scripts/delete.py
M scripts/templatecount.py
M scripts/change_pagelang.py
M scripts/archivebot.py
M tests/timestripper_tests.py
M tests/patrolbot_tests.py
M tests/tools_deprecate_tests.py
M tests/dry_api_tests.py
M tests/archivebot_tests.py
M tests/file_tests.py
M scripts/movepages.py
M tests/api_tests.py
M tests/site_decorators_tests.py
166 files changed, 177 insertions(+), 166 deletions(-)

diff --git a/make_dist.py b/make_dist.py
index d58c8f5..0d354b4 100755
--- a/make_dist.py
+++ b/make_dist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script to create a new distribution.

The following options are supported:
diff --git a/pwb.py b/pwb.py
index c01f42f..50ec1e5 100755
--- a/pwb.py
+++ b/pwb.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""pwb caller script to invoke the :mod:`pywikibot.scripts.wrapper` script.

.. versionadded:: 8.0
diff --git a/pywikibot/scripts/generate_family_file.py b/pywikibot/scripts/generate_family_file.py
index 16e2171..d5c00cc 100755
--- a/pywikibot/scripts/generate_family_file.py
+++ b/pywikibot/scripts/generate_family_file.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""This script generates a family file from a given URL.

This script must be invoked with the pwb wrapper script/code entry point.
diff --git a/pywikibot/scripts/generate_user_files.py b/pywikibot/scripts/generate_user_files.py
index 3df1530..93e32eb 100755
--- a/pywikibot/scripts/generate_user_files.py
+++ b/pywikibot/scripts/generate_user_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script to create user-config.py. Other file names are not supported.

.. versionchanged:: 7.0
diff --git a/pywikibot/scripts/login.py b/pywikibot/scripts/login.py
index cbdd9a2..dc7d636 100755
--- a/pywikibot/scripts/login.py
+++ b/pywikibot/scripts/login.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to log the bot in to a wiki account.

diff --git a/pywikibot/scripts/preload_sites.py b/pywikibot/scripts/preload_sites.py
index 533f739..47a66b6 100755
--- a/pywikibot/scripts/preload_sites.py
+++ b/pywikibot/scripts/preload_sites.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script that preloads site and user info for all sites of given family.

The following parameters are supported:
diff --git a/pywikibot/scripts/shell.py b/pywikibot/scripts/shell.py
index ae36d81..1b53993 100755
--- a/pywikibot/scripts/shell.py
+++ b/pywikibot/scripts/shell.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Spawns an interactive Python shell and imports the pywikibot library.

diff --git a/pywikibot/scripts/version.py b/pywikibot/scripts/version.py
index 8886f6f..12f542d 100755
--- a/pywikibot/scripts/version.py
+++ b/pywikibot/scripts/version.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script to determine the Pywikibot version (tag, revision and date).

.. versionchanged:: 7.0
diff --git a/scripts/add_text.py b/scripts/add_text.py
index 26e3b12..db8e52f 100755
--- a/scripts/add_text.py
+++ b/scripts/add_text.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
Append text to the top or bottom of a page.

diff --git a/scripts/archivebot.py b/scripts/archivebot.py
index be3ab17..baba69b 100755
--- a/scripts/archivebot.py
+++ b/scripts/archivebot.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""archivebot.py - discussion page archiving bot.

usage:
diff --git a/scripts/basic.py b/scripts/basic.py
index 451bb31..886ab81 100755
--- a/scripts/basic.py
+++ b/scripts/basic.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
An incomplete sample script.

diff --git a/scripts/blockpageschecker.py b/scripts/blockpageschecker.py
index 36a6085..900c1a2 100755
--- a/scripts/blockpageschecker.py
+++ b/scripts/blockpageschecker.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
A bot to remove stale protection templates from pages that are not protected.

diff --git a/scripts/category.py b/scripts/category.py
index 9046ce2..6df0aea 100755
--- a/scripts/category.py
+++ b/scripts/category.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script to manage categories.

Syntax:
diff --git a/scripts/category_graph.py b/scripts/category_graph.py
index 14f0d1c..d2b17c8 100755
--- a/scripts/category_graph.py
+++ b/scripts/category_graph.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""Visualizes category hierarchy.

Generates graphical representation in formats dot, svg and html5
diff --git a/scripts/category_redirect.py b/scripts/category_redirect.py
index 532116a..6cb41ee 100755
--- a/scripts/category_redirect.py
+++ b/scripts/category_redirect.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""This bot will move pages out of redirected categories.

The bot will look for categories that are marked with a category redirect
diff --git a/scripts/change_pagelang.py b/scripts/change_pagelang.py
index 06817bf..6dc7007 100755
--- a/scripts/change_pagelang.py
+++ b/scripts/change_pagelang.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This script changes the content language of pages.

diff --git a/scripts/checkimages.py b/scripts/checkimages.py
index ae6d170..8c0f4b9 100755
--- a/scripts/checkimages.py
+++ b/scripts/checkimages.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to check recently uploaded files.

diff --git a/scripts/claimit.py b/scripts/claimit.py
index ac4f9e6..71ee8ab 100755
--- a/scripts/claimit.py
+++ b/scripts/claimit.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
A script that adds claims to Wikidata items based on a list of pages.

diff --git a/scripts/clean_sandbox.py b/scripts/clean_sandbox.py
index b0a97b9..10bca7c 100755
--- a/scripts/clean_sandbox.py
+++ b/scripts/clean_sandbox.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This bot resets a (user) sandbox with predefined text.

diff --git a/scripts/commons_information.py b/scripts/commons_information.py
index de812e3..116eefb 100755
--- a/scripts/commons_information.py
+++ b/scripts/commons_information.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Insert a language template into the description field."""
#
# (C) Pywikibot team, 2015-2023
diff --git a/scripts/commonscat.py b/scripts/commonscat.py
index 192046c..8f89dfe 100755
--- a/scripts/commonscat.py
+++ b/scripts/commonscat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
With this tool you can add the template {{commonscat}} to categories.

diff --git a/scripts/coordinate_import.py b/scripts/coordinate_import.py
index 04e8623..392c671 100755
--- a/scripts/coordinate_import.py
+++ b/scripts/coordinate_import.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
Coordinate importing script.

diff --git a/scripts/cosmetic_changes.py b/scripts/cosmetic_changes.py
index 857fb02..72f57ad 100755
--- a/scripts/cosmetic_changes.py
+++ b/scripts/cosmetic_changes.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This module can do slight modifications to tidy a wiki page's source code.

diff --git a/scripts/create_isbn_edition.py b/scripts/create_isbn_edition.py
index 29ef0b1..bf344b9 100755
--- a/scripts/create_isbn_edition.py
+++ b/scripts/create_isbn_edition.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""Pywikibot script to load ISBN related data into Wikidata.

Pywikibot script to get ISBN data from a digital library,
diff --git a/scripts/data_ingestion.py b/scripts/data_ingestion.py
index 4f79957..6f032da 100755
--- a/scripts/data_ingestion.py
+++ b/scripts/data_ingestion.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
A generic bot to do data ingestion (batch uploading) of photos or other files.

diff --git a/scripts/dataextend.py b/scripts/dataextend.py
index 6799f31..d40e204 100755
--- a/scripts/dataextend.py
+++ b/scripts/dataextend.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script to add properties, identifiers and sources to WikiBase items.

Usage:
diff --git a/scripts/delete.py b/scripts/delete.py
index 449e741..39b39e1 100755
--- a/scripts/delete.py
+++ b/scripts/delete.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This script can be used to delete and undelete pages en masse.

diff --git a/scripts/delinker.py b/scripts/delinker.py
index cd26a57..6282cd6 100755
--- a/scripts/delinker.py
+++ b/scripts/delinker.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Delink removed files from wiki.

This script keeps track of image deletions and delinks removed files
diff --git a/scripts/djvutext.py b/scripts/djvutext.py
index 6203dc7..2fdad67 100755
--- a/scripts/djvutext.py
+++ b/scripts/djvutext.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This bot uploads text from djvu files onto pages in the "Page" namespace.

diff --git a/scripts/download_dump.py b/scripts/download_dump.py
index 603e995..9993e4f 100755
--- a/scripts/download_dump.py
+++ b/scripts/download_dump.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This bot downloads dump from dumps.wikimedia.org.

diff --git a/scripts/fixing_redirects.py b/scripts/fixing_redirects.py
index defde99..30a2f66 100755
--- a/scripts/fixing_redirects.py
+++ b/scripts/fixing_redirects.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Correct all redirect links in featured pages or only one page of each wiki.

diff --git a/scripts/harvest_template.py b/scripts/harvest_template.py
index e50668e..6acabdc 100755
--- a/scripts/harvest_template.py
+++ b/scripts/harvest_template.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
Template harvesting script.

diff --git a/scripts/illustrate_wikidata.py b/scripts/illustrate_wikidata.py
index 1d98c73..af8881d 100755
--- a/scripts/illustrate_wikidata.py
+++ b/scripts/illustrate_wikidata.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Bot to add images to Wikidata items.

diff --git a/scripts/image.py b/scripts/image.py
index 363707d..1b5d05d 100755
--- a/scripts/image.py
+++ b/scripts/image.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This script can be used to change one image to another or remove an image.

diff --git a/scripts/imagetransfer.py b/scripts/imagetransfer.py
index bb5ae71..a11c743 100755
--- a/scripts/imagetransfer.py
+++ b/scripts/imagetransfer.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to copy images to Wikimedia Commons, or to another wiki.

diff --git a/scripts/interwiki.py b/scripts/interwiki.py
index c70e6ca..d503d69 100755
--- a/scripts/interwiki.py
+++ b/scripts/interwiki.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to check language links for general pages.

diff --git a/scripts/interwikidata.py b/scripts/interwikidata.py
index 7326b3d..ef4f49c 100755
--- a/scripts/interwikidata.py
+++ b/scripts/interwikidata.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to handle interwiki links based on Wikibase.

diff --git a/scripts/listpages.py b/scripts/listpages.py
index fd4f662..7b225e6 100755
--- a/scripts/listpages.py
+++ b/scripts/listpages.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
Print a list of pages, as defined by page generator parameters.

diff --git a/scripts/maintenance/cache.py b/scripts/maintenance/cache.py
index 9ae4129..1918d6a 100755
--- a/scripts/maintenance/cache.py
+++ b/scripts/maintenance/cache.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
This script runs commands on each entry in the API caches.

diff --git a/scripts/maintenance/colors.py b/scripts/maintenance/colors.py
index 913ba39..4c7910b 100755
--- a/scripts/maintenance/colors.py
+++ b/scripts/maintenance/colors.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Utility to show pywikibot colors."""
#
# (C) Pywikibot team, 2016-2022
diff --git a/scripts/maintenance/make_i18n_dict.py b/scripts/maintenance/make_i18n_dict.py
index 5e9768b..ce457e0 100755
--- a/scripts/maintenance/make_i18n_dict.py
+++ b/scripts/maintenance/make_i18n_dict.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Generate an i18n file from a given script.

diff --git a/scripts/maintenance/wikimedia_sites.py b/scripts/maintenance/wikimedia_sites.py
index 56a37b5..67d35b8 100755
--- a/scripts/maintenance/wikimedia_sites.py
+++ b/scripts/maintenance/wikimedia_sites.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script that updates the language lists in Wikimedia family files.

Usage:
diff --git a/scripts/misspelling.py b/scripts/misspelling.py
index e72fd16..fba59c8 100755
--- a/scripts/misspelling.py
+++ b/scripts/misspelling.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This script fixes links that contain common spelling mistakes.

diff --git a/scripts/movepages.py b/scripts/movepages.py
index 2022e43..f9f9e77 100755
--- a/scripts/movepages.py
+++ b/scripts/movepages.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This script can move pages.

diff --git a/scripts/newitem.py b/scripts/newitem.py
index 510fe29..c4a1f5c 100755
--- a/scripts/newitem.py
+++ b/scripts/newitem.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This script creates new items on Wikidata based on certain criteria.

diff --git a/scripts/noreferences.py b/scripts/noreferences.py
index 7460069..5be051a 100755
--- a/scripts/noreferences.py
+++ b/scripts/noreferences.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This script adds a missing references section to pages.

diff --git a/scripts/nowcommons.py b/scripts/nowcommons.py
index 317c08d..2e8a1fc 100755
--- a/scripts/nowcommons.py
+++ b/scripts/nowcommons.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
Script to delete files that are also present on Wikimedia Commons.

diff --git a/scripts/pagefromfile.py b/scripts/pagefromfile.py
index 6b506f8..1852105 100755
--- a/scripts/pagefromfile.py
+++ b/scripts/pagefromfile.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
Bot to upload pages from a text file.

diff --git a/scripts/parser_function_count.py b/scripts/parser_function_count.py
index 134a807..2e12e9a 100755
--- a/scripts/parser_function_count.py
+++ b/scripts/parser_function_count.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Used to find expensive templates that are subject to be converted to Lua.

diff --git a/scripts/patrol.py b/scripts/patrol.py
index 16e14f7..0e0c359 100755
--- a/scripts/patrol.py
+++ b/scripts/patrol.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
The bot is meant to mark the edits based on info obtained by whitelist.

diff --git a/scripts/protect.py b/scripts/protect.py
index b80d393..e8697de 100755
--- a/scripts/protect.py
+++ b/scripts/protect.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This script can be used to protect and unprotect pages en masse.

diff --git a/scripts/redirect.py b/scripts/redirect.py
index ad2847b..45d138e 100755
--- a/scripts/redirect.py
+++ b/scripts/redirect.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to resolve double redirects, and to delete broken redirects.

diff --git a/scripts/reflinks.py b/scripts/reflinks.py
index 2647f67..bd3de5b 100755
--- a/scripts/reflinks.py
+++ b/scripts/reflinks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Fetch and add titles for bare links in references.

diff --git a/scripts/replace.py b/scripts/replace.py
index 9a3c511..2a19090 100755
--- a/scripts/replace.py
+++ b/scripts/replace.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
This bot will make direct text replacements.

diff --git a/scripts/replicate_wiki.py b/scripts/replicate_wiki.py
index 7655fed..3fa9ece 100755
--- a/scripts/replicate_wiki.py
+++ b/scripts/replicate_wiki.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This bot replicates pages in a wiki to a second wiki within one family.

diff --git a/scripts/revertbot.py b/scripts/revertbot.py
index f22665b..5edf9c2 100755
--- a/scripts/revertbot.py
+++ b/scripts/revertbot.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
This script can be used for reverting certain edits.

diff --git a/scripts/solve_disambiguation.py b/scripts/solve_disambiguation.py
index bc30d27..2bd8527 100755
--- a/scripts/solve_disambiguation.py
+++ b/scripts/solve_disambiguation.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to help a human solve disambiguations by presenting a set of options.

diff --git a/scripts/speedy_delete.py b/scripts/speedy_delete.py
index 623ef01..339a095 100755
--- a/scripts/speedy_delete.py
+++ b/scripts/speedy_delete.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Help sysops to quickly check and/or delete pages listed for speedy deletion.

diff --git a/scripts/template.py b/scripts/template.py
index f28a38d..f8a1081 100755
--- a/scripts/template.py
+++ b/scripts/template.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
Very simple script to replace a template with another one.

diff --git a/scripts/templatecount.py b/scripts/templatecount.py
index fb48d99..a81d559 100755
--- a/scripts/templatecount.py
+++ b/scripts/templatecount.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Display the list of pages transcluding a given list of templates.

diff --git a/scripts/touch.py b/scripts/touch.py
index f4b02ce..fbd082d 100755
--- a/scripts/touch.py
+++ b/scripts/touch.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This bot goes over multiple pages of a wiki, and edits them without changes.

diff --git a/scripts/transferbot.py b/scripts/transferbot.py
index dfcb295..2e3e7a9 100755
--- a/scripts/transferbot.py
+++ b/scripts/transferbot.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
r"""
This script transfers pages from a source wiki to a target wiki.

diff --git a/scripts/unusedfiles.py b/scripts/unusedfiles.py
index 5815d09..4619760 100755
--- a/scripts/unusedfiles.py
+++ b/scripts/unusedfiles.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This bot appends some text to all unused images and notifies uploaders.

diff --git a/scripts/upload.py b/scripts/upload.py
index fd1944b..d37d448 100755
--- a/scripts/upload.py
+++ b/scripts/upload.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to upload images to Wikipedia.

diff --git a/scripts/watchlist.py b/scripts/watchlist.py
index de46781..7aa0917 100755
--- a/scripts/watchlist.py
+++ b/scripts/watchlist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Allows access to the bot account's watchlist.

diff --git a/scripts/weblinkchecker.py b/scripts/weblinkchecker.py
index 65c3790..680a3db 100755
--- a/scripts/weblinkchecker.py
+++ b/scripts/weblinkchecker.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
This bot is used for checking external links found at the wiki.

diff --git a/scripts/welcome.py b/scripts/welcome.py
index 2168ad0..26cb1db 100755
--- a/scripts/welcome.py
+++ b/scripts/welcome.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Script to welcome new users.

diff --git a/setup.py b/setup.py
index 1f9e32f..e2d203f 100755
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Installer script for Pywikibot framework.

**How to create a new distribution:**
diff --git a/tests/add_text_tests.py b/tests/add_text_tests.py
index 0e7bc62..0e9b385 100755
--- a/tests/add_text_tests.py
+++ b/tests/add_text_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test add_text script."""
#
# (C) Pywikibot team, 2016-2022
diff --git a/tests/api_tests.py b/tests/api_tests.py
index af90c82..56580d4 100755
--- a/tests/api_tests.py
+++ b/tests/api_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""API test module."""
#
# (C) Pywikibot team, 2007-2023
diff --git a/tests/archivebot_tests.py b/tests/archivebot_tests.py
index 198fa06..73283e6 100755
--- a/tests/archivebot_tests.py
+++ b/tests/archivebot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for archivebot scripts."""
#
# (C) Pywikibot team, 2014-2023
diff --git a/tests/basesite_tests.py b/tests/basesite_tests.py
index 70b5869..aaab7cb 100755
--- a/tests/basesite_tests.py
+++ b/tests/basesite_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the site module."""
#
# (C) Pywikibot team, 2008-2022
diff --git a/tests/bot_tests.py b/tests/bot_tests.py
index 0d11ca5..b2a4c5b 100755
--- a/tests/bot_tests.py
+++ b/tests/bot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Bot tests."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/cache_tests.py b/tests/cache_tests.py
index 0e650db..761ec32 100755
--- a/tests/cache_tests.py
+++ b/tests/cache_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""API Request cache tests."""
#
# (C) Pywikibot team, 2012-2023
diff --git a/tests/category_bot_tests.py b/tests/category_bot_tests.py
index 4ad45a0..2872cf0 100755
--- a/tests/category_bot_tests.py
+++ b/tests/category_bot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the category bot script."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/category_tests.py b/tests/category_tests.py
index f2ea9cf..bb27d10 100755
--- a/tests/category_tests.py
+++ b/tests/category_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the Category class."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/checkimages_tests.py b/tests/checkimages_tests.py
index 1bfb9ed..3e2d9a7 100755
--- a/tests/checkimages_tests.py
+++ b/tests/checkimages_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Unit tests for checkimages script."""
#
# (C) Pywikibot team, 2015-2023
diff --git a/tests/collections_tests.py b/tests/collections_tests.py
index 2d9096d..821a738 100755
--- a/tests/collections_tests.py
+++ b/tests/collections_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the Wikidata parts of the page module."""
#
# (C) Pywikibot team, 2019-2022
diff --git a/tests/cosmetic_changes_tests.py b/tests/cosmetic_changes_tests.py
index 6d38f91..9073fac 100755
--- a/tests/cosmetic_changes_tests.py
+++ b/tests/cosmetic_changes_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test cosmetic_changes module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/data_ingestion_tests.py b/tests/data_ingestion_tests.py
index 8dd315f..df851b0 100755
--- a/tests/data_ingestion_tests.py
+++ b/tests/data_ingestion_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Unit tests for data_ingestion.py script."""
#
# (C) Pywikibot team, 2012-2022
diff --git a/tests/datasite_tests.py b/tests/datasite_tests.py
index 25c2a0d..d602374 100755
--- a/tests/datasite_tests.py
+++ b/tests/datasite_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the site module."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/date_tests.py b/tests/date_tests.py
index edc43bd..03cbd37 100755
--- a/tests/date_tests.py
+++ b/tests/date_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the date module."""
#
# (C) Pywikibot team, 2012-2022
diff --git a/tests/deletionbot_tests.py b/tests/deletionbot_tests.py
index e5ff79d..30de871 100755
--- a/tests/deletionbot_tests.py
+++ b/tests/deletionbot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for scripts/delete.py."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/diff_tests.py b/tests/diff_tests.py
index 4d17a8b..2ff9eb8 100755
--- a/tests/diff_tests.py
+++ b/tests/diff_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test diff module."""
#
# (C) Pywikibot team, 2016-2022
diff --git a/tests/djvu_tests.py b/tests/djvu_tests.py
index e4b82fc..6cdcf95 100755
--- a/tests/djvu_tests.py
+++ b/tests/djvu_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Unit tests for djvu.py."""

#
diff --git a/tests/dry_api_tests.py b/tests/dry_api_tests.py
index d1d6797..dd0ec6e 100755
--- a/tests/dry_api_tests.py
+++ b/tests/dry_api_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""API tests which do not interact with a site."""
#
# (C) Pywikibot team, 2012-2023
diff --git a/tests/dry_site_tests.py b/tests/dry_site_tests.py
index 9f27752..5b5c6e0 100755
--- a/tests/dry_site_tests.py
+++ b/tests/dry_site_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests against a fake Site object."""
#
# (C) Pywikibot team, 2012-2022
diff --git a/tests/echo_tests.py b/tests/echo_tests.py
index ca05990..13cfd27 100755
--- a/tests/echo_tests.py
+++ b/tests/echo_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test echo module."""
#
# (C) Pywikibot team, 2019-2022
diff --git a/tests/edit_failure_tests.py b/tests/edit_failure_tests.py
index 6ffb497..b09abf6 100755
--- a/tests/edit_failure_tests.py
+++ b/tests/edit_failure_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Tests for edit failures.

diff --git a/tests/edit_tests.py b/tests/edit_tests.py
index 715588b..cb212d9 100755
--- a/tests/edit_tests.py
+++ b/tests/edit_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for editing pages."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/eventstreams_tests.py b/tests/eventstreams_tests.py
index 7f69c9f..65dc347 100755
--- a/tests/eventstreams_tests.py
+++ b/tests/eventstreams_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the eventstreams module."""
#
# (C) Pywikibot team, 2017-2022
diff --git a/tests/family_tests.py b/tests/family_tests.py
index a1d649c..2e65095 100755
--- a/tests/family_tests.py
+++ b/tests/family_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the family module."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/file_tests.py b/tests/file_tests.py
index 4004df3..38325c8 100755
--- a/tests/file_tests.py
+++ b/tests/file_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""FilePage tests."""
#
# (C) Pywikibot team, 2014-2023
diff --git a/tests/fixes_tests.py b/tests/fixes_tests.py
index 8bff0ca..67827cb 100755
--- a/tests/fixes_tests.py
+++ b/tests/fixes_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for fixes module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/fixing_redirects_tests.py b/tests/fixing_redirects_tests.py
index 8c7272f..3245389 100755
--- a/tests/fixing_redirects_tests.py
+++ b/tests/fixing_redirects_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test fixing redirects bot module."""
#
# (C) Pywikibot team, 2018-2022
diff --git a/tests/flow_edit_tests.py b/tests/flow_edit_tests.py
index 20e797e..cca627f 100755
--- a/tests/flow_edit_tests.py
+++ b/tests/flow_edit_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Edit tests for the flow module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/flow_tests.py b/tests/flow_tests.py
index f9d0896..4a0ab8f 100755
--- a/tests/flow_tests.py
+++ b/tests/flow_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the flow module."""
#
# (C) Pywikibot team, 2015-2023
diff --git a/tests/flow_thanks_tests.py b/tests/flow_thanks_tests.py
index 47fd61c..21d54db 100755
--- a/tests/flow_thanks_tests.py
+++ b/tests/flow_thanks_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for thanks-related code."""
#
# (C) Pywikibot team, 2016-2023
diff --git a/tests/generate_family_file_tests.py b/tests/generate_family_file_tests.py
index 6ed0783..07cd30a 100755
--- a/tests/generate_family_file_tests.py
+++ b/tests/generate_family_file_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test generate_family_file script."""
#
# (C) Pywikibot team, 2018-2022
diff --git a/tests/generate_user_files_tests.py b/tests/generate_user_files_tests.py
index 763ee86..0034eb9 100755
--- a/tests/generate_user_files_tests.py
+++ b/tests/generate_user_files_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test generate_user_files script."""
#
# (C) Pywikibot team, 2018-2023
diff --git a/tests/gui_tests.py b/tests/gui_tests.py
index f68dd9a..b25c690 100755
--- a/tests/gui_tests.py
+++ b/tests/gui_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the Tk UI."""
#
# (C) Pywikibot team, 2008-2023
diff --git a/tests/harvest_template_tests.py b/tests/harvest_template_tests.py
index e1ef8ca..eca883c 100755
--- a/tests/harvest_template_tests.py
+++ b/tests/harvest_template_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for scripts/harvest_template.py."""
#
# (C) Pywikibot team, 2022-2023
diff --git a/tests/http_tests.py b/tests/http_tests.py
index f19732f..6d39fca 100755
--- a/tests/http_tests.py
+++ b/tests/http_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for http module."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/i18n_tests.py b/tests/i18n_tests.py
index 7f3de2c..b39ad00 100755
--- a/tests/i18n_tests.py
+++ b/tests/i18n_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test i18n module."""
#
# (C) Pywikibot team, 2007-2023
diff --git a/tests/interwiki_graph_tests.py b/tests/interwiki_graph_tests.py
index a89e110..ec8ed08 100755
--- a/tests/interwiki_graph_tests.py
+++ b/tests/interwiki_graph_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test Interwiki Graph functionality."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/interwiki_link_tests.py b/tests/interwiki_link_tests.py
index aa07bfa..d7cf6fb 100755
--- a/tests/interwiki_link_tests.py
+++ b/tests/interwiki_link_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test Interwiki Link functionality."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/interwikidata_tests.py b/tests/interwikidata_tests.py
index 21d317b..4e507ac 100755
--- a/tests/interwikidata_tests.py
+++ b/tests/interwikidata_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for scripts/interwikidata.py."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/interwikimap_tests.py b/tests/interwikimap_tests.py
index 01212cb..d8673bb 100755
--- a/tests/interwikimap_tests.py
+++ b/tests/interwikimap_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the site module."""
#
# (C) Pywikibot team, 2018-2023
diff --git a/tests/l10n_tests.py b/tests/l10n_tests.py
index ef6e1d6..e4a0531 100755
--- a/tests/l10n_tests.py
+++ b/tests/l10n_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test valid templates."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/link_tests.py b/tests/link_tests.py
index 367bb96..32c7605 100755
--- a/tests/link_tests.py
+++ b/tests/link_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test Link functionality."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/linter_tests.py b/tests/linter_tests.py
index 2f8990a..a0b01c8 100755
--- a/tests/linter_tests.py
+++ b/tests/linter_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the site module."""
#
# (C) Pywikibot team, 2018-2022
diff --git a/tests/logentries_tests.py b/tests/logentries_tests.py
index 056df8d..3dff1cc 100755
--- a/tests/logentries_tests.py
+++ b/tests/logentries_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test logentries module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/login_tests.py b/tests/login_tests.py
index 005ea66..5b8069f 100755
--- a/tests/login_tests.py
+++ b/tests/login_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Tests for LoginManager classes.

diff --git a/tests/make_dist_tests.py b/tests/make_dist_tests.py
index 6d7cfbf..098a8fb 100755
--- a/tests/make_dist_tests.py
+++ b/tests/make_dist_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for fixes module."""
#
# (C) Pywikibot team, 2022-2023
diff --git a/tests/mediawikiversion_tests.py b/tests/mediawikiversion_tests.py
index b183148..8c1545d 100755
--- a/tests/mediawikiversion_tests.py
+++ b/tests/mediawikiversion_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the tools.MediaWikiVersion class."""
#
# (C) Pywikibot team, 2008-2022
diff --git a/tests/memento_tests.py b/tests/memento_tests.py
index 6299f6b..b158913 100755
--- a/tests/memento_tests.py
+++ b/tests/memento_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""memento client test module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/mysql_tests.py b/tests/mysql_tests.py
index fac64cb..1d35320 100755
--- a/tests/mysql_tests.py
+++ b/tests/mysql_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for mysql module."""
#
# (C) Pywikibot team, 2022
diff --git a/tests/namespace_tests.py b/tests/namespace_tests.py
index e0f18b0..9906f1f 100755
--- a/tests/namespace_tests.py
+++ b/tests/namespace_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the Namespace class."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/noreferences_tests.py b/tests/noreferences_tests.py
index 8cb112b..bd69b2b 100755
--- a/tests/noreferences_tests.py
+++ b/tests/noreferences_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test noreferences bot module."""
#
# (C) Pywikibot team, 2018-2022
diff --git a/tests/oauth_tests.py b/tests/oauth_tests.py
index f66413c..7546995 100755
--- a/tests/oauth_tests.py
+++ b/tests/oauth_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test OAuth functionality."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/page_tests.py b/tests/page_tests.py
index 6b29f43..795f437 100755
--- a/tests/page_tests.py
+++ b/tests/page_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the page module."""
#
# (C) Pywikibot team, 2008-2022
diff --git a/tests/pagegenerators_tests.py b/tests/pagegenerators_tests.py
index 8b8c05a..73cb357 100755
--- a/tests/pagegenerators_tests.py
+++ b/tests/pagegenerators_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test pagegenerators module."""
#
# (C) Pywikibot team, 2009-2022
diff --git a/tests/paraminfo_tests.py b/tests/paraminfo_tests.py
index dc3ed88..78a329d 100755
--- a/tests/paraminfo_tests.py
+++ b/tests/paraminfo_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test confirming paraminfo contains expected values."""
#
# (C) Pywikibot team, 2015-2023
diff --git a/tests/patrolbot_tests.py b/tests/patrolbot_tests.py
index 802c9b8..04a0ecd 100755
--- a/tests/patrolbot_tests.py
+++ b/tests/patrolbot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the patrol script."""
#
# (C) Pywikibot team, 2015-2023
diff --git a/tests/plural_tests.py b/tests/plural_tests.py
index c5b721f..cc5b5a2 100755
--- a/tests/plural_tests.py
+++ b/tests/plural_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test plural module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/proofreadpage_tests.py b/tests/proofreadpage_tests.py
index 44d6ef0..f05fc54 100755
--- a/tests/proofreadpage_tests.py
+++ b/tests/proofreadpage_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the proofreadpage module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/protectbot_tests.py b/tests/protectbot_tests.py
index 313a037..ec423ab 100755
--- a/tests/protectbot_tests.py
+++ b/tests/protectbot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for scripts/protect.py."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/pwb/print_argv.py b/tests/pwb/print_argv.py
index 85c47c9..2b52111 100755
--- a/tests/pwb/print_argv.py
+++ b/tests/pwb/print_argv.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script that forms part of pwb_tests.

.. versionadded:: 7.0
diff --git a/tests/pwb/print_env.py b/tests/pwb/print_env.py
index 42701d1..c015ff2 100755
--- a/tests/pwb/print_env.py
+++ b/tests/pwb/print_env.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script that forms part of pwb_tests."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/pwb/print_locals.py b/tests/pwb/print_locals.py
index 538f624..76148f0 100755
--- a/tests/pwb/print_locals.py
+++ b/tests/pwb/print_locals.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script that forms part of pwb_tests."""
#
# (C) Pywikibot team, 2013-2022
diff --git a/tests/pwb/print_unicode.py b/tests/pwb/print_unicode.py
index f7f344e..0a753b1 100755
--- a/tests/pwb/print_unicode.py
+++ b/tests/pwb/print_unicode.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Script that forms part of pwb_tests."""
#
# (C) Pywikibot team, 2018-2022
diff --git a/tests/pwb_tests.py b/tests/pwb_tests.py
index 268db5b..537a0c0 100755
--- a/tests/pwb_tests.py
+++ b/tests/pwb_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Test pwb.py.

diff --git a/tests/redirect_bot_tests.py b/tests/redirect_bot_tests.py
index 05eca2a..6f6226f 100755
--- a/tests/redirect_bot_tests.py
+++ b/tests/redirect_bot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the redirect.py script."""
#
# (C) Pywikibot team, 2017-2022
diff --git a/tests/reflinks_tests.py b/tests/reflinks_tests.py
index f6768e9..01cf181 100755
--- a/tests/reflinks_tests.py
+++ b/tests/reflinks_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for reflinks script."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/replacebot_tests.py b/tests/replacebot_tests.py
index 531ff01..291d9a2 100755
--- a/tests/replacebot_tests.py
+++ b/tests/replacebot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the replace script and ReplaceRobot class."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/script_tests.py b/tests/script_tests.py
index 8f85bed..f746137 100755
--- a/tests/script_tests.py
+++ b/tests/script_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test that each script can be compiled and executed."""
#
# (C) Pywikibot team, 2014-2023
diff --git a/tests/site_decorators_tests.py b/tests/site_decorators_tests.py
index bc4df9c..3a4ce28 100755
--- a/tests/site_decorators_tests.py
+++ b/tests/site_decorators_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests against a fake Site object."""
#
# (C) Pywikibot team, 2012-2022
diff --git a/tests/site_detect_tests.py b/tests/site_detect_tests.py
index 3b56837..2298f92 100755
--- a/tests/site_detect_tests.py
+++ b/tests/site_detect_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test for site detection."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/site_generators_tests.py b/tests/site_generators_tests.py
index e538ab7..b2d5b01 100755
--- a/tests/site_generators_tests.py
+++ b/tests/site_generators_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for generators of the site module."""
#
# (C) Pywikibot team, 2008-2023
diff --git a/tests/site_login_logout_tests.py b/tests/site_login_logout_tests.py
index e9c59af..5ea1cfd 100755
--- a/tests/site_login_logout_tests.py
+++ b/tests/site_login_logout_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test for login and logout methods.

These tests are separated from others because they should not be runned
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 2dfd288..5b37a79 100755
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the site module."""
#
# (C) Pywikibot team, 2008-2022
diff --git a/tests/siteinfo_tests.py b/tests/siteinfo_tests.py
index 76f6031..020cf2e 100755
--- a/tests/siteinfo_tests.py
+++ b/tests/siteinfo_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the site module."""
#
# (C) Pywikibot team, 2008-2022
diff --git a/tests/sparql_tests.py b/tests/sparql_tests.py
index bb63043..706da60 100755
--- a/tests/sparql_tests.py
+++ b/tests/sparql_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test cases for the SPARQL API."""
#
# (C) Pywikibot team, 2016-2022
diff --git a/tests/template_bot_tests.py b/tests/template_bot_tests.py
index 96aa4a3..457760b 100755
--- a/tests/template_bot_tests.py
+++ b/tests/template_bot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test template bot module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/tests_tests.py b/tests/tests_tests.py
index caaaaad..277190e 100755
--- a/tests/tests_tests.py
+++ b/tests/tests_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the tests package."""
#
# (C) Pywikibot team, 2014-2023
diff --git a/tests/textlib_tests.py b/tests/textlib_tests.py
index 4f3daf1..a003295 100755
--- a/tests/textlib_tests.py
+++ b/tests/textlib_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test textlib module."""
#
# (C) Pywikibot team, 2011-2023
diff --git a/tests/thanks_tests.py b/tests/thanks_tests.py
index 08a3f3e..cdbfb72 100755
--- a/tests/thanks_tests.py
+++ b/tests/thanks_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for thanks-related code."""
#
# (C) Pywikibot team, 2016-2022
diff --git a/tests/time_tests.py b/tests/time_tests.py
index bd3e95e..efa04d3 100755
--- a/tests/time_tests.py
+++ b/tests/time_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the Timestamp class."""
#
# (C) Pywikibot team, 2014-2023
diff --git a/tests/timestripper_tests.py b/tests/timestripper_tests.py
index 73bd011..f9a929c 100755
--- a/tests/timestripper_tests.py
+++ b/tests/timestripper_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for archivebot.py/Timestripper."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/titletranslate_tests.py b/tests/titletranslate_tests.py
index 6189ce5..c0fc2ab 100755
--- a/tests/titletranslate_tests.py
+++ b/tests/titletranslate_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for titletranslate module."""
#
# (C) Pywikibot team, 2022
diff --git a/tests/token_tests.py b/tests/token_tests.py
index 8accc51..e62875b 100755
--- a/tests/token_tests.py
+++ b/tests/token_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for tokens."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/tools_chars_tests.py b/tests/tools_chars_tests.py
index 58fb63f..0f93120 100755
--- a/tests/tools_chars_tests.py
+++ b/tests/tools_chars_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test tools.chars package."""
#
# (C) Pywikibot team, 2015-2023
diff --git a/tests/tools_deprecate_tests.py b/tests/tools_deprecate_tests.py
index a0efea2..7999d0f 100755
--- a/tests/tools_deprecate_tests.py
+++ b/tests/tools_deprecate_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for deprecation tools."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/tools_formatter_tests.py b/tests/tools_formatter_tests.py
index 5345d80..bd62523 100755
--- a/tests/tools_formatter_tests.py
+++ b/tests/tools_formatter_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the ``pywikibot.tools.formatter`` module."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/tools_tests.py b/tests/tools_tests.py
index 825833c..2084d77 100755
--- a/tests/tools_tests.py
+++ b/tests/tools_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test tools package alone which don't fit into other tests."""
#
# (C) Pywikibot team, 2015-2023
diff --git a/tests/tools_threading_tests.py b/tests/tools_threading_tests.py
index 439a4d7..a4e9f9e 100755
--- a/tests/tools_threading_tests.py
+++ b/tests/tools_threading_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for threading tools."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/ui_options_tests.py b/tests/ui_options_tests.py
index d397329..1a7fb53 100755
--- a/tests/ui_options_tests.py
+++ b/tests/ui_options_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Bot tests for input_choice options."""
#
# (C) Pywikibot team, 2015-2022
diff --git a/tests/ui_tests.py b/tests/ui_tests.py
index 8b759e2..709f304 100755
--- a/tests/ui_tests.py
+++ b/tests/ui_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the user interface."""
#
# (C) Pywikibot team, 2008-2022
diff --git a/tests/upload_tests.py b/tests/upload_tests.py
index 21df832..3419138 100755
--- a/tests/upload_tests.py
+++ b/tests/upload_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Site upload test.

diff --git a/tests/uploadbot_tests.py b/tests/uploadbot_tests.py
index c0ca484..5220b8f 100755
--- a/tests/uploadbot_tests.py
+++ b/tests/uploadbot_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
UploadRobot test.

diff --git a/tests/uploadscript_tests.py b/tests/uploadscript_tests.py
index aa0441e..cb11feb 100755
--- a/tests/uploadscript_tests.py
+++ b/tests/uploadscript_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""upload.py script test."""
#
# (C) Pywikibot team, 2019-2022
diff --git a/tests/user_tests.py b/tests/user_tests.py
index 54f387c..1263d85 100755
--- a/tests/user_tests.py
+++ b/tests/user_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the User page."""
#
# (C) Pywikibot team, 2016-2023
diff --git a/tests/wikibase_edit_tests.py b/tests/wikibase_edit_tests.py
index c0892cf..33d7dbb 100755
--- a/tests/wikibase_edit_tests.py
+++ b/tests/wikibase_edit_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""
Tests for editing Wikibase items.

diff --git a/tests/wikibase_tests.py b/tests/wikibase_tests.py
index c686956..807c28c 100755
--- a/tests/wikibase_tests.py
+++ b/tests/wikibase_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for the Wikidata parts of the page module."""
#
# (C) Pywikibot team, 2008-2023
diff --git a/tests/wikistats_tests.py b/tests/wikistats_tests.py
index 3b70de9..94e867e 100755
--- a/tests/wikistats_tests.py
+++ b/tests/wikistats_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Test cases for the WikiStats dataset."""
#
# (C) Pywikibot team, 2014-2022
diff --git a/tests/xmlreader_tests.py b/tests/xmlreader_tests.py
index cf60983..0a1c7f0 100755
--- a/tests/xmlreader_tests.py
+++ b/tests/xmlreader_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
"""Tests for xmlreader module."""
#
# (C) Pywikibot team, 2009-2022

To view, visit change 889238. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I09d6fd68158c529d18da587e9e1574abe5076df6
Gerrit-Change-Number: 889238
Gerrit-PatchSet: 2
Gerrit-Owner: JJMC89 <JJMC89.Wikimedia@gmail.com>
Gerrit-Reviewer: JJMC89 <JJMC89.Wikimedia@gmail.com>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged