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 <[email protected]>
Gerrit-Reviewer: AbdealiJK <[email protected]>
Gerrit-Reviewer: Dvorapa <[email protected]>
Gerrit-Reviewer: Framawiki <[email protected]>
Gerrit-Reviewer: Hazard-SJ <[email protected]>
Gerrit-Reviewer: JJMC89 <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Matěj Suchánek <[email protected]>
Gerrit-Reviewer: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: Mpaa <[email protected]>
Gerrit-Reviewer: RhinosF1 <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: Zhuyifei1999 <[email protected]>
Gerrit-Reviewer: Zppix <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to