On Thu, Apr 1, 2021 at 3:54 PM Damian Johnson <atagar(a)torproject.org> wrote:
Hi lovely Pywikibot folks. I'm the author of tor's python library [1]
and recently decided to see what it's like to volunteer for this
community instead.
I have a few newcomer questions...
1. This email list and #pywikibot are remarkably quiet (~2/month as
compared with the 'handful a week' described by the wiki [2]). Does
pywikibot have any other communication channels (say, to request a
bot) with more activity?
Individual wikis often have dedicated pages to request bot. For
example, English Wikipedia's is Wikipedia:Bot_requests [1]. Its linked
Wikidata item [2] lists many of the similar pages in different
Wikimedia sites. Though, many of the bot requests may be done by other
bot frameworks or even manually.
Discussion regarding development of the Pywikibot framework itself are
often in Phabricator [3].
[1]
https://en.wikipedia.org/wiki/Wikipedia:Bot_requests
[2]
https://www.wikidata.org/wiki/Q4582561
[3]
https://phabricator.wikimedia.org/project/profile/87/
2. I created a bot account with a BotPassword to give
our readme's
example a whirl but Wikipedia evidently blocks bot access to its
sandbox page?
% cat demo.py
import pywikibot
site = pywikibot.Site('en', 'wikipedia') # The site we want to run our
bot on
page = pywikibot.Page(site, 'Wikipedia:Sandbox')
page.text = 'hello world'
page.save('pywikibot practice') # Saves the page
% python pwb.py demo.py
Traceback (most recent call last):
File "pwb.py", line 363, in <module>
if not main():
File "pwb.py", line 355, in main
run_python_file(filename,
File "pwb.py", line 74, in run_python_file
exec(compile(source, filename, 'exec', dont_inherit=True),
File "./demo.py", line 5, in <module>
page.save('pywikibot practice') # Saves the page
File "/home/atagar/Desktop/pywikibot/core/pywikibot/tools/__init__.py",
line 1452, in wrapper
return obj(*__args, **__kw)
File "/home/atagar/Desktop/pywikibot/core/pywikibot/tools/__init__.py",
line 1452, in wrapper
return obj(*__args, **__kw)
File "/home/atagar/Desktop/pywikibot/core/pywikibot/page/__init__.py",
line 1168, in save
raise pywikibot.OtherPageSaveError(
pywikibot.exceptions.OtherPageSaveError: Edit to page
[[Wikipedia:Sandbox]] failed:
Editing restricted by {{bots}}, {{nobots}} or site's equivalent of
{{in use}} template
CRITICAL: Exiting due to uncaught exception <class
'pywikibot.exceptions.OtherPageSaveError'>
This is the {{bots}} template [4].The purpose of the template here is
to prevent bots from applying automatic fixes while people are
experimenting with the sandbox. Since you are actually sandboxing you
want to add a force=True to override.
[4]
https://en.wikipedia.org/wiki/Template:Bots
[5]
https://github.com/wikimedia/pywikibot/blob/7ef994f09520f5bb658bd95843d2a79…
Am I reading this error correctly? If so, maybe I
could change our
readme to something that works out of the box? If that would be ok,
any tip on what it should demonstrate?
3. How do I run pywikibot's tests? I'd like to note the command on
our development wiki [3].
To run individual tests:
$ python -m tests.tests_tests HttpServerProblemTestCase.test_502
[...]
OK (skipped=1)
$ python -m tests.tests_tests HttpServerProblemTestCase
[...]
OK (skipped=1)
$ python -m tests.tests_tests
[...]
OK (skipped=1, expected failures=3)
To run the entire test suite:
$ python -m unittest
family and mylang are not set.
Defaulting to family='wikipedia' and mylang='test'.
tests: max_retries reduced from 15 to 1
Disabled test modules (to run: python -m unittest ...):
l10n, tests
Extra test modules (run after library, before scripts):
titletranslate, noreferences
Skipping tests (to run: python -m unittest ...):
{'textlib': ['test_interwiki_format']}
weblinkchecker depends on memento_client, which isn't available
Skipping execution of auto-run scripts (set PYWIKIBOT_TEST_AUTORUN=1
to enable):
['category_redirect', 'checkimages', 'clean_sandbox',
'login',
'misspelling', 'revertbot', 'noreferences',
'parser_function_count',
'shell', 'unusedfiles', 'upload', 'welcome']
44.684s ..
[...]
To run the test suite in tox with all the environment setups,
doctests, flake8, etc:
$ tox
commit-message create:
/home/zhuyifei1999/mw-dev/pywikibot-core/.tox/commit-message
commit-message installdeps: commit-message-validator
commit-message develop-inst: /home/zhuyifei1999/mw-dev/pywikibot-core
[...]
YiFei Zhu