Excerpts from Maciej Bliziński's message of Sun Mar 27 10:22:26 -0400 2011:
> > + def GetObsoletedBy(self): > > + """Collects obsolescence information from the package if it > > exists > > + > > + Documentation: > > + http://wiki.opencsw.org/obsoleting-packages > > + > > + Returns: > > + a tuple (bool, list) of (syntax_ok, obsoleted_by) > > This bit needs updating. Ah yes. Good catch. Index: package.py =================================================================== --- package.py (revision 13944) +++ package.py (working copy) @@ -358,6 +358,39 @@ fd.close() return depends + def GetObsoletedBy(self): + """Collects obsolescence information from the package if it exists + + Documentation: + http://wiki.opencsw.org/obsoleting-packages + + Returns: + a dict { syntax_ok: bool, obsoleted_by: [[pkg,cat], [pkg2,cat2], ...] } ^^ I'm not sure if I'm describing the data structure in the proper python way here. Should the [] be ()? + + If the package has not been obsoleted or the package predates the + implementation of this mechanism, the list is empty. If the + package provides obsolescence information but the format of the + information is invalid, syntax_ok will be False and the list will + be empty. + """ + + obsoleted_syntax_ok = True + obsoleted_by = [] + obsoleted_by_path = os.path.join(self.directory, "install", "obsolete") + if not os.path.exists(obsoleted_by_path): + return obsoleted_by + + with open(obsoleted_by_path, "r") as fd: + for line in fd: + fields = re.split(c.WS_RE, line) + if len(fields) < 2: + obsoleted_syntax_ok = False + logging.warning("Bad line in obsolete file: %s", repr(line)) + continue + pkgname, catalogname = fields[0:2] + obsoleted_by.append((pkgname, catalogname)) + return { "syntax_ok": obsoleted_syntax_ok, "obsoleted_by": obsoleted_by } + > Incrementing of the data structure version doesn't need to be done > in this change, if it only adds this function. It will need to be > in the change in the code creating pkg_stats in package_stats.py. Right. And I'll do my best to keeps the commits atomic in the 'git way' where each change is as self contained as possible, newer building on older. Thanks -Ben -- Ben Walton Systems Programmer - CHASS University of Toronto C:416.407.5610 | W:416.978.4302 _______________________________________________ devel mailing list devel@lists.opencsw.org https://lists.opencsw.org/mailman/listinfo/devel