[Pywikipedia-l] SVN: [6306] trunk/pywikipedia

wikipedian at svn.wikimedia.org wikipedian at svn.wikimedia.org
Tue Jan 27 20:38:34 UTC 2009


Revision: 6306
Author:   wikipedian
Date:     2009-01-27 20:38:34 +0000 (Tue, 27 Jan 2009)

Log Message:
-----------
Bugfix:
replace.py a b -xml:mydump.xml -namespace:0 also changed pages in other
namespaces.

This is still not an ideal solution, as pages in other namespaces are still
processed in the XmlDumpReplacePageGenerator. This takes a lot of time,
especially for large deletion logs etc. which are in the Wikipedia
namespace.

cydeweys, russblau and the others: it would be nice if you would review my
changes, and also try to come up with a more elegant solution. Once we have
agreed on a good solution, we also need to make similar changes to other
scripts, such as selflink.py, table2wiki.py, and template.py. --Daniel

Modified Paths:
--------------
    trunk/pywikipedia/pagegenerators.py
    trunk/pywikipedia/replace.py

Modified: trunk/pywikipedia/pagegenerators.py
===================================================================
--- trunk/pywikipedia/pagegenerators.py	2009-01-27 19:58:05 UTC (rev 6305)
+++ trunk/pywikipedia/pagegenerators.py	2009-01-27 20:38:34 UTC (rev 6306)
@@ -806,11 +806,15 @@
         self.namespaces = []
 
     """
-    This function returns the combination of all accumulated generators
-    that have been created in the process of handling arguments.
-    Only call it after all arguments have been parsed.
+    This method returns the combination the given generator and all
+    accumulated generators that have been created in the process of handling
+    arguments.
+
+    Only call this method after all arguments have been parsed.
     """
-    def getCombinedGenerator(self):
+    def getCombinedGenerator(self, gen = None):
+        if gen:
+            self.gens.insert(0, gen)
         if (len(self.gens) == 0):
             return None
         if (len(self.gens) == 1):

Modified: trunk/pywikipedia/replace.py
===================================================================
--- trunk/pywikipedia/replace.py	2009-01-27 19:58:05 UTC (rev 6305)
+++ trunk/pywikipedia/replace.py	2009-01-27 20:38:34 UTC (rev 6306)
@@ -684,9 +684,8 @@
                  for PageTitle in PageTitles]
         gen = iter(pages)
 
+    gen = genFactory.getCombinedGenerator(gen)
     if not gen:
-        gen = genFactory.getCombinedGenerator()
-    if not gen:
         # syntax error, show help text from the top of this file
         wikipedia.showHelp('replace')
         return





More information about the Pywikipedia-l mailing list