The following commit has been merged in the master branch:
commit 7637dfe1ccc966f19a05a11866a7b65e02d0ad0e
Author: Akshita Jha <[email protected]>
Date:   Wed Jul 22 02:53:31 2015 +0530

    Modify blendstasktools_udd.py to remove errors in previous commit : Solves 
i) UnicodeEncodeError, ii) correctly organises packages into their respective 
section, iii) Removes repetitive packages

diff --git a/webtools/blendstasktools_udd.py b/webtools/blendstasktools_udd.py
index 9be1fd4..c300956 100644
--- a/webtools/blendstasktools_udd.py
+++ b/webtools/blendstasktools_udd.py
@@ -1011,14 +1011,48 @@ class TaskDependencies:
         # no dupplication in case of source depencencies
         if dep == None:
             return
-        if dep.dep_strength == 'Ignore' or dep.dep_strength == 'Avoid':
+        if dep.dep_strength == 'i' or dep.dep_strength == 'a':
+           #print "Ignore dep.pkg : ",dep.pkg
             return
+
+       # Solves UnicodeEncodeError because of characters present in the
+        # long description of the dependecies in 'unoficial','prospective' 
packages
+        try:
+                   dep.desc['en']['long'] = 
dep.desc['en']['long'].encode('ascii','xmlcharrefreplace')
+        except:
+            pass
+
+        # Solves UnicodeEncodeError because of characters present in the
+        # authors name of the dependencies in 'wnpp' packages
+       try:
+           dep.properties['published']['authors'] = 
dep.properties['published']['authors'].encode('ascii','xmlcharrefreplace')
+        except:
+           pass
+
+       # Solves UnicodeEncodeError because of characters present in the title 
of 
+       # dependencies in blends debian-science, debian-pan
+       try:
+           dep.properties['published']['title'] = 
dep.properties['published']['title'].encode('ascii','xmlcharrefreplace')
+        except:
+           pass
+
+       #print "Appending dep.pkg : ",dep.pkg
         self.dependencies[dep.pkgstatus].append(dep)
         return
 
 
-    def GetDepInfo(self, curs, dependencies): 
+    def GetDepInfo(self, curs, dependencies, pkg_src): 
 
+       # official pacakage
+       # if pkg_src == 1: 
+       #       print "\n=============OFFICIAL==============\n"
+       # prospective package
+       # elif pkg_src == 2:
+       #       print "\n==============PROSPECTIVE==========\n"
+       # new package
+       # else: 
+       #       print "\n==============NEW==================\n"
+       
        for row in RowDictionaries(curs):
            #for r in row:
            #   print r, ":", row[r]
@@ -1027,28 +1061,38 @@ class TaskDependencies:
             found = False
             for dep in dependencies:
                 if dep.pkg == row['package']:
+                   # print dep.pkg, ":",
                     found = True
                     break
        
-            # Now set the information for the package found in the database
+            # Now set the information for the package found in the database 
(not for prospective packages)
             # Debian Edu contains packages from main/debian-installer - that's 
why we use startswith here
-            if row['component'].startswith('main'):
-                dep.component = 'main'
-            
-            if dep.dep_strength == 'd' or dep.dep_strength == 'r':
-                dep.pkgstatus = 'official_high'
-            elif dep.dep_strength == 's':
-                dep.pkgstatus = 'official_low'
-            else:
-                dep.component = row['component']
-                # If a package is not found in main its status can be maximum 
non-free
-                dep.pkgstatus = 'non-free'
+           if pkg_src != 2:
+                if row['component'].startswith('main'):
+                    dep.component = 'main'
+                   if dep.dep_strength == 'd' or dep.dep_strength == 'r':
+                        dep.pkgstatus = 'official_high'
+                    elif dep.dep_strength == 's':
+                        dep.pkgstatus = 'official_low'
+                   else:
+                       dep.pkgstatus = 'new'
+                else:
+                    dep.component = row['component']
+                    # If a package is not found in main its status can be 
maximum non-free
+                    dep.pkgstatus = 'non-free'
+           elif pkg_src == 2:
+               dep.pkgstatus = 'pkgvcs'
             
             # if a package is released *only* in experimental decrease package 
status
             if 'release' in row and row['release'] == 'experimental':
-               dep.pkgstatus = 'experimental'
+               dep.pkgstatus = 'experimental'          
 
-            # dep.properties['license'] is already correct
+            if dep.dep_strength == 'i':
+               dep.pkgstatus = 'ignore'
+           elif dep.dep_strength == 'a':
+               dep.pkgstatus = 'avoid'
+
+           # dep.properties['license'] is already correct
             for prop in PROPERTIES:
                 dep.properties[prop] = row[prop]
                             
@@ -1059,7 +1103,6 @@ class TaskDependencies:
                type_vcs = 'vcs-type' 
            if type_vcs != '':
                dep.properties['vcs-type'] = row[type_vcs]
-               # print "vcs-type : ",dep.properties['vcs-type']
 
            type_url = ''
            if 'vcs_url' in row :
@@ -1068,7 +1111,6 @@ class TaskDependencies:
                type_url = 'vcs-url' 
            if type_url != '':
                 dep.properties['vcs-url'] = row[type_url]
-               # print "vcs-url : ",dep.properties['vcs-url']
 
            type_browser = ''
            if 'vcs_browser' in row :
@@ -1078,9 +1120,7 @@ class TaskDependencies:
            if type_browser != '':
                 dep.properties['vcs-browser'] = row[type_browser]
             elif dep.properties['vcs-browser'] == HOMEPAGENONE and type_vcs != 
'' and type_url != '':
-                # print "\n################ROW###################\n",row
                  dep.properties['vcs-browser'] = 
BrowserFromVcsURL(dep.properties['vcs-type'], dep.properties['vcs-url'])
-                # print "vcs-browser after: ",dep.properties['vcs-browser']
 
             # enhances to be written
             # if row['enhanced']:
@@ -1149,6 +1189,7 @@ class TaskDependencies:
                         dep.properties['last_uploader_simple'] = 
to_unicode('%s <%s>' % (_name, _url))
                     except UnicodeDecodeError, err:
                         logger.error("Encoding problem for last uploader - 
assume same as maintainer for package %s (%s)", dep.pkg, err)
+
            # link to packages.debian.org search page to see overview about all
            # package versions in all releases
            # dep.properties['pkg-url'] = PKGURLMASK % dep.pkg
@@ -1178,7 +1219,7 @@ class TaskDependencies:
 
         # Get the title and description of each task in a blend
         # Title, Description
-        query = "SELECT title, description, long_description FROM blends_tasks 
WHERE task='%s' AND blend='%s'" % (self.task, self.blendname)
+        query = "SELECT DISTINCT title, description, long_description FROM 
blends_tasks WHERE task='%s' AND blend='%s'" % (self.task, self.blendname)
         _execute_udd_query(query)
         if curs.rowcount > 0:
             self.metapkg.PrintedName, short, long = curs.fetchone()
@@ -1213,20 +1254,21 @@ class TaskDependencies:
         query = "EXECUTE query_pkgs ('%s', '%s')" % (List2PgArray(alldepends), 
List2PgSimilarArray(alldepends))
         _execute_udd_query(query)
         if curs.rowcount > 0:
-            self.GetDepInfo(curs, dependencies)
+            self.GetDepInfo(curs, dependencies, 1)
            #print "+++++++++++++++++++++", self.task
        
 
         # Get the package_name, license, dependency of the prospective 
dependencies of the task
         query = "SELECT DISTINCT bp.package, bp.license, b.dependency \
-                FROM blends_prospectivepackages bp JOIN blends_dependencies b 
ON b.blend=bp.blend \
-                WHERE bp.blend='%s' and b.task='%s'" % (self.blendname, 
self.task)
+                FROM blends_prospectivepackages bp JOIN blends_dependencies b 
ON b.blend=bp.blend AND b.package=bp.package \
+                WHERE bp.blend='%s' and b.task='%s' ORDER BY bp.package" % 
(self.blendname, self.task)
         _execute_udd_query(query)
 
         alldepends = []
         dependencies = []
         if curs.rowcount > 0:
             pros_info = curs.fetchall() 
+           #print "pros_info : ",pros_info
 
             for each_pros in pros_info:
                 dep = DependantPackage(self.blendname, self.task)
@@ -1244,7 +1286,7 @@ class TaskDependencies:
        query = "SELECT DISTINCT bp.package, bp.license, b.dependency, 
bp.component, bp.homepage, bp.section, \
                         bp.source, bp.vcs_type, bp.vcs_url, bp.vcs_browser, 
bp.changed_by, \
                         bp.uploaders, bp.maintainer, pop.vote, pop.recent, 
tags.debtags, bp.description AS description_en, bp.long_description AS 
long_description_en\
-                FROM blends_prospectivepackages bp JOIN blends_dependencies b 
ON b.blend=bp.blend \
+                FROM blends_prospectivepackages bp JOIN blends_dependencies b 
ON b.blend=bp.blend AND b.package=bp.package \
                 LEFT OUTER JOIN popcon pop ON pop.package=bp.package \
                 LEFT OUTER JOIN ( \
                 SELECT package, array_agg(tag) AS debtags \
@@ -1255,24 +1297,25 @@ class TaskDependencies:
                     AND tag NOT LIKE '%%not-yet-tagged%%' \
                 GROUP BY package \
                 ) tags ON tags.package = bp.package \
-                WHERE bp.blend='%s' and b.task='%s'" % (self.blendname, 
self.task)
+                WHERE bp.blend='%s' and b.task='%s' ORDER BY bp.package" % 
(self.blendname, self.task)
         _execute_udd_query(query)
         if curs.rowcount > 0:
            #print "going into getdepinfo from prospective : "
-            self.GetDepInfo(curs, dependencies)
+            self.GetDepInfo(curs, dependencies, 2)
            #print "-----------------", self.task
 
 
         # Get information about new dependencies of the task
         query = "SELECT DISTINCT new.package FROM new_packages new JOIN 
blends_dependencies b ON b.package=new.package \
-                WHERE b.blend='%s' and b.task='%s'" % (self.blendname, 
self.task)
+                WHERE b.blend='%s' and b.task='%s' ORDER BY new.package" % 
(self.blendname, self.task)
         _execute_udd_query(query)
        alldepends = []
        dependencies = []
        pkgs_new = []
         if curs.rowcount > 0:
             pkgs_new = curs.fetchall()
-           # print "pkgs_new : ",pkgs_new
+           #print "pkgs_new : ",pkgs_new
+
            for each_new_pkg in pkgs_new:
                 dep = DependantPackage(self.blendname, self.task)
               
@@ -1284,7 +1327,7 @@ class TaskDependencies:
         query = "EXECUTE query_new('%s')" % List2PgArray(alldepends)
         _execute_udd_query(query)
         if curs.rowcount > 0:
-            self.GetDepInfo(curs, dependencies)
+            self.GetDepInfo(curs, dependencies, 3)
            #print "xxxxxxxxxxxxxxxxxxx", self.task
 
        return 1

-- 
Static and dynamic websites for Debian Pure Blends

_______________________________________________
Blends-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/blends-commit

Reply via email to