[tools] framing up functionality to store beat writers instructions in each beats talk: page

Pete Travis immanetize at fedoraproject.org
Fri Feb 28 23:34:12 UTC 2014


commit a50d1f13385d78cdef9faa01d45d349af7d697b6
Author: Pete Travis <immanetize at fedoraproject.org>
Date:   Fri Feb 28 16:33:43 2014 -0700

    framing up functionality to store beat writers instructions in each beats talk: page

 tools/pybeats/beats.py |  101 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 89 insertions(+), 12 deletions(-)
---
diff --git a/tools/pybeats/beats.py b/tools/pybeats/beats.py
index d7bd0bb..7cb5008 100644
--- a/tools/pybeats/beats.py
+++ b/tools/pybeats/beats.py
@@ -1,14 +1,10 @@
 #!/usr/bin/python
 import mwclient
 import sys
+import os
 
-username = 'yourFASID'
-password = 'DEADBEEF'
-site = mwclient.Site('fedoraproject.org', path = '/w/')
-if username and password:
-    site.login(username, password)
-
-beats = ( "Documentation_Beats_Installer",
+def beats_list():
+    beat_list = ( "Documentation_Beats_Installer",
         "Documentation_Architecture_Specific_Content_Beat",
         "Documentation_x86_Specific_Content_Beat",
         "Documentation_x86_64_Specific_Beat",
@@ -57,7 +53,60 @@ beats = ( "Documentation_Beats_Installer",
         "Documentation_Musicians_Beat",
         "Documentation_Monitoring_Beat"
         )
+    return beat_list
+
+# this just doesn't work
+#beatlist = beats_list() 
+#sys.path.append( '%s/beats_info' % os.getcwd() )
+#for beat in beatlist:
+#    print("importing %s" % beat)
+#    try:
+#        module_object = __import__(beat)
+#    except:
+#        print("failed to open module object for %s" % beat)
+#    try:
+#        locals()[beat] = module_object
+#    except:
+#        print("import of %s beat failed" % beat)
+
 
+def create_beats_skeleton():
+    beatlist = beats_list()
+    if not os.path.isdir("beats_info"):
+        os.mkdir("beats_info")
+    initfile = "beats_info/__init__.py"
+    doinit = open(initfile, 'w')
+    doinit.write('#!/usr/bin/python')
+    doinit.close()
+    for beat in beatlist:
+        filename = "beats_info/" + beat + ".py"
+ #       filename = beat + ".py"
+        f = open(filename, 'w')
+        f.write('#!/usr/bin/python\n\n')
+        f.write('###\n# Beat definition and guidance for %s\n###\n\n' % beat)
+        f.write('def return_beat():\n')
+        f.write('   beat = {}\n')
+        f.write('   beat[\'beat_name\'] = "%s"\n' % beat)
+        f.write('   beat[\'beat_overview\'] = ""\n')
+        f.write('   beat[\'suggested_packages\'] = ()\n')
+        f.write('   beat[\'suggested_contacts\'] = ()\n')
+        f.write('   beat[\'suggested_reading\'] = ()\n')
+        f.write('   return(beat)\n')
+        f.close()
+#try:
+#    import_beats()
+##    import beats_info
+#except:
+#    print("import fail")
+#    create_beats_skeleton()
+#
+
+def setup_wiki_connection(username, password):
+    site = mwclient.Site('fedoraproject.org', path = '/w/')
+    if username and password:
+        site.login(username, password)
+    return site
+       
 footer = """
 [[Category:Docs Project]]
 [[Category:Draft documentation]]
@@ -66,9 +115,37 @@ footer = """
 header = "{{header|docs}}"
 docs_beat_open = "{{Docs_beat_open}}"
 
-for beat in beats:
-    page = site.Pages[beat]
-    text = page.edit()
-    string = header + docs_beat_open + footer
-    page.save(string)
+def clearbeats(beats, string):
+    for beat in beats:
+        page = site.Pages[beat]
+        text = page.edit()
+        string = header + docs_beat_open + footer
+        page.save(string)
+
+def update_talk():
+    beatlist = beats_list()
+    for beat in beatlist:
+        module = __import__(beat)
+        info = module.return_beat()
+        talk_page = "Talk:" + beat
+        page = site.Pages[talk_page]
+        talk_string = "{{admon/important|Page is autogenerated|This page is autogenerated by pybeats in tools.git . Discuss your beat on the docs mailing list, directions only here.}}\n"
+        talk_string += "==%s Writer Guide==\n" % info['beat_name']
+        talk_string += "===Overview===\n%s\n" % info['beat_overview']
+        talk_string += "===Suggested Packages===\n"
+        for package in info['suggested_packages']:
+            if package:
+               talk_string += "* %s\n" % package
+        talk_string += "===Suggested Reading===\n"
+        for homework in info['suggested_reading']:
+            if homework:
+                talk_string += "* %s\n" % homework
+        talk_string += "===Suggested Contacts===\n"
+        for person in info['suggested_contacts']:
+            if person:
+                talk_string += "* %s\n" % person
+
+
+
+
 


More information about the docs-commits mailing list