jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/550928 )
Change subject: [doc] Fix typo in transferbot doc
......................................................................
[doc] Fix typo in transferbot doc
Change-Id: Ie61673a93b31fdc4df90678bad6996f4c757515c
---
M scripts/transferbot.py
1 file changed, 1 insertion(+), 1 deletion(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/transferbot.py b/scripts/transferbot.py
index 590bc83..a3e3e0a 100755
--- a/scripts/transferbot.py
+++ b/scripts/transferbot.py
@@ -13,7 +13,7 @@
-prefix: Page prefix on the new site.
--overwrite: Existing pages are skipped by default. Use his option to
+-overwrite: Existing pages are skipped by default. Use this option to
overwrite pages.
Internal links are *not* repaired!
--
To view, visit https://gerrit.wikimedia.org/r/550928
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie61673a93b31fdc4df90678bad6996f4c757515c
Gerrit-Change-Number: 550928
Gerrit-PatchSet: 2
Gerrit-Owner: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot (75)
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/550385 )
Change subject: component: Deriving from tools.UnicodeMixin to BaseLink
......................................................................
component: Deriving from tools.UnicodeMixin to BaseLink
Deleted the __str__ method in BaseLink and the if else
statement differenciating between PY2 and PY3. The
__str__ method is now being derived from UnicodeMixin
and if using PY2 the mixin class encodes to utf-8.
Bug: T223894
Change-Id: I0318ff8c106e340b4d9028a9759af2835e7941fe
---
M pywikibot/page.py
1 file changed, 1 insertion(+), 14 deletions(-)
Approvals:
Zhuyifei1999: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/page.py b/pywikibot/page.py
index 5fa4c69..b889df3 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -5703,7 +5703,7 @@
return self.__dict__ == other.__dict__
-class BaseLink(ComparableMixin):
+class BaseLink(UnicodeMixin, ComparableMixin):
"""
A MediaWiki link (local or interwiki).
@@ -5865,19 +5865,6 @@
return '[[%s:%s]]' % (self.site.code, title)
return '[[%s:%s:%s]]' % (self.site.family.name, self.site.code, title)
- if not PY2:
- def __str__(self):
- """Return a string representation."""
- return self.__unicode__()
- else: # PY2
- def __str__(self):
- """Return a string representation."""
- return self.__bytes__()
-
- def __bytes__(self):
- """Return a byte representation."""
- return self.astext().encode('ascii', 'backslashreplace')
-
def _cmpkey(self):
"""
Key for comparison of BaseLink objects.
--
To view, visit https://gerrit.wikimedia.org/r/550385
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I0318ff8c106e340b4d9028a9759af2835e7941fe
Gerrit-Change-Number: 550385
Gerrit-PatchSet: 2
Gerrit-Owner: Zack Khalid <zkhalido(a)msudenver.edu>
Gerrit-Reviewer: Zhuyifei1999 <zhuyifei1999(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)
Gerrit-CC: Welcome, new contributor! <ssethi(a)wikimedia.org>
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/548817 )
Change subject: component: docstring update patch for comments
......................................................................
component: docstring update patch for comments
Update per feedback
Bug: T184115
Change-Id: I3047f6b880308ee8adfb6d931916958a76646255
---
M pywikibot/login.py
M scripts/add_text.py
M scripts/category.py
M scripts/imagetransfer.py
4 files changed, 94 insertions(+), 8 deletions(-)
Approvals:
Zhuyifei1999: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/login.py b/pywikibot/login.py
index 9b9ed2f..389ac12 100644
--- a/pywikibot/login.py
+++ b/pywikibot/login.py
@@ -173,9 +173,10 @@
"""
Store cookie data.
- The argument data is the raw data, as returned by getCookie().
+ @param data: The raw data as returned by getCookie()
+ @type data: str
- Returns nothing.
+ @return: None
"""
# THIS IS OVERRIDDEN IN data/api.py
filename = config.datafilepath('pywikibot.lwp')
diff --git a/scripts/add_text.py b/scripts/add_text.py
index 386dd44..3eec3a8 100755
--- a/scripts/add_text.py
+++ b/scripts/add_text.py
@@ -76,7 +76,19 @@
def get_text(page, old, create):
- """Get the old text."""
+ """
+ Get text on page. If old is not None, return old.
+
+ @param page: The page to get text from
+ @type page: pywikibot.page.BasePage
+ @param old: If not None, this parameter is returned instead
+ of fetching text from the page
+ @type old: str
+ @param create: Create the page if it doesn't exist
+ @type create: bool
+ @return: The page's text or old parameter if not None
+ @rtype: str
+ """
if old is None:
try:
text = page.get()
@@ -98,7 +110,23 @@
def put_text(page, new, summary, count, asynchronous=False):
- """Save the new text."""
+ """
+ Save the new text.
+
+ @param page: The page to update and save
+ @type page: pywikibot.page.BasePage
+ @param new: The new text for the page
+ @type new: str
+ @param summary: Summary of page changes.
+ @type summary: str
+ @param count: Maximum num attempts to reach the server
+ @type count: int
+ @param asynchronous: Save the page asynchronously
+ @type asynchronous: bool
+ @return: True if successful, False if unsuccessful, None if
+ waiting for server
+ @rtype: bool / None
+ """
page.text = new
try:
page.save(summary=summary, asynchronous=asynchronous,
@@ -132,7 +160,34 @@
"""
Add text to a page.
- @rtype: tuple of (text, newtext, always)
+ @param page: The page to add text to
+ @type page: pywikibot.page.BasePage
+ @param addText: Text to add
+ @type addText: str
+ @param summary: Summary of changes. If None, beginning of addText is used.
+ @type summary: str
+ @param regexSkip: Abort if text on page matches
+ @type regexSkip: str
+ @param regexSkipUrl: Abort if full url matches
+ @type regexSkipUrl: str
+ @param always: Always add text without user confirmation
+ @type always: bool
+ @param up: If True, add text to top of page, else add at bottom.
+ @type up: bool
+ @param putText: If True, save changes to the page, else return
+ (text, newtext, always)
+ @type putText: bool
+ @param oldTextGiven: If None fetch page text, else use this text
+ @type oldTextGiven: str
+ @param reorderEnabled: If True place text above categories and
+ interwiki, else place at page bottom. No effect if up = False.
+ @type reorderEnabled: bool
+ @param create: Create page if it does not exist
+ @type create: bool
+ @return: If putText=True: (success, success, always)
+ else: (text, newtext, always)
+ @rtype: Tuple of (bool, bool, bool) or (str, str, bool)
+ depending on value of putText parameter
"""
site = page.site
if not summary:
diff --git a/scripts/category.py b/scripts/category.py
index e07d71e..cc67ebc 100755
--- a/scripts/category.py
+++ b/scripts/category.py
@@ -651,7 +651,8 @@
self.move_comment = move_comment if move_comment else self.comment
def run(self):
- """The main bot function that does all the work.
+ """
+ The main bot function that does all the work.
For readability it is split into several helper functions:
- _movecat()
@@ -718,6 +719,12 @@
Do not use this function from outside the class. Automatically marks
the pages if they can't be removed due to missing permissions.
+
+ @param moved_page: Category page to delete
+ @param moved_talk: Talk page to delete
+ @type moved_page: pywikibot.page.BasePage
+ @type moved_talk: pywikibot.page.BasePage
+
"""
if moved_page and self.oldcat.exists():
self.oldcat.delete(self.deletion_comment, not self.batch,
@@ -755,7 +762,19 @@
@staticmethod
def check_move(name, old_page, new_page):
- """Return if the old page can be safely moved to the new page."""
+ """Return if the old page can be safely moved to the new page.
+
+ @param name: Title of the new page
+ @type name: str
+ @param old_page: Page to be moved
+ @type old_page: pywikibot.page.BasePage
+ @param new_page: Page to be moved to
+ @type new_page: pywikibot.page.BasePage
+ @return: True if possible to move page, False if not page move
+ not possible
+ @rtype: bool
+
+ """
move_possible = True
if new_page and new_page.exists():
pywikibot.warning("The {0} target '{1}' already exists."
diff --git a/scripts/imagetransfer.py b/scripts/imagetransfer.py
index 5968112..f89e8ba 100755
--- a/scripts/imagetransfer.py
+++ b/scripts/imagetransfer.py
@@ -126,7 +126,18 @@
def __init__(self, generator, targetSite=None, interwiki=False,
keep_name=False, ignore_warning=False):
- """Initializer."""
+ """Initializer.
+
+ @param generator: the pages to work on
+ @type generator: iterable
+ @param targetSite: Site to send image to, default none
+ @type targetSite: pywikibot.site.APISite
+ @param interwiki: Look for images in interwiki links, default false
+ @type interwiki: boolean
+ @param keep_name: Keep the filename and do not verify description
+ while replacing, default false
+ @type keep_name: boolean
+ """
self.generator = generator
self.interwiki = interwiki
self.targetSite = targetSite
--
To view, visit https://gerrit.wikimedia.org/r/548817
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I3047f6b880308ee8adfb6d931916958a76646255
Gerrit-Change-Number: 548817
Gerrit-PatchSet: 4
Gerrit-Owner: Morgan11235 <morgan11235(a)hotmail.com>
Gerrit-Reviewer: Zhuyifei1999 <zhuyifei1999(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)
Gerrit-CC: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-CC: Xqt <info(a)gno.de>
Gerrit-CC: Zoranzoki21 <zorandori4444(a)gmail.com>
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/375448 )
Change subject: Make _flush aware of _putthread ongoing tasks
......................................................................
Make _flush aware of _putthread ongoing tasks
Make sure _flush() is aware if _putthread() is idle or working on a
task.
Relying on page_put_queue.qsize() > 0 only, as a condition to keep the while
loop alive is not safe as the last item in the queue can be fetched by
async_manager() before page_put_queue.qsize() is checked and then found empty.
In this case _flush() returns before all pending requests are served.
A new Queue is introduced as a form of synchronisation between
MainThread in _flush() and asyc_manager(), signalling when async_manager
is actually working and not idle waiting for a request.
Bug: T147178
Change-Id: I184b445c43aa44cb000bfacc1cad18d2de265c48
---
M pywikibot/__init__.py
1 file changed, 7 insertions(+), 1 deletion(-)
Approvals:
Zhuyifei1999: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py
index 9c9632d..6fe82cc 100644
--- a/pywikibot/__init__.py
+++ b/pywikibot/__init__.py
@@ -1372,7 +1372,9 @@
'{lightblue}Waiting for {num} pages to be put. '
'Estimated time remaining: {sec}{default}', num=num, sec=sec))
- while _putthread.is_alive() and page_put_queue.qsize() > 0:
+ while (_putthread.is_alive()
+ and (page_put_queue.qsize() > 0
+ or page_put_queue_busy.qsize() > 0)):
try:
_putthread.join(1)
except KeyboardInterrupt:
@@ -1398,10 +1400,12 @@
"""Daemon; take requests from the queue and execute them in background."""
while True:
(request, args, kwargs) = page_put_queue.get()
+ page_put_queue_busy.put(None)
if request is None:
break
request(*args, **kwargs)
page_put_queue.task_done()
+ page_put_queue_busy.get()
def async_request(request, *args, **kwargs):
@@ -1420,6 +1424,8 @@
# queue to hold pending requests
page_put_queue = Queue(config.max_queue_size)
+# queue to signal that async_manager is working on a request. See T147178.
+page_put_queue_busy = Queue(config.max_queue_size)
# set up the background thread
_putthread = threading.Thread(target=async_manager)
# identification for debugging purposes
--
To view, visit https://gerrit.wikimedia.org/r/375448
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I184b445c43aa44cb000bfacc1cad18d2de265c48
Gerrit-Change-Number: 375448
Gerrit-PatchSet: 4
Gerrit-Owner: Mpaa <mpaa.wiki(a)gmail.com>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: Framawiki <framawiki(a)tools.wmflabs.org>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Magul <tomasz.magulski(a)gmail.com>
Gerrit-Reviewer: Matěj Suchánek <matejsuchanek97(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Mpaa <mpaa.wiki(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: Zhuyifei1999 <zhuyifei1999(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)