def destroy(self): """ destroy() -> None Finalize all packages to, such as, get rid of temp files """ if hasattr(self, 'vistrailsStartup'): self.vistrailsStartup.destroy() Collection.clearInstance()
def destroy(self): """ destroy() -> None Finalize all packages to, such as, get rid of temp files """ if hasattr(self, 'package_manager'): self.package_manager.finalize_packages() Collection.clearInstance() ThumbnailCache.clearInstance()
def do_search(only_current_vistrail=False, only_current_workflow=False): entities_to_check = {} open_col = Collection.getInstance() for entity in open_col.get_current_entities(): if entity.type_id == VistrailEntity.type_id and \ entity.is_open: controller = entity._window.controller if only_current_vistrail and \ controller.vistrail != vt_controller.vistrail: continue controllers.append(controller) if only_current_workflow: versions_to_check = set( [controller.current_version]) else: graph = controller._current_terse_graph versions_to_check = set(graph.vertices.iterkeys()) entities_to_check[entity] = versions_to_check self.set_search( MultipleSearch(search_str, search_pipeline, entities_to_check, self.use_regex)) self.search.run() return self.search.getResultEntities()
def save_vistrail(self, locator_class, vistrailView=None, force_choose_locator=False): """ force_choose_locator=True triggers 'save as' behavior """ global bobo if not vistrailView: vistrailView = self.currentWidget() vistrailView.flush_changes() if vistrailView: gui_get = locator_class.save_from_gui # get a locator to write to if force_choose_locator: locator = gui_get(self, Vistrail.vtType, vistrailView.controller.locator) else: locator = (vistrailView.controller.locator or gui_get(self, Vistrail.vtType, vistrailView.controller.locator)) if locator == untitled_locator(): locator = gui_get(self, Vistrail.vtType, vistrailView.controller.locator) # if couldn't get one, ignore the request if not locator: return False # update collection vistrailView.controller.flush_delayed_actions() try: vistrailView.controller.write_vistrail(locator) except Exception, e: debug.critical('An error has occurred', str(e)) raise return False try: thumb_cache = ThumbnailCache.getInstance() vistrailView.controller.vistrail.thumbnails = \ vistrailView.controller.find_thumbnails( tags_only=thumb_cache.conf.tagsOnly) vistrailView.controller.vistrail.abstractions = \ vistrailView.controller.find_abstractions( vistrailView.controller.vistrail, True) collection = Collection.getInstance() url = locator.to_url() # create index if not exist entity = collection.fromUrl(url) if entity: # find parent vistrail while entity.parent: entity = entity.parent else: entity = collection.updateVistrail(url, vistrailView.controller.vistrail) # add to relevant workspace categories collection.add_to_workspace(entity) collection.commit() except Exception, e: debug.critical('Failed to index vistrail', str(e))
def open_vistrail(self, locator, version=None, is_abstraction=False): """open_vistrail(locator: Locator, version = None: int or str, is_abstraction: bool) opens a new vistrail from the given locator, selecting the given version. """ self.close_first_vistrail_if_necessary() if self.single_document_mode and self.currentView(): self.closeVistrail() view = self.ensureVistrail(locator) if view: if version is not None: if isinstance(version, basestring): try: version = view.vistrail.get_version_number(version) except: version = None if version is not None: view.setup_view(version) return view try: (vistrail, abstraction_files, thumbnail_files, _) = \ load_vistrail(locator, is_abstraction) result = self.set_vistrail_view(vistrail, locator, abstraction_files, thumbnail_files, version) # update collection try: vistrail.thumbnails = thumbnail_files vistrail.abstractions = abstraction_files collection = Collection.getInstance() url = locator.to_url() # create index if not exist entity = collection.fromUrl(url) if entity: # find parent vistrail while entity.parent: entity = entity.parent else: entity = collection.updateVistrail(url, vistrail) # add to relevant workspace categories collection.add_to_workspace(entity) collection.commit() except Exception, e: import traceback debug.critical('Failed to index vistrail', str(e) + traceback.format_exc()) return result
def open_vistrail(self, locator=None, version=None, is_abstraction=False): if isinstance(locator, basestring): locator = BaseLocator.from_url(locator) elif locator is None: locator = UntitledLocator() controller = self.ensure_vistrail(locator) if controller is None: # vistrail is not already open try: loaded_objs = vistrails.core.db.io.load_vistrail( locator, is_abstraction) controller = self.add_vistrail(loaded_objs[0], locator, *loaded_objs[1:]) if locator.is_untitled(): return controller controller.is_abstraction = is_abstraction thumb_cache = ThumbnailCache.getInstance() controller.vistrail.thumbnails = controller.find_thumbnails( tags_only=thumb_cache.conf.tagsOnly) controller.vistrail.abstractions = controller.find_abstractions( controller.vistrail, True) controller.vistrail.mashups = controller._mashups collection = Collection.getInstance() url = locator.to_url() entity = collection.updateVistrail(url, controller.vistrail) # add to relevant workspace categories if not controller.is_abstraction: collection.add_to_workspace(entity) collection.commit() except VistrailsDBException as e: debug.unexpected_exception(e) debug.critical("Exception from the database: %s" % e, debug.format_exc()) return None version = self.convert_version(version) if version is None: controller.select_latest_version() version = controller.current_version self.select_version(version) return controller
def open_vistrail(self, locator=None, version=None, is_abstraction=False): if isinstance(locator, basestring): locator = BaseLocator.from_url(locator) elif locator is None: locator = UntitledLocator() controller = self.ensure_vistrail(locator) if controller is None: # vistrail is not already open try: loaded_objs = vistrails.core.db.io.load_vistrail(locator, is_abstraction) controller = self.add_vistrail(loaded_objs[0], locator, *loaded_objs[1:]) if locator.is_untitled(): return controller controller.is_abstraction = is_abstraction thumb_cache = ThumbnailCache.getInstance() controller.vistrail.thumbnails = controller.find_thumbnails( tags_only=thumb_cache.conf.tagsOnly) controller.vistrail.abstractions = controller.find_abstractions( controller.vistrail, True) controller.vistrail.mashups = controller._mashups collection = Collection.getInstance() url = locator.to_url() entity = collection.updateVistrail(url, controller.vistrail) # add to relevant workspace categories if not controller.is_abstraction: collection.add_to_workspace(entity) collection.commit() except VistrailsDBException as e: debug.unexpected_exception(e) debug.critical("Exception from the database: %s" % e, debug.format_exc()) return None version = self.convert_version(version) if version is None: controller.select_latest_version() version = controller.current_version self.select_version(version) return controller
def do_search(only_current_vistrail=False, only_current_workflow=False): entities_to_check = {} open_col = Collection.getInstance() for entity in open_col.get_current_entities(): if entity.type_id == VistrailEntity.type_id and \ entity.is_open: controller = entity._window.controller if only_current_vistrail and \ controller.vistrail != vt_controller.vistrail: continue if only_current_workflow: versions_to_check = controller.current_version else: graph = controller._current_terse_graph versions_to_check = set(graph.vertices.iterkeys()) entities_to_check[entity] = versions_to_check self.set_search(MultipleSearch(search_str, search_pipeline, entities_to_check)) self.search.run() return self.search.getResultEntities()
def open_vistrail(self, locator=None, version=None, is_abstraction=False): if isinstance(locator, basestring): locator = BaseLocator.from_url(locator) elif locator is None: locator = UntitledLocator() controller = self.ensure_vistrail(locator) if controller is None: # vistrail is not already open try: loaded_objs = vistrails.core.db.io.load_vistrail(locator, False) controller = self.add_vistrail(loaded_objs[0], locator, *loaded_objs[1:]) if locator.is_untitled(): return True controller.is_abstraction = is_abstraction thumb_cache = ThumbnailCache.getInstance() controller.vistrail.thumbnails = controller.find_thumbnails( tags_only=thumb_cache.conf.tagsOnly) controller.vistrail.abstractions = controller.find_abstractions( controller.vistrail, True) controller.vistrail.mashups = controller._mashups collection = Collection.getInstance() url = locator.to_url() entity = collection.updateVistrail(url, controller.vistrail) # add to relevant workspace categories if not controller.is_abstraction: collection.add_to_workspace(entity) collection.commit() except VistrailsDBException, e: import traceback debug.critical("Exception from the database", traceback.format_exc()) return None except Exception, e: #debug.critical('An error has occurred', e) #print "An error has occurred", str(e) raise
debug.critical("Failed to save vistrail", debug.format_exc()) raise if export: return controller.locator self.update_locator(old_locator, controller.locator) # update collection try: thumb_cache = ThumbnailCache.getInstance() controller.vistrail.thumbnails = controller.find_thumbnails( tags_only=thumb_cache.conf.tagsOnly) controller.vistrail.abstractions = controller.find_abstractions( controller.vistrail, True) controller.vistrail.mashups = controller._mashups collection = Collection.getInstance() url = locator.to_url() entity = collection.updateVistrail(url, controller.vistrail) # add to relevant workspace categories collection.add_to_workspace(entity) collection.commit() except Exception, e: debug.critical('Failed to index vistrail', debug.format_exc()) return controller.locator def close_vistrail(self, locator=None, controller=None): if controller is None: controller = self.get_current_controller() if controller is None: return False if locator is None and controller is not None:
debug.critical("Failed to save vistrail", traceback.format_exc()) raise if export: return controller.locator self.update_locator(old_locator, controller.locator) # update collection try: thumb_cache = ThumbnailCache.getInstance() controller.vistrail.thumbnails = controller.find_thumbnails( tags_only=thumb_cache.conf.tagsOnly) controller.vistrail.abstractions = controller.find_abstractions( controller.vistrail, True) controller.vistrail.mashups = controller._mashups collection = Collection.getInstance() url = locator.to_url() entity = collection.updateVistrail(url, controller.vistrail) # add to relevant workspace categories collection.add_to_workspace(entity) collection.commit() except Exception, e: debug.critical('Failed to index vistrail', traceback.format_exc()) return controller.locator def close_vistrail(self, locator=None, controller=None): if controller is None: controller = self.get_current_controller() if controller is None: return False if locator is None and controller is not None: