def __repr__(self): """Returns an informative representation of the job.""" # This code assumes the job is referentially intact with good data, # or it will blow up. parts = "%s for" % self.__class__.__name__ parts += " distribution: %s" % self.distribution.name parts += ", distroseries: %s" % self.distroseries.name parts += ", parent[overlay?/pockets/components]: " parents = [] for i in range(len(self.overlays)): series = DistroSeries.get(self.parents[i]) parents.append( "%s[%s/%s/%s]" % (series.name, self.overlays[i], self.overlay_pockets[i], self.overlay_components[i])) parts += ",".join(parents) if self.packagesets is None: pkgsets = None else: pkgsets = [ IStore(Packageset).get(Packageset, int(pkgsetid)).name for pkgsetid in self.packagesets ] parts += ", architectures: %s" % (self.arches, ) parts += ", archindep_archtag: %s" % self.archindep_archtag parts += ", packagesets: %s" % pkgsets parts += ", rebuild: %s" % self.rebuild return "<%s>" % parts
def __repr__(self): """Returns an informative representation of the job.""" # This code assumes the job is referentially intact with good data, # or it will blow up. parts = "%s for" % self.__class__.__name__ parts += " distribution: %s" % self.distribution.name parts += ", distroseries: %s" % self.distroseries.name parts += ", parent[overlay?/pockets/components]: " parents = [] for i in range(len(self.overlays)): series = DistroSeries.get(self.parents[i]) parents.append("%s[%s/%s/%s]" % ( series.name, self.overlays[i], self.overlay_pockets[i], self.overlay_components[i])) parts += ",".join(parents) pkgsets = [ IStore(Packageset).get(Packageset, int(pkgsetid)).name for pkgsetid in self.packagesets] parts += ", architectures: %s" % (self.arches,) parts += ", archindep_archtag: %s" % self.archindep_archtag parts += ", packagesets: %s" % pkgsets parts += ", rebuild: %s" % self.rebuild return "<%s>" % parts
def _get_locals(): if len(sys.argv) > 1: dbuser = sys.argv[1] else: dbuser = None dbconfig.override(dbuser=dbuser) execute_zcml_for_scripts() readline.parse_and_bind('tab: complete') # Mimic the real interactive interpreter's loading of any # $PYTHONSTARTUP file. startup = os.environ.get('PYTHONSTARTUP') if startup: execfile(startup) store = IMasterStore(Person) if dbuser == 'launchpad': # Create a few variables "in case they come in handy." # Do we really use these? Are they worth carrying around? d = Distribution.get(1) p = Person.get(1) ds = DistroSeries.get(1) prod = Product.get(1) proj = ProjectGroup.get(1) b2 = Bug.get(2) b1 = Bug.get(1) s = Specification.get(1) q = Question.get(1) # Silence unused name warnings d, p, ds, prod, proj, b2, b1, s, q # Having a factory instance is handy. factory = LaunchpadObjectFactory() def browser_open(obj, *args, **kwargs): """Open a (possibly newly-created) object's view in a web browser. Accepts the same parameters as canonical_url. Performs a commit before invoking the browser, so "browser_open(factory.makeFoo())" works. """ transaction.commit() webbrowser.open(canonical_url(obj, *args, **kwargs)) # Silence unused name warnings factory, store res = {} res.update(locals()) res.update(globals()) del res['_get_locals'] return res