def getTaggedRelease(self, serverDir, tag, flavor=None): """get the collection of products that make up a tagged release and return it as a TaggedProductList instance. If such a release has not yet been created/written, return None. @param serverDir a local directory representing the root of the package distribution tree @param tag the name of the tagged release of interest @param flavor the target flavor for this release. An implementation may ignore this variable. """ file = os.path.join(serverDir, self.getTaggedReleasePath(tag, flavor)) if not os.path.exists(file): if self.verbose > 1: msg = "Release is not yet available: " + tag if flavor is not None: msg += " (%s)" % flavor print >> self.log, msg return None return TaggedProductList.fromFile(file, tag)