jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/914362 )

Change subject: [IMPR] Solve stylistic checks for transwikiimport.py
......................................................................

[IMPR] Solve stylistic checks for transwikiimport.py

- solve flake8 and hacking errors
- add script to CHANGELOG.rst and README.rst
- add scripts to documentation
- update AUTHORS.rst

Change-Id: I6f4ca2378be7adc047cb512b35fc9ab61fa847e1
---
M scripts/CHANGELOG.rst
M scripts/README.rst
M AUTHORS.rst
M scripts/transwikiimport.py
M tox.ini
5 files changed, 73 insertions(+), 44 deletions(-)

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




diff --git a/AUTHORS.rst b/AUTHORS.rst
index e057adc..f7b56f3 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -79,6 +79,7 @@
     Diwanshu Mittal
     Dmytro Dziuma
     Dr03ramos
+    Draco flavus
     DrTrigon
     Dvorapa

diff --git a/scripts/CHANGELOG.rst b/scripts/CHANGELOG.rst
index c747382..34f96c8 100644
--- a/scripts/CHANGELOG.rst
+++ b/scripts/CHANGELOG.rst
@@ -5,9 +5,16 @@
 -----

 replicate_wiki
+~~~~~~~~~~~~~~

 * i18n support was added (:phab:`T333759`)

+transwikiimport
+~~~~~~~~~~~~~~~
+
+* Script was added (:phab:`T335246`)
+
+
 8.1.0
 -----

diff --git a/scripts/README.rst b/scripts/README.rst
index 0ed2066..562694b 100644
--- a/scripts/README.rst
+++ b/scripts/README.rst
@@ -143,6 +143,9 @@
 
+--------------------------+---------------------------------------------------------+
 | transferbot.py           | Transfers pages from a source wiki to a target 
wiki.    |
 
+--------------------------+---------------------------------------------------------+
+| transwikiimport.py       | Transfers pages from a source wiki to a target 
wiki     |
+|                          | including edit history using :api:`Import`.       
      |
++--------------------------+---------------------------------------------------------+
 | unusedfiles.py           | Bot appends some text to all unused images and 
other    |
 |                          | text to the respective uploaders.                 
      |
 
+--------------------------+---------------------------------------------------------+
diff --git a/scripts/transwikiimport.py b/scripts/transwikiimport.py
index 2f80c48..6bd9335 100644
--- a/scripts/transwikiimport.py
+++ b/scripts/transwikiimport.py
@@ -1,10 +1,7 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-"""
-This script transfers pages from a source wiki to a target wiki
-    over the transwiki import mechanism.
+#!/usr/bin/env python3
+"""This script transfers pages from a source wiki to a target wiki.

-It is also able to copy the full edit history.
+It uses :api:`Import` and it is also able to copy the full edit history.

 The following parameters are supported:

@@ -24,8 +21,9 @@

 -summary:                Log entry import summary.

--tags:                   Change tags to apply to the entry in the import log
-                         and to the null revision on the imported pages.
+-tags:                   Change tags to apply to the entry in the import
+                         log and to the null revision on the imported
+                         pages.

 -test:                   No import, the names of the pages are output.

@@ -35,8 +33,7 @@
 -target                  Use page generator of the target site
                          This also affects the correspondingnamespace.

-
-Internal links are *not* repaired!
+.. warning:: Internal links are *not* repaired!

 Pages to work on can be specified using any of:

@@ -45,22 +42,24 @@
 Examples
 --------

-Transfer all pages in category "Query service" from the English Wikipedia to
-the home Wikipedia, adding "Wikipedia:Import enwp/" as prefix:
+Transfer all pages in category "Query service" from the English
+Wikipedia to the home Wikipedia, adding "Wikipedia:Import enwp/" as
+prefix:

     python pwb.py transwikiimport -interwikisource:en -cat:"Query service" \
--prefix:"Wikipedia:Import enwp/" -fullhistory -assignknownusers
+        -prefix:"Wikipedia:Import enwp/" -fullhistory -assignknownusers

-Copy the template "Query service" from the English Wikipedia to the
-home Wiktionary:
+Copy the template "Query service" from the English Wikipedia to the home
+Wiktionary:

     python pwb.py transferbot -interwikisource:w:en \
--page:"Template:Query service" -fullhistory -assignknownusers
+        -page:"Template:Query service" -fullhistory -assignknownusers

-Copy 10 wanted templates of the home Wikipedia from English Wikipedia \
-to the home Wikipedia
+Copy 10 wanted templates of the home Wikipedia from English Wikipedia to
+the home Wikipedia
+
     python pwb.py transferbot -interwikisource:en \
--wantedtemplates:10 -target -fullhistory -assignknownusers
+        -wantedtemplates:10 -target -fullhistory -assignknownusers

 Advices
 -------
@@ -136,24 +135,25 @@
     the appropriate flag on the account
     must be set (usually administrator, tranwiki importer or importer).

-
+.. versionadded:: 8.2
 """
 #
-# (C) Draco flavus
+# (C) Pywikibot team, 2023
 #
 # Distributed under the terms of the MIT license.
 #
 import pywikibot
 from pywikibot import pagegenerators
+from pywikibot.backports import Dict
 from pywikibot.bot import suggest_help
-# from pywikibot.i18n import twtranslate
 from pywikibot.data import api


 docuReplacements = {'&params;': pagegenerators.parameterHelp}  # noqa: N816


-def api_query(site, params):
+def api_query(site, params: Dict[str, str]):
+    """Request data from given site."""
     query = api.Request(site, parameters=params)
     datas = query.submit()
     return datas
@@ -227,7 +227,7 @@
         return

     gen_args = ' '.join(gen_args)
-    pywikibot.output("""
+    pywikibot.info("""
     Page transfer configuration
     ---------------------------
     Source: {fromsite}
@@ -240,10 +240,11 @@
                rootpage=rootpage if rootpage else '(none)',
                target='from target site\n' if target else ''))

-    if correspondingnamespace != 'all' and rootpage != '':
-        pywikibot.output('Both the correspondingnamespace and the rootpage are 
set! Exiting.')
-    elif target and rootpage != '':
-        pywikibot.output('Both the target and the rootpage are set! Exiting.')
+    if correspondingnamespace != 'all' and rootpage:
+        pywikibot.info('Both the correspondingnamespace and the rootpage are '
+                       'set! Exiting.')
+    elif target and rootpage:
+        pywikibot.info('Both the target and the rootpage are set! Exiting.')
     else:
         params = {
             'action': 'import',
@@ -256,24 +257,32 @@
         }
         if correspondingnamespace != 'all':
             params['namespace'] = correspondingnamespace
-        if rootpage != '':
+        if rootpage:
             params['rootpage'] = rootpage
-        if tags != '':
+        if tags:
             params['tags'] = tags
+
         for page in gen:
             if target:
                 if correspondingnamespace == 'all':
-                    fromtitle = page.namespace().canonical_prefix() + 
page.title(with_ns=False)
+                    fromtitle = (page.namespace().canonical_prefix()
+                                 + page.title(with_ns=False))
                 else:
-                    fromtitle = 
str(fromsite.namespaces[int(correspondingnamespace)]) + 
page.title(with_ns=False)
+                    fromtitle = str(
+                        fromsite.namespaces[int(correspondingnamespace)]) \
+                        + page.title(with_ns=False)
                 targetpage = page
             else:
                 fromtitle = page.title(with_ns=True)
                 if correspondingnamespace == 'all':
-                    totitle = page.namespace().canonical_prefix() + 
page.title(with_ns=False)
+                    totitle = (page.namespace().canonical_prefix()
+                               + page.title(with_ns=False))
                 else:
-                    totitle = 
str(tosite.namespaces[int(correspondingnamespace)]) + page.title(with_ns=False)
+                    totitle = str(
+                        tosite.namespaces[int(correspondingnamespace)]) \
+                        + page.title(with_ns=False)
                 targetpage = pywikibot.Page(tosite, totitle)
+
             if not overwrite:
                 if targetpage.exists():
                     pywikibot.warning(
@@ -291,19 +300,15 @@
                         )
                     )
                     continue
+
             params['interwikipage'] = fromtitle
             if test:
-                pywikibot.output('Simulation:    {} →  {}'.format(
-                    fromtitle,
-                    targetpage.title(with_ns=True)
-                    )
-                )
+                pywikibot.info(f'Simulation: {fromtitle} →  '
+                               f'{targetpage.title(with_ns=True)}')
             else:
-                # Zum Testen die folgende Zeile auskommentieren.
                 api_query(tosite, params)
-                # Zum Testen bei folgenden zwei Zeilen das Kreuzzeichen 
entfernen.
-                # pywikibot.output(params)
-                # pywikibot.output(fromtitle + ' → ' + 
page.title(with_ns=True) if target else totitle)
+                pywikibot.info(fromtitle + ' → ' + page.title(with_ns=True)
+                               if target else totitle)


 if __name__ == '__main__':
diff --git a/tox.ini b/tox.ini
index 7069a31..17b9aca 100644
--- a/tox.ini
+++ b/tox.ini
@@ -192,7 +192,6 @@
     scripts/reflinks.py: N802, N816
     scripts/replace.py: N802, N803, N806, N816
     scripts/solve_disambiguation.py: N802, N806
-    scripts/transwikiimport.py: C103, D103, D205, D400, E123, E501
     setup.py: T001, T201
     tests/api_tests.py: N802
     tests/archivebot_tests.py: N802

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

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I6f4ca2378be7adc047cb512b35fc9ab61fa847e1
Gerrit-Change-Number: 914362
Gerrit-PatchSet: 7
Gerrit-Owner: Xqt <i...@gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.w...@aol.com>
Gerrit-Reviewer: Xqt <i...@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list -- pywikibot-commits@lists.wikimedia.org
To unsubscribe send an email to pywikibot-commits-le...@lists.wikimedia.org

Reply via email to