def OnPath(self, evt): glist = self.generators_list glist.Clear() self.package_dir = evt.GetString() if not self.package_dir: return if not os.path.exists(self.package_dir): self.dir_browse_button.SetValue('') return self.package_dir = os.path.abspath(self.package_dir) try: package = get_loader().get_package(self.package_dir) meta = package.meta except: print ''.join(traceback.format_exception(*sys.exc_info()[:3])) self.dir_browse_button.SetValue('') dlg = wx.MessageDialog(self, 'Error occured when trying to load package.\n' + \ 'Refer to log for more details.', 'Package load failed', wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() self.version.SetValue(meta.version) for g in meta.generators: glist.Append(g.class_id, g.class_id) if self.d_gen == g.class_id: glist.SetValue(g.class_id)
def upload_package(self, start_dir=None): info = get_upload_details(self.frame, self) if not info: return udg, repo_uri, username, password, package_dir, package_home, ver = info pdir = os.path.abspath(package_dir) no_snaps_gens = [] package = get_loader().get_package(pdir) meta = package.meta if meta.version != ver: meta.version = ver xml_doc = meta.xmlize() xml_fpath = os.path.join(pdir, "package.xml") stream = open(xml_fpath, "w") stream.write('<?xml version="1.0" encoding="UTF-8"?>\n') xml_doc.serialize(stream) for g in meta.generators: cdir = os.path.sep.join([pdir, "screenshots", g.class_id]) snaps = glob.glob(os.path.join(cdir, "*")) if not snaps: no_snaps_gens.append(g.class_id) if no_snaps_gens: dlg = GMD.GenericMessageDialog( udg, "These generators do not have screenshots: \n" + "\n".join(no_snaps_gens) + "\nDo you want to continue uploading", "Missing Screenshots", wx.YES_NO | wx.ICON_INFORMATION, ) response = dlg.ShowModal() if response == wx.ID_NO: self.upload_package() dlg.Destroy() try: client = Client(repo_uri) client.login(username, password) client.upload(package_dir, package_home) except Client.Exception, e: print "".join(traceback.format_exception(*sys.exc_info()[:3])) dlg = wx.MessageDialog( udg, "Error occured when trying to upload package.\n" + e.message, "Package upload failed", wx.OK | wx.ICON_ERROR, ) dlg.ShowModal() dlg.Destroy() self.upload_package()
def _get_package_meta(self, stream, path, version, description): package = get_loader().get_package(path) meta = package.meta meta.version = version meta.description = description xml_doc = meta.xmlize() stream.write('<?xml version="1.0" encoding="UTF-8"?>\n') xml_doc.serialize(stream) cache_package_metadata(meta, path)