The following commit has been merged in the master branch:
commit 7cadd77568a822d3169bb7946281a11e25d4410d
Author: Ole Streicher <oleb...@debian.org>
Date:   Sat Mar 19 22:52:44 2016 +0100

    MOve pkgstatus and component to properties

diff --git a/webtools/blendstasktools.py b/webtools/blendstasktools.py
index 50f3c50..f8f0a34 100644
--- a/webtools/blendstasktools.py
+++ b/webtools/blendstasktools.py
@@ -721,13 +721,11 @@ class DependantPackage:
         self.blendname      = blendname  # Blend that includes the package in 
dependency list
         self.taskname       = taskname   # Task which includes the Dependency
         self.pkg            = None  # Name of dependant package
-        self.source         = None  # Name of source package of the dependency
-        self.pkgstatus      = 'unknown'  # global pkgstatus: characterizes 
status of dependency, release, packaging status
         self.releases       = []    # List of releases a package might be in
-        self.component      = None  # One of: 'main', 'contrib', 'non-free', 
if a package shows up in several components which
-                                    # might happen over different releases, 
just prefer main over contrib over non-free
         self.properties     = {}
         self.properties['license']     = 'unknown'
+        self.properties['pkgstatus']     = 'unknown'
+        self.properties['component']     = None
         for field in HOMEPAGENONEFIELDS:
             self.properties[field]    = HOMEPAGENONE
         self.properties['Enhances'] = {}  # Dictionary Enhancing pkg name as 
key, Link to package information as value; empty in most cases
@@ -757,12 +755,8 @@ class DependantPackage:
               "pkg:"    + self.pkg
         if self.dep_strength:
             ret += ", Dep_strength: " + self.dep_strength
-        if self.pkgstatus:
-            ret += ", Pkg_status: "   + str(self.pkgstatus)
         if self.releases:
             ret += ", releases: "     + str(self.releases)
-        if self.component:
-            ret += ", component: "    + self.component
         if self.desc:
             ret += ", desc: "         + str(self.desc)
         for prop in self.properties:
@@ -991,7 +985,7 @@ class Tasks:
             for dep in use_dependencystatus:
                 for tdep in tdeps.dependencies[dep]:
                     # add only packages in main, because others do not have 
DDTP translations
-                    if tdep.component == 'main':
+                    if tdep.properties['component'] == 'main':
                         self.alldeps_in_main.append(tdep.pkg)
                         self.alldeps_in_main_info[tdep.pkg] = tdep
             # Also add meta package itself to make use of translated meta 
package description
@@ -1114,18 +1108,18 @@ class TaskDependencies:
             return
         if source != 1:
             # In general we can just add the dependency to the list
-            self.dependencies[dep.pkgstatus].append(dep)
+            self.dependencies[dep.properties['pkgstatus']].append(dep)
             return
 
         # if we are seeking for ddpo source packages we have to make sure that
         # no duplication occures
         hasnot = 1
-        for hasdep in self.dependencies[dep.pkgstatus]:
+        for hasdep in self.dependencies[dep.properties['pkgstatus']]:
             if hasdep.pkg == dep.pkg:
                 hasnot = 0
                 break
         if hasnot == 1:
-            self.dependencies[dep.pkgstatus].append(dep)
+            self.dependencies[dep.properties['pkgstatus']].append(dep)
 
     def GetTaskDependencies(self, source=0):
         global dep_strength_keys
@@ -1234,7 +1228,7 @@ class TaskDependencies:
                 # the following fields might be provided in the Blends tasks 
file for
                 # prospective packages.  This information should be ignored in 
case the
                 # package just exists at Debian mirrors
-                if pkgstatus[dep.pkgstatus]['order'] <= 
pkgstatus['experimental']['order']:
+                if pkgstatus[dep.properties['pkgstatus']]['order'] <= 
pkgstatus['experimental']['order']:
                     # for packages not in Debian we use the information from 
the tasks file
                     # if a package is in Debian we use the information from 
the Packages file (via UDD query)
                     # and the fields may not be overriden.  The list collects 
duplicated fields and will
@@ -1272,8 +1266,8 @@ class TaskDependencies:
                     else:
                         logger.error("Dep not initiated before %s %s -> 
something is wrong."
                                      % (key, stanza[key.lower()]))
-                    if dep.pkgstatus == 'unknown':
-                        dep.pkgstatus = 'pkgvcs'
+                    if dep.properties['pkgstatus'] == 'unknown':
+                        dep.properties['pkgstatus'] = 'pkgvcs'
                 elif key.lower() == 'vcs-browser':
                     if dep is not None:
                         if dep.vcs_found == 1:
@@ -1296,8 +1290,8 @@ class TaskDependencies:
                     else:
                         logger.error("Dep not initiated before Vcs-Browser %s 
-> something is wrong."
                                      % stanza['vcs-browser'])
-                    if dep.pkgstatus == 'unknown':
-                        dep.pkgstatus = 'pkgvcs'
+                    if dep.properties['pkgstatus'] == 'unknown':
+                        dep.properties['pkgstatus'] = 'pkgvcs'
                 elif key == 'section':
                     if dep is not None:
                         dep.properties[key.lower()]  = stanza[key.lower()]
@@ -1369,7 +1363,7 @@ class TaskDependencies:
                             fields_obsolete.append(key)
                             continue
                 elif key == 'Avoid' or key == 'Ignore':
-                    dep.pkgstatus = key.lower()
+                    dep.properties['pkgstatus'] = key.lower()
                 elif key == 'Remark':
                     (shortDesc, longDesc) = SplitDescription(stanza['remark'])
                     if shortDesc:
@@ -1391,7 +1385,7 @@ class TaskDependencies:
             # seek for certain field set in the tasks file to move the 
dependency into different
             # categories of development status of not yet included packages 
provided that there
             # is at least a package description given
-            if dep.pkgstatus == 'unknown' and dep.desc['en'] != {}:
+            if dep.properties['pkgstatus'] == 'unknown' and dep.desc['en'] != 
{}:
                 flag = 0
                 # first check those packages where some work was just done
                 for status in ['pkgvcs', 'unofficial', 'wnpp', 'prospective']:
@@ -1399,7 +1393,7 @@ class TaskDependencies:
                         if field in dep.properties:
                             if field in HOMEPAGENONEFIELDS and 
dep.properties[field] == HOMEPAGENONE :
                                 continue
-                            dep.pkgstatus = status
+                            dep.properties['pkgstatus'] = status
                             flag = 1
                             break
                     if flag == 1:
@@ -1411,7 +1405,7 @@ class TaskDependencies:
             for dep in tmp_dep_list:
                 if remark:
                     dep.properties['remark'] = remark
-                if fields_obsolete != [] and dep.pkgstatus != 'new':
+                if fields_obsolete != [] and dep.properties['pkgstatus'] != 
'new':
                     logger.info("Package %s is an official package and has 
information in UDD. The following extra information can be removed from tasks 
file %s: %s"
                                 % (dep.pkg, dep.taskname, 
str(fields_obsolete)))
                 self._AppendDependency2List(dep, source)
@@ -1452,23 +1446,23 @@ class TaskDependencies:
                 # Now set the information for the package found in the database
                 # Debian Edu contains packages from main/debian-installer - 
that's why we use startswith here
                 if row['component'].startswith('main'):
-                    dep.component = 'main'
+                    dep.properties['component'] = 'main'
                     if dep.dep_strength == 'Depends' or dep.dep_strength == 
'Recommends':
-                        dep.pkgstatus = 'official_high'
+                        dep.properties['pkgstatus'] = 'official_high'
                     elif dep.dep_strength == 'Suggests':
-                        dep.pkgstatus = 'official_low'
+                        dep.properties['pkgstatus'] = 'official_low'
                 else:
-                    dep.component = row['component']
+                    dep.properties['component'] = row['component']
                     # If a package is not found in main its status can be 
maximum non-free
-                    dep.pkgstatus = 'non-free'
+                    dep.properties['pkgstatus'] = 'non-free'
                 # if a package is released *only* in experimental decrease 
package status
                 if row['release'] == 'experimental':
-                    dep.pkgstatus = 'experimental'
+                    dep.properties['pkgstatus'] = 'experimental'
 
                 # move dependant package to different status list if needed 
because a status change was detected
-                if dep.pkgstatus != status:
+                if dep.properties['pkgstatus'] != status:
                     self.dependencies[status].remove(dep)
-                    self.dependencies[dep.pkgstatus].append(dep)
+                    self.dependencies[dep.properties['pkgstatus']].append(dep)
 
                 # Warn about remaining information of prospective package
                 if dep.desc['en'] and dep.desc['en']['short'] and 'debtags' 
not in dep.properties:
@@ -1476,7 +1470,7 @@ class TaskDependencies:
                     logger.info("WNPP for package %s just closed - extra 
information can be removed from task file %s."
                                 % (dep.pkg, dep.taskname))
 
-                dep.properties['license'] = license_in_component[dep.component]
+                dep.properties['license'] = 
license_in_component[dep.properties['component']]
                 for prop in PROPERTIES:
                     dep.properties[prop] = row[prop]
                 for prop in ('upstream_bugs', 'upstream_repository'):
@@ -1612,8 +1606,8 @@ class TaskDependencies:
                 if status != 'new':
                     self.dependencies[status].remove(dep)
                     self.dependencies['new'].append(dep)
-                dep.pkgstatus = 'new'
-                dep.component = row['component']
+                dep.properties['pkgstatus'] = 'new'
+                dep.properties['component'] = row['component']
                 dep.properties['version'].append({'archs':'all', 
'release':'NEW',
                                                   'version':row['version']})
                 dep.properties['pkg-url'] = 
'http://ftp-master.debian.org/new/%s_%s.html' % (row['source'], row['version'])
@@ -1691,8 +1685,8 @@ class TaskDependencies:
                     self.dependencies[status].remove(dep)
                     self.dependencies['pkgvcs'].append(dep)
                     status = 'pkgvcs'
-                dep.pkgstatus = status
-                dep.component = row['component']
+                dep.properties['pkgstatus'] = status
+                dep.properties['component'] = row['component']
                 dep.properties['version'].append({'archs':'all', 
'release':'VCS',
                                                   'version':row['version']})
                 # Warn about remaining information of prospective package
@@ -1727,23 +1721,23 @@ class TaskDependencies:
         # Verify whether packages which are neither in pool, new, vcs nor 
virtual have sufficient information in task file
         for status in self.dependencies.keys():
             for dep in self.dependencies[status]:
-                if dep.pkg not in pkgs_in_pool and dep.pkg not in pkgs_in_new 
and dep.pkg not in pkgs_virtual and dep.pkgstatus in ('unknown', 'pkgvcs'):
+                if dep.pkg not in pkgs_in_pool and dep.pkg not in pkgs_in_new 
and dep.pkg not in pkgs_virtual and dep.properties['pkgstatus'] in ('unknown', 
'pkgvcs'):
                     # If only Vcs fields are given than we currently do not 
know enough to print package information
-                    if dep.pkgstatus == 'pkgvcs' and 
(dep.properties['homepage'] == HOMEPAGENONE or dep.desc['en'] == {}):
+                    if dep.properties['pkgstatus'] == 'pkgvcs' and 
(dep.properties['homepage'] == HOMEPAGENONE or dep.desc['en'] == {}):
                         logger.error("Package %s in task %s has only Vcs 
information - please provide more information" % (dep.pkg, dep.taskname))
                         self.dependencies[status].remove(dep)
-                        # dep.pkgstatus == 'unknown'
+                        # dep.properties['pkgstatus'] == 'unknown'
                     if dep.properties['homepage'] == HOMEPAGENONE:
                         if dep.desc['en'] == {}:
                             logger.error("Package %s in task %s neither in 
pool nor new and is lacking homepage and description - ignored" % (dep.pkg, 
dep.taskname))
                         else:
-                            logger.error("Package %s in task %s neither in 
pool nor new and has no homepage information - ignored (%s)" % (dep.pkg, 
dep.taskname, dep.pkgstatus))
+                            logger.error("Package %s in task %s neither in 
pool nor new and has no homepage information - ignored (%s)" % (dep.pkg, 
dep.taskname, dep.properties['pkgstatus']))
                     else:
                         if dep.desc['en'] == {}:
                             logger.error("Package %s neither in pool nor new 
and has no description - ignored" % dep.pkg)
                 else:
                     # prevent printing WNPP of packages inside Debian
-                    if 'wnpp' in dep.properties and dep.pkgstatus not in 
('wnpp', 'pkgvcs'):
+                    if 'wnpp' in dep.properties and 
dep.properties['pkgstatus'] not in ('wnpp', 'pkgvcs'):
                         del dep.properties['wnpp']
 
         for dependency in self.dependencies.keys():
@@ -1752,7 +1746,7 @@ class TaskDependencies:
 
     def _QueryUDD4Package(self, source):
 
-        query = "EXECUTE pkg_releases ('%s', '%s')" % (self.pkg, 
self.component)
+        query = "EXECUTE pkg_releases ('%s', '%s')" % (self.pkg, 
self.properties['component'])
         _execute_udd_query(query)
         has_official = 0
         for rel in curs.fetchall():
@@ -1770,15 +1764,15 @@ class TaskDependencies:
                 prefix = ', '
 
         if has_official == 1:
-            if self.component == 'main':
+            if self.properties['component'] == 'main':
                 if self.dep_strength == 'Depends' or self.dep_strength == 
'Recommends':
-                    self.pkgstatus = 'official_high'
+                    self.properties['pkgstatus'] = 'official_high'
                 else:
-                    self.pkgstatus = 'official_low'
+                    self.properties['pkgstatus'] = 'official_low'
             else:
-                    self.pkgstatus = 'non-free'
+                    self.properties['pkgstatus'] = 'non-free'
         else:
-            self.pkgstatus = 'experimental'
+            self.properties['pkgstatus'] = 'experimental'
 
         if 'source' in self.properties:
             query = "EXECUTE src_vcs ('%s')" % (self.properties['source'])
diff --git a/webtools/blendstasktools_udd.py b/webtools/blendstasktools_udd.py
index 425401e..726bb18 100644
--- a/webtools/blendstasktools_udd.py
+++ b/webtools/blendstasktools_udd.py
@@ -678,13 +678,11 @@ class DependantPackage:
         self.taskname       = taskname   # Task which includes the Dependency
         self.pkg            = None  # Name of dependant package
         self.source         = None  # Name of source package of the dependency
-        self.pkgstatus      = 'unknown'  # global pkgstatus: characterizes 
status of dependency, release, packaging status
         self.releases       = []    # List of releases a package might be in
-        self.component      = None  # One of: 'main', 'contrib', 'non-free', 
if a package shows up in several components which
-                                    # might happen over different releases, 
just prefer main over contrib over non-free
-
         self.properties     = {}
         self.properties['license']     = 'unknown'
+        self.properties['pkgstatus']   = 'unknown'
+        self.properties['component']     = None
         for field in HOMEPAGENONEFIELDS:
             self.properties[field]    = HOMEPAGENONE
         self.properties['Enhances'] = {}  # Dictionary Enhancing pkg name as 
key, Link to package information as value; empty in most cases
@@ -718,12 +716,8 @@ class DependantPackage:
               "pkg:"    + self.pkg
         if self.dep_strength:
             ret += ", Dep_strength: " + self.dep_strength
-        if self.pkgstatus:
-            ret += ", Pkg_status: "   + str(self.pkgstatus)
         if self.releases:
             ret += ", releases: "     + str(self.releases)
-        if self.component:
-            ret += ", component: "    + self.component
         if self.desc:
             ret += ", desc: "         + str(self.desc)
         for prop in self.properties:
@@ -921,7 +915,7 @@ class Tasks:
             for dep in use_dependencystatus:
                 for tdep in tdeps.dependencies[dep]:
                     # add only packages in main, because others do not have 
DDTP translations
-                    if tdep.component == 'main':
+                    if tdep.properties['component'] == 'main':
                         self.alldeps_in_main.append(tdep.pkg)
                         self.alldeps_in_main_info[tdep.pkg] = tdep
             # Also add meta package itself to make use of translated meta 
package description
@@ -1035,7 +1029,7 @@ class TaskDependencies:
             return
 
         logger.debug("Appending package to list : %s" % dep.pkg)
-        self.dependencies[dep.pkgstatus].append(dep)
+        self.dependencies[dep.properties['pkgstatus']].append(dep)
         return
 
 
@@ -1067,37 +1061,37 @@ class TaskDependencies:
             # Debian Edu contains packages from main/debian-installer - that's 
why we use startswith here
             if pkg_src != 2:
                 if row['component'].startswith('main'):
-                    dep.component = 'main'
+                    dep.properties['component'] = 'main'
                     if dep.dep_strength == 'd' or dep.dep_strength == 'r':
-                        dep.pkgstatus = 'official_high'
+                        dep.properties['pkgstatus'] = 'official_high'
                     elif dep.dep_strength == 's':
-                        dep.pkgstatus = 'official_low'
+                        dep.properties['pkgstatus'] = 'official_low'
                     else:
-                        dep.pkgstatus = 'new'
+                        dep.properties['pkgstatus'] = 'new'
                         dep.properties['version'].append({'archs':'all', 
'release':'NEW',
                                                           
'version':row['version']})
                 else:
-                    dep.component = row['component']
+                    dep.properties['component'] = row['component']
                     # If a package is not found in main its status can be 
maximum non-free
-                    dep.pkgstatus = 'non-free'
+                    dep.properties['pkgstatus'] = 'non-free'
             elif pkg_src == 2:
-                dep.component = row['component']    
-                dep.pkgstatus = 'pkgvcs'
+                dep.properties['component'] = row['component']
+                dep.properties['pkgstatus'] = 'pkgvcs'
                 dep.properties['version'].append({'archs':'all', 
'release':'VCS',
                                                   'version':row['version']})
             
             # if a package is released *only* in experimental decrease package 
status
             if row.get('release') == 'experimental':
-                dep.pkgstatus = 'experimental'
+                dep.properties['pkgstatus'] = 'experimental'
 
             if dep.dep_strength == 'i':
-                dep.pkgstatus = 'ignore'
+                dep.properties['pkgstatus'] = 'ignore'
             elif dep.dep_strength == 'a':
-                dep.pkgstatus = 'avoid'
+                dep.properties['pkgstatus'] = 'avoid'
 
                # license
-            if dep.component != None and pkg_src != 2:
-                dep.properties['license'] = license_in_component[dep.component]
+            if dep.properties['component'] != None and pkg_src != 2:
+                dep.properties['license'] = 
license_in_component[dep.properties['component']]
 
             for prop in PROPERTIES:
                 dep.properties[prop] = row[prop]
diff --git a/webtools/templates/packages.xhtml 
b/webtools/templates/packages.xhtml
index 32de69f..89ddb59 100644
--- a/webtools/templates/packages.xhtml
+++ b/webtools/templates/packages.xhtml
@@ -520,19 +520,19 @@ function show_fulldesc(hash) {
                            </a>
                          </li>
                        </py:if>
-                       <py:if test="project.pkgstatus == 'new'">
+                       <py:if test="project.properties['pkgstatus'] == 'new'">
                          <li>
                            <a href="${project.properties['pkg-url']}">NEW 
entry</a>
                          </li>
                        </py:if>
-                       <py:if test="project.pkgstatus in ('official_high', 
'official_low', 'non-free', 'experimental')">
+                       <py:if test="project.properties['pkgstatus'] in 
('official_high', 'official_low', 'non-free', 'experimental')">
                          <li>
                            <a 
href="https://tracker.debian.org/pkg/${project.pkg}";>
                              Maintainer page
                            </a>
                          </li>
                        </py:if>
-                       <py:if test="project.pkgstatus in ('official_high', 
'official_low', 'non-free', 'experimental')">
+                       <py:if test="project.properties['pkgstatus'] in 
('official_high', 'official_low', 'non-free', 'experimental')">
                          <li>
                            <a 
href="https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no&amp;src=${project.pkg}";>
                              Bugs
@@ -599,8 +599,8 @@ function show_fulldesc(hash) {
                        </py:if>
                      </dd>
                    </py:if>
-                   <py:if test="project.component == 'main'
-                                and project.pkgstatus in ('official_high', 
'official_low', 'experimental')
+                   <py:if test="project.properties['component'] == 'main'
+                                and project.properties['pkgstatus'] in 
('official_high', 'official_low', 'experimental')
                                 and (not 'screenshot' in project.properties or 
'debtags' not in project.properties
                                      or (lang != 'en' and lang not in 
project.desc))">
                      <dt>Improve entry</dt>
diff --git a/webtools/templates/tasks.xhtml b/webtools/templates/tasks.xhtml
index 79178de..d178ec8 100644
--- a/webtools/templates/tasks.xhtml
+++ b/webtools/templates/tasks.xhtml
@@ -96,7 +96,7 @@
                <a 
href="mailto:${project.properties['maintainer']['email']}">${project.properties['maintainer']['name']}</a>
 <span py:if="'uploader' in project.properties">(<a 
href="mailto:${project.properties['uploader']['email']}">${project.properties['uploader']['name']}</a>)</span>
              </div>
           </td>
-          <td py:if="project.component and project.pkgstatus != 'new' and 
project.pkgstatus != 'pkgvcs'" class="project-info">
+          <td py:if="'component' in project.properties and 
project.properties['pkgstatus'] != 'new' and project.properties['pkgstatus'] != 
'pkgvcs'" class="project-info">
             <span py:if="project.properties['version']" class="tooltip" 
id="${project.pkg}-versions">
               <table class="versionclass">
                 <tr><th colspan="3" class="versionclass"><strong>Versions of 
package ${project.pkg}</strong></th></tr>
@@ -144,14 +144,14 @@
                 <span py:otherwise=""><a 
href="${project.properties['vcs']['browser']}">${project.properties['vcs'].get('type',
 'Vcs')}</a></span>
               </span>
             </div>
-            <div py:if="lang != 'en' and project.component == 'main' and 
project.pkgstatus != 'new' and project.pkgstatus != 'pkgvcs'">
+            <div py:if="lang != 'en' and project.properties['component'] == 
'main' and project.properties['pkgstatus'] != 'new' and 
project.properties['pkgstatus'] != 'pkgvcs'">
               <div py:choose="">
                   <div class="trans" py:when="lang in project.desc"><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/forexternalreview/${project.pkg}";>${fixtranslation}</a></div>
                   <div class="trans-missing" py:otherwise=""><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/fetch?package=${project.pkg}";>${translatedesc}</a></div>
                </div>
             </div>
-            <div class="language" py:if="'language' in project.properties and 
project.component != 'main'">Language: ${project.properties['language']}</div>
-            <div py:if="project.properties['version'] and (project.pkgstatus 
== 'new' or project.pkgstatus == 'pkgvcs')">Version: 
${project.properties['version'][0]['version']}</div>
+            <div class="language" py:if="'language' in project.properties and 
project.properties['component'] != 'main'">Language: 
${project.properties['language']}</div>
+            <div py:if="project.properties['version'] and 
(project.properties['pkgstatus'] == 'new' or project.properties['pkgstatus'] == 
'pkgvcs')">Version: ${project.properties['version'][0]['version']}</div>
            </td>
          </tr>
          <tr>
@@ -197,7 +197,7 @@
               <span class="year" py:if="'year' in 
project.properties['published']">(${project.properties['published']['year']})</span>
             </div>
           </td>
-          <td py:if="project.component and project.pkgstatus != 'new' and 
project.pkgstatus != 'pkgvcs'" class="project-icon">
+          <td py:if="'component' in project.properties and 
project.properties['pkgstatus'] != 'new' and project.properties['pkgstatus'] != 
'pkgvcs'" class="project-icon">
             <div py:choose="">
               <div py:when="'screenshot' in project.properties">
                 <span class="tooltip" id="${project.pkg}-screenshot">

-- 
Static and dynamic websites for Debian Pure Blends

_______________________________________________
Blends-commit mailing list
Blends-commit@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/blends-commit

Reply via email to