[Collab-qa-commits] r1752 - udd/udd

Andreas Tille tille at alioth.debian.org
Thu Jun 24 06:49:43 UTC 2010


Author: tille
Date: 2010-06-24 06:49:34 +0000 (Thu, 24 Jun 2010)
New Revision: 1752

Modified:
   udd/udd/ddtp_gatherer.py
Log:
Work around a problem in some languages and make sure at least those languages were imported, where the problem does not exist.


Modified: udd/udd/ddtp_gatherer.py
===================================================================
--- udd/udd/ddtp_gatherer.py	2010-06-03 13:06:52 UTC (rev 1751)
+++ udd/udd/ddtp_gatherer.py	2010-06-24 06:49:34 UTC (rev 1752)
@@ -131,10 +131,13 @@
         query = "EXECUTE ddtp_delete ('%s', '%s')" % (rel, lang)
         cur.execute(query)
 
+        i18n_error_flag=0
         descstring = 'Description-'+lang
         g = gzip.GzipFile(dir + filename)
         try:
           for stanza in deb822.Sources.iter_paragraphs(g, shared_storage=False):
+            if i18n_error_flag == 1:
+              continue
             self.pkg             = ddtp(stanza['package'], rel, lang)
             self.pkg.md5sum      = stanza['Description-md5']
             self.pkg.version     = stanza['Version']
@@ -146,7 +149,12 @@
             query = "EXECUTE ddtp_check_before_insert ('%s', '%s', '%s', '%s', '%s', '%s')" % \
                     (self.pkg.package, self.pkg.distribution, self.pkg.component, \
                      self.pkg.release, self.pkg.language, self.pkg.version)
-            cur.execute(query)
+            try:
+              cur.execute(query)
+            except InternalError, err:
+              print >>stderr, "Encoding problem reading %s%s (%s)" % ( dir, filename, err)
+              i18n_error_flag=1
+              continue
             if cur.fetchone()[0] > 0:
               if debug > 0:
                 print >>stderr, "Just imported key in language %s: " % self.pkg.language, \
@@ -195,6 +203,8 @@
                     (self.pkg.package, self.pkg.version, self.pkg.description, self.pkg.md5sum)
         except IOError, err:
           print >>stderr, "Error reading %s (%s)" % (dir+filename, err)
+        # commit every successfully language to make sure we get any languages in an willnot be blocked by a single failing import
+        self.connection.commit()
 
     cur.execute("DEALLOCATE ddtp_insert")
     cur.execute("ANALYZE %s" % my_config['table'])




More information about the Collab-qa-commits mailing list