[library-web] combine mallard documents regardless of their order



commit 058d083d9fdda0f1ff4273bd4707aff5c87a1385
Author: Frédéric Péters <fpeters 0d be>
Date:   Wed Jan 29 20:49:38 2014 +0000

    combine mallard documents regardless of their order

 src/lgo.py           |   55 ++++++++++++++++++++-----------------------------
 src/modtypes/base.py |    2 -
 2 files changed, 23 insertions(+), 34 deletions(-)
---
diff --git a/src/lgo.py b/src/lgo.py
index a9a69c8..7604f1c 100755
--- a/src/lgo.py
+++ b/src/lgo.py
@@ -151,7 +151,7 @@ class Lgo(App):
                 else:
                     filename = module
                 doc_modules.extend(self.extract_modules(filename))
-            for doc_module in doc_modules:
+            for doc_module in self.fix_modules_order(doc_modules):
                 doc_module.process()
             sys.exit(0)
 
@@ -174,6 +174,19 @@ class Lgo(App):
         self.generate_symbols_files()
         self.generate_static_pages()
 
+    def fix_modules_order(self, modules):
+        for doc in modules[:]:
+            # combine gnome-help from gnome-getting-started-docs with
+            # gnome-help from gnome-user-docs
+            if doc.modulename == 'gnome-help' and doc.tarballname == 'gnome-getting-started-docs':
+                modules.remove(doc)
+                try:
+                    gnome_help_doc = [x for x in modules if x.modulename == 'gnome-help'][0]
+                except IndexError:
+                    continue
+                gnome_help_doc.extend_mallard(doc)
+        return modules
+
     def get_yelp_categories(self):
         logging.info('Getting categories from Yelp')
 
@@ -498,7 +511,7 @@ class Lgo(App):
         tree = ET.ElementTree(gduxrefs)
         tree.write(os.path.join(tmp_dirname, 'gduxrefs.xml'))
 
-        for doc_module in doc_modules:
+        for doc_module in self.fix_modules_order(doc_modules):
             logging.info('processing %s (from %s moduleset)' % (
                         doc_module, version_number))
             doc_module.process()
@@ -714,31 +727,6 @@ class Lgo(App):
                 else:
                     continue
 
-                if doc.modulename == 'gnome-help' and tarname_without_minor.startswith(
-                        'gnome-getting-started-docs'):
-                    # special handling
-                    try:
-                        gnome_help_doc = [x for x in app.documents if x.module == 'gnome-help'][0]
-                    except IndexError:
-                        logging.debug('failed combining documents (%s) (missing gnome-help)' % \
-                                doc.one_dot_version)
-                    else:
-                        try:
-                            gnome_help_doc.version_subs.get(doc.one_dot_version).extend_mallard(doc)
-                        except AttributeError:
-                            logging.debug('failed combining documents (%s) (missing version)' % \
-                                    doc.one_dot_version)
-                            continue
-                        logging.debug('extending gnome-help with gnome-getting-started-docs %s' % \
-                                doc.one_dot_version)
-                        doc.filename = filename
-                        doc.mtime_tarball = mtime
-                        if extraction_happened:
-                            doc.extract(force=True)
-                        else:
-                            extraction_happened = doc.extract()
-                    continue
-
                 if '$(' in doc.modulename:
                     logging.debug('skipping because it has $( in its modulename')
                     continue
@@ -769,7 +757,6 @@ class Lgo(App):
                 doc.path = self.get_module_web_path(doc)
                 if self.config.channels is None or doc.channel in self.config.channels:
                     doc_modules.append(doc)
-                    doc.get_libgo_document([])
                 else:
                     logging.debug('ignoring %s, not in an appropriate channel' % doc.modulename)
 
@@ -791,6 +778,7 @@ class Lgo(App):
     def process_extra_tarballs(self):
         if self.config.extra_tarballs:
             logging.info('processing extra tarballs')
+            doc_modules = []
             for url in self.config.extra_tarballs:
                 logging.debug('processing extra tarball: %s' % url)
                 filename = self.download(url)
@@ -800,18 +788,21 @@ class Lgo(App):
                     filename = [filename]
 
                 for fname in filename:
-                    for doc_module in self.extract_modules(fname):
-                        doc_module.process()
+                    doc_modules.extend(self.extract_modules(fname))
+            for doc_module in self.fix_modules_order(doc_modules):
+                doc_module.process()
 
     def process_nightly_tarballs(self):
         logging.info('processing nightly tarballs')
+        doc_modules = []
         for filename in os.listdir(self.config.nightly_tarballs_location):
             if not (filename.endswith('.tar.gz') or filename.endswith('.tar.bz2') or
                     filename.endswith('.tar.xz')):
                 continue
             filename = os.path.join(self.config.nightly_tarballs_location, filename)
-            for doc_module in self.extract_modules(filename, nightly = True):
-                doc_module.process()
+            doc_modules.extend(self.extract_modules(filename, nightly=True))
+        for doc_module in self.fix_modules_order(doc_modules):
+            doc_module.process()
 
     def generate_indexes(self):
         logging.info('generating indexes')
diff --git a/src/modtypes/base.py b/src/modtypes/base.py
index 1906838..b98f466 100644
--- a/src/modtypes/base.py
+++ b/src/modtypes/base.py
@@ -135,7 +135,6 @@ class DocModule(object):
             doc.tarballname = self.tarballname
             doc._last_version = self.version
             doc.versions = [self.one_dot_version]
-            doc.version_subs = {}
             app.documents.append(doc)
         else:
             #if doc._last_version == self.version and not self.git_version:
@@ -161,7 +160,6 @@ class DocModule(object):
                     doc.languages.append(lang)
 
         doc.version_mapping[self.one_dot_version] = self.version
-        doc.version_subs[self.one_dot_version] = self
 
         # only keep authorised languages
         if app.config.languages:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]