def createset(self, args): """ Create a tag set command. """ tags = [] if args.tag: if type(args.tag) is list: tags = args.tag else: tags = [args.tag] else: # Should not happen self.ctx.err("Missing tag parameter") sys.exit(1) tag = self.create_tag(args.name, args.desc, text="tag set") tag.ns = rstring(omero.constants.metadata.NSINSIGHTTAGSET) links = [] for t in tags: link = AnnotationAnnotationLinkI() link.parent = tag link.child = TagAnnotationI(rlong(long(t)), False) links.append(link) client = self.ctx.conn(args) session = client.getSession() update_service = session.getUpdateService() try: links = update_service.saveAndReturnArray(links) self.ctx.out("TagAnnotation:%s" % links[0].parent.id.val) except omero.ValidationException as e: self.ctx.err(e.message) self.ctx.err("Check that tag '%s' exists." % t) sys.exit(1)
def createset(self, args): """ Create a tag set command. """ tags = [] if args.tag: if type(args.tag) is list: tags = args.tag else: tags = [args.tag] else: # Should not happen self.ctx.err("Missing tag parameter") sys.exit(1) tag = self.create_tag(args.name, args.desc, text="tag set") tag.ns = rstring(omero.constants.metadata.NSINSIGHTTAGSET) links = [] for t in tags: link = AnnotationAnnotationLinkI() link.parent = tag link.child = TagAnnotationI(rlong(int(t)), False) links.append(link) client = self.ctx.conn(args) session = client.getSession() update_service = session.getUpdateService() try: links = update_service.saveAndReturnArray(links) self.ctx.out("TagAnnotation:%s" % links[0].parent.id.val) except omero.ValidationException as e: self.ctx.err(e.message) self.ctx.err("Check that tag '%s' exists." % t) sys.exit(1)
def createAndSaveTags(names, descriptions, tagGroup=None): tags = [] for name, desc in zip(names, descriptions): tags.append(createTag(name, desc)) if tagGroup is not None: links = [] for t in tags: link = AnnotationAnnotationLinkI() link.parent = tagGroup link.child = t links.append(link) updateService.saveArray(links) else: updateService.saveArray(tags) print " Saving a list of %s tags \n" % len(tags)
def load(self, args): """ Import new tag(s) from json. """ if args.filename: fobj = open(args.filename) else: fobj = sys.stdin p = json.load(fobj) if fobj is not sys.stdin: fobj.close() to_add = [] for element in p: if 'set' in element: tag = self.create_tag(str(element['name']), str(element['desc'])) tag.ns = rstring(omero.constants.metadata.NSINSIGHTTAGSET) links = [] for e in element['set']: t = self.create_tag(str(e['name']), str(e['desc'])) link = AnnotationAnnotationLinkI() link.parent = tag link.child = t links.append(link) to_add.extend(links) else: to_add.append( self.create_tag(str(element['name']), str(element['desc']))) client = self.ctx.conn(args) session = client.getSession() update_service = session.getUpdateService() to_add = update_service.saveAndReturnArray(to_add) ids = [] for element in to_add: if isinstance(element, TagAnnotationI): self.ctx.out("TagAnnotation:%s" % element.id.val) ids.append(element.id.val) else: tag_id = element.parent.id.val if tag_id not in ids: self.ctx.out("TagAnnotation:%s" % tag_id) ids.append(tag_id)
def load(self, args): """ Import new tag(s) from json. """ if args.filename: fobj = open(args.filename) else: fobj = sys.stdin p = json.load(fobj) if fobj is not sys.stdin: fobj.close() to_add = [] for element in p: if 'set' in element: tag = self.create_tag(str(element['name']), str(element['desc'])) tag.ns = rstring(omero.constants.metadata.NSINSIGHTTAGSET) links = [] for e in element['set']: t = self.create_tag(str(e['name']), str(e['desc'])) link = AnnotationAnnotationLinkI() link.parent = tag link.child = t links.append(link) to_add.extend(links) else: to_add.append(self.create_tag(str(element['name']), str(element['desc']))) client = self.ctx.conn(args) session = client.getSession() update_service = session.getUpdateService() to_add = update_service.saveAndReturnArray(to_add) ids = [] for element in to_add: if isinstance(element, TagAnnotationI): self.ctx.out("TagAnnotation:%s" % element.id.val) ids.append(element.id.val) else: tag_id = element.parent.id.val if tag_id not in ids: self.ctx.out("TagAnnotation:%s" % tag_id) ids.append(tag_id)