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

Change subject: [textlib] replace addOnly parameter with add_only to be 
consistent
......................................................................

[textlib] replace addOnly parameter with add_only to be consistent

- replace addOnly parameter with add_only in replaceLanguageLinks
  and replaceCategoryLinks to be consistent with replaceCategoryInPlace
  and due to PEP8
- deprecate the old variant
- update documentation
- decrease nested flow statements in replaceCategoryLinks

Change-Id: Ic9ed8b374f9a9b6af19621f824723f7184ed3804
---
M pywikibot/textlib.py
1 file changed, 68 insertions(+), 47 deletions(-)

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




diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index 8b252a8..c7d1368 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -28,6 +28,7 @@
 from pywikibot.tools import (
     ModuleDeprecationWrapper,
     deprecated,
+    deprecated_args,
     first_lower,
     first_upper,
 )
@@ -904,7 +905,7 @@
     # Adding the text
     text += '\n' + add
     # Reputting the categories
-    text = replaceCategoryLinks(text, categories_inside, site, addOnly=True)
+    text = replaceCategoryLinks(text, categories_inside, site, add_only=True)
     # Adding the interwiki
     return replaceLanguageLinks(text, interwiki_inside, site)

@@ -1145,19 +1146,22 @@
     return removeLanguageLinks(text, site, marker)


-def replaceLanguageLinks(oldtext: str, new: dict, site=None,
-                         addOnly: bool = False, template: bool = False,
+@deprecated_args(addOnly='add_only')  # since 8.0
+def replaceLanguageLinks(oldtext: str,
+                         new: dict,
+                         site: Optional['pywikibot.site.BaseSite'] = None,
+                         add_only: bool = False,
+                         template: bool = False,
                          template_subpage: bool = False) -> str:
     """Replace inter-language links in the text with a new set of links.

     :param oldtext: The text that needs to be modified.
-    :param new: A dict with the Site objects as keys, and Page or Link objects
-        as values (i.e., just like the dict returned by getLanguageLinks
-        function).
+    :param new: A dict with the Site objects as keys, and Page or Link
+        objects as values (i.e., just like the dict returned by
+        :func:`getLanguageLinks` function).
     :param site: The site that the text is from.
-    :type site: pywikibot.Site
-    :param addOnly: If True, do not remove old language links, only add new
-        ones.
+    :param add_only: If True, do not remove old language links, only add
+        new ones.
     :param template: Indicates if text belongs to a template page or not.
     :param template_subpage: Indicates if text belongs to a template sub-page
         or not.
@@ -1171,7 +1175,7 @@
     cseparator = site.family.category_text_separator
     separatorstripped = separator.strip()
     cseparatorstripped = cseparator.strip()
-    if addOnly:
+    if add_only:
         s2 = oldtext
     else:
         s2 = removeLanguageLinksAndSeparator(oldtext, site=site, marker=marker,
@@ -1203,7 +1207,7 @@
             s2 = removeCategoryLinksAndSeparator(
                 s2.replace(marker, cseparatorstripped).strip(), site) \
                 + separator + s
-            newtext = replaceCategoryLinks(s2, cats, site=site, addOnly=True)
+            newtext = replaceCategoryLinks(s2, cats, site=site, add_only=True)
         # for Wikitravel's language links position.
         # (not supported by rewrite - no API)
         elif site.family.name == 'wikitravel':
@@ -1480,19 +1484,21 @@
     return text


-def replaceCategoryLinks(oldtext: str, new, site=None,
-                         addOnly: bool = False) -> str:
+@deprecated_args(addOnly='add_only')  # since 8.0
+def replaceCategoryLinks(oldtext: str,
+                         new: Iterable,
+                         site: Optional['pywikibot.site.BaseSite'] = None,
+                         add_only: bool = False) -> str:
     """
     Replace all existing category links with new category links.

     :param oldtext: The text that needs to be replaced.
     :param new: Should be a list of Category objects or strings
-        which can be either the raw name or [[Category:..]].
-    :type new: iterable
+        which can be either the raw name or ``[[Category:..]]``.
     :param site: The site that the text is from.
-    :type site: pywikibot.Site
-    :param addOnly: If addOnly is True, the old category won't be deleted and
-        the category(s) given will be added (and they won't replace anything).
+    :param add_only: If add_only is True, the old category won't be
+        deleted and the category(s) given will be added (and they won't
+        replace anything).
     :return: The modified text.
     """
     # Find a marker that is not already in the text.
@@ -1507,41 +1513,40 @@
     iseparator = site.family.interwiki_text_separator
     separatorstripped = separator.strip()
     iseparatorstripped = iseparator.strip()
-    if addOnly:
+    if add_only:
         cats_removed_text = oldtext
     else:
         cats_removed_text = removeCategoryLinksAndSeparator(
             oldtext, site=site, marker=marker, separator=separatorstripped)
     new_cats = categoryFormat(new, insite=site)
-    if new_cats:
-        if site.code in site.family.category_attop:
-            newtext = new_cats + separator + cats_removed_text
-        else:
-            # calculate what was after the categories links on the page
-            firstafter = cats_removed_text.find(marker)
-            if firstafter < 0:
-                firstafter = len(cats_removed_text)
-            else:
-                firstafter += len(marker)
-            # Is there text in the 'after' part that means we should keep it
-            # after?
-            if '</noinclude>' in cats_removed_text[firstafter:]:
-                if separatorstripped:
-                    new_cats = separator + new_cats
-                newtext = (cats_removed_text[:firstafter].replace(marker, '')
-                           + new_cats + cats_removed_text[firstafter:])
-            elif site.code in site.family.categories_last:
-                newtext = (cats_removed_text.replace(marker, '').strip()
-                           + separator + new_cats)
-            else:
-                interwiki = getLanguageLinks(cats_removed_text, insite=site)
-                langs_removed_text = removeLanguageLinksAndSeparator(
-                    cats_removed_text.replace(marker, ''), site, '',
-                    iseparatorstripped) + separator + new_cats
-                newtext = replaceLanguageLinks(
-                    langs_removed_text, interwiki, site, addOnly=True)
-    else:
+    if not new_cats:
         newtext = cats_removed_text.replace(marker, '')
+    elif site.code in site.family.category_attop:
+        newtext = new_cats + separator + cats_removed_text
+    else:
+        # calculate what was after the categories links on the page
+        firstafter = cats_removed_text.find(marker)
+        if firstafter < 0:
+            firstafter = len(cats_removed_text)
+        else:
+            firstafter += len(marker)
+        # Is there text in the 'after' part that means we should keep it
+        # after?
+        if '</noinclude>' in cats_removed_text[firstafter:]:
+            if separatorstripped:
+                new_cats = separator + new_cats
+            newtext = (cats_removed_text[:firstafter].replace(marker, '')
+                       + new_cats + cats_removed_text[firstafter:])
+        elif site.code in site.family.categories_last:
+            newtext = (cats_removed_text.replace(marker, '').strip()
+                       + separator + new_cats)
+        else:
+            interwiki = getLanguageLinks(cats_removed_text, insite=site)
+            langs_removed_text = removeLanguageLinksAndSeparator(
+                cats_removed_text.replace(marker, ''), site, '',
+                iseparatorstripped) + separator + new_cats
+            newtext = replaceLanguageLinks(
+                langs_removed_text, interwiki, site, add_only=True)

     # special parts under categories
     under_categories = []

--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/868829
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: Ic9ed8b374f9a9b6af19621f824723f7184ed3804
Gerrit-Change-Number: 868829
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <i...@gno.de>
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