jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/634544 )
Change subject: [IMPR] Move generate_family_file.py to pywkibot/scripts
......................................................................
[IMPR] Move generate_family_file.py to pywkibot/scripts
- move generate_family_file.py to pywikibot/scripts/
This enables to run this scripts from the pywikibot site package
using the already implemented pwb code entry point on any location with
pwb generate_family_file <options>
- Instead of pywikibot/families as target directory the families folder
in the base directory is used; create the families folder if necessary.
- update imports
- update tests
- update doc
Bug: T107629
Change-Id: I8731ea58afca53da2c20a1ff614c1da4e020b5c5
---
M .gitignore
M CONTENT.rst
M docs/utilities/index.rst
M pywikibot/CONTENT.rst
R pywikibot/scripts/generate_family_file.py
M tests/generate_family_file_tests.py
M tox.ini
7 files changed, 23 insertions(+), 12 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/.gitignore b/.gitignore
index cefdbd2..9d20600 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
/*.egg
/data*
/category*
+families/
logs*
*apicache*
*pycache*
@@ -17,7 +18,6 @@
.cache
.idea
pywikibot.egg-info/
-pywikibot/families/
build
dist
docs/_build/
diff --git a/CONTENT.rst b/CONTENT.rst
index 7f42248..9e02e4b 100644
--- a/CONTENT.rst
+++ b/CONTENT.rst
@@ -16,8 +16,6 @@
+---------------------------+-----------------------------------------------------------+
| Dockerfile-dev | Docker image including developement dependencies
|
+---------------------------+-----------------------------------------------------------+
- | generate_family_file.py | Creates a new family file
|
-
+---------------------------+-----------------------------------------------------------+
| HISTORY.rst | PyPI version history file
|
+---------------------------+-----------------------------------------------------------+
| LICENSE | Reference to the MIT license
|
diff --git a/docs/utilities/index.rst b/docs/utilities/index.rst
index 5e61800..0cbd533 100644
--- a/docs/utilities/index.rst
+++ b/docs/utilities/index.rst
@@ -14,7 +14,7 @@
generate\_family\_file script
-----------------------------
-.. automodule:: generate_family_file
+.. automodule:: pywikibot.scripts.generate_family_file
generate\_user\_files script
----------------------------
diff --git a/pywikibot/CONTENT.rst b/pywikibot/CONTENT.rst
index 468259a..0556e3d 100644
--- a/pywikibot/CONTENT.rst
+++ b/pywikibot/CONTENT.rst
@@ -115,6 +115,8 @@
+----------------------------+------------------------------------------------------+
| scripts | Framework helper scripts and entry points
|
+============================+======================================================+
+ | generate_family_file.py | Creates a new family file
|
+
+----------------------------+------------------------------------------------------+
| generate_user_files.py | Creates user-config.py or user-fixes.py
|
+----------------------------+------------------------------------------------------+
| pwb.py | Code entry wrapper script (site-package only)
|
diff --git a/generate_family_file.py b/pywikibot/scripts/generate_family_file.py
similarity index 91%
rename from generate_family_file.py
rename to pywikibot/scripts/generate_family_file.py
index f3125f8..f86e655 100755
--- a/generate_family_file.py
+++ b/pywikibot/scripts/generate_family_file.py
@@ -1,9 +1,11 @@
#!/usr/bin/python
"""This script generates a family file from a given URL.
+This script must be invoked with the pwb wrapper script/code entry point.
+
Usage::
- generate_family_file.py [<url>] [<name>] [<dointerwiki>]
[<verify>]
+ pwb generate_family_file.py [<url>] [<name>] [<dointerwiki>]
[<verify>]
Parameters are optional. They must be given consecutively but may be
omitted if there is no successor parameter. The parameters are::
@@ -15,9 +17,14 @@
Example::
- generate_family_file.py
https://www.mywiki.bogus/wiki/Main_Page mywiki
+ pwb generate_family_file.py
https://www.mywiki.bogus/wiki/Main_Page mywiki
-This will create the file mywiki_family.py in pywikibot/families folder
+This will create the file mywiki_family.py in families folder of your
+base directory.
+
+.. versionchanged:: 7.0
+ moved to pywikibot.scripts folder; create family files in families
+ folder of your base directory instead of pywikibot/families.
"""
#
# (C) Pywikibot team, 2010-2021
@@ -63,12 +70,15 @@
to keep it enabled.
"""
from pywikibot.scripts import _import_with_no_user_config
- # from pywikibot.site_detect import MWSite
+ # from pywikibot.site_detect import MWSite and
+ # from pywikibot.config import base_dir
# when required but disable user-config checks
# so the family can be created first,
# and then used when generating the user-config
self.Wiki = _import_with_no_user_config(
'pywikibot.site_detect').site_detect.MWSite
+ self.base_dir = _import_with_no_user_config(
+ 'pywikibot.config').config.base_dir
self.base_url = url
self.name = name
@@ -200,8 +210,7 @@
def writefile(self, verify):
"""Write the family file."""
- fn = os.path.join(os.path.dirname(os.path.realpath(__file__)),
- 'pywikibot', 'families',
+ fn = os.path.join(self.base_dir, 'families',
'{}_family.py'.format(self.name))
print('Writing %s... ' % fn)
try:
@@ -239,6 +248,7 @@
def verify_SSL_certificate(self, code: str) -> bool:
return False
"""
+ os.makedirs(os.path.dirname(fn), exist_ok=True)
with codecs.open(fn, 'w', 'utf-8') as fh:
fh.write(content)
diff --git a/tests/generate_family_file_tests.py b/tests/generate_family_file_tests.py
index f89341c..1e31ea9 100644
--- a/tests/generate_family_file_tests.py
+++ b/tests/generate_family_file_tests.py
@@ -9,8 +9,9 @@
from random import sample
from urllib.parse import urlparse
-import generate_family_file
+from pywikibot.scripts import generate_family_file
from pywikibot import Site
+
from tests.aspects import DefaultSiteTestCase
diff --git a/tox.ini b/tox.ini
index f109f51..5c9e621 100644
--- a/tox.ini
+++ b/tox.ini
@@ -137,7 +137,6 @@
# N816: mixedCase variable in global scope
per-file-ignores =
- generate_family_file.py: T001
pwb.py: FI53, T001
pywikibot/__init__.py: N802, N806, N815
pywikibot/_wbtypes.py: N802
@@ -156,6 +155,7 @@
pywikibot/page/__init__.py: N802
pywikibot/page/_collections.py: N802
pywikibot/pagegenerators.py: N802, N803, N806, N816
+ pywikibot/scripts/generate_family_file.py: T001
pywikibot/site/_datasite.py: N802
pywikibot/textlib.py: N801, N802, N803, N806
pywikibot/throttle.py: N802
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/634544
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: I8731ea58afca53da2c20a1ff614c1da4e020b5c5
Gerrit-Change-Number: 634544
Gerrit-PatchSet: 10
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: AbdealiJK <abdealikothari(a)gmail.com>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: Framawiki <framawiki(a)tools.wmflabs.org>
Gerrit-Reviewer: Hazard-SJ <hazardsjwiki(a)gmail.com>
Gerrit-Reviewer: JJMC89 <JJMC89.Wikimedia(a)gmail.com>
Gerrit-Reviewer: Legoktm <legoktm(a)debian.org>
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: RhinosF1 <rhinosf1(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: Zhuyifei1999 <zhuyifei1999(a)gmail.com>
Gerrit-Reviewer: Zppix <Megadev44s.mail(a)gmail.com>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged