jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1112370?usp=email )

Change subject: login.py: Recognise * in config.usernames
......................................................................

login.py: Recognise * in config.usernames

If there is an '*' in config.usernames as the language for a certain family,
expand it to all codes that are found in the family file if the code is not
already given.

Note: you may use -async to speed-up login process.

Bug: T110411
Change-Id: I5af62457d34709209c3a4ce76e54bb603e3729a3
---
M pywikibot/scripts/login.py
1 file changed, 19 insertions(+), 5 deletions(-)

Approvals:
  jenkins-bot: Verified
  Xqt: Looks good to me, approved




diff --git a/pywikibot/scripts/login.py b/pywikibot/scripts/login.py
index c1af7f6..eacc7f9 100755
--- a/pywikibot/scripts/login.py
+++ b/pywikibot/scripts/login.py
@@ -41,10 +41,14 @@
 subdirectory.

 .. versionchanged:: 7.4
-   moved to :mod:`pywikibot.scripts` folder
+   moved to :mod:`pywikibot.scripts` folder.
+.. versionchanged:: 7.7
+   *-async* option was added.
+.. versionchanged:: 10.2
+   wildcard site codes in ``usernames`` dict are supported.
 """
 #
-# (C) Pywikibot team, 2003-2024
+# (C) Pywikibot team, 2003-2025
 #
 # Distributed under the terms of the MIT license.
 #
@@ -56,6 +60,7 @@
 import pywikibot
 from pywikibot import config
 from pywikibot.exceptions import NoUsernameError, SiteDefinitionError
+from pywikibot.family import Family
 from pywikibot.login import OauthLoginManager
 from pywikibot.tools.threading import BoundedPoolExecutor

@@ -161,11 +166,20 @@
                BoundedPoolExecutor('ThreadPoolExecutor'))[asynchronous]
     with context as executor:
         for family_name in namedict:
-            for lang in namedict[family_name]:
+            family_codes = namedict[family_name]
+
+            if '*' in family_codes:
+                user = family_codes['*']
+                del family_codes['*']
+                codes = (code for code in Family.load(family_name).codes
+                         if code not in family_codes)
+                family_codes.update(dict.fromkeys(codes, user))
+
+            for code in family_codes:
                 if asynchronous:
-                    executor.submit(login_one_site, lang, family_name, *params)
+                    executor.submit(login_one_site, code, family_name, *params)
                 else:
-                    login_one_site(lang, family_name, *params)
+                    login_one_site(code, family_name, *params)


 if __name__ == '__main__':

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1112370?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I5af62457d34709209c3a4ce76e54bb603e3729a3
Gerrit-Change-Number: 1112370
Gerrit-PatchSet: 6
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Dalba <[email protected]>
Gerrit-Reviewer: Framawiki <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to