def post(self): args = parser.parse_args() datamanager = api.get_datamanager() (id, path) = datamanager.new() # Writing images for image in args.images: image.save(os.path.join(path, image.filename)) try: options_str = args['options'] options = json.loads(options_str) options = [optionDAO(**o) for o in options] except KeyError: # Key is not present pass # Writting metadata metadata = Metadata(uuid=id, name=args['name'], images=[image.filename for image in args.images], options=options, creation_date=datetime.datetime.now(), status=StatusDAO(StatusCode.QUEUED), processingTime=-1) datamanager.setstatus(id, json.dumps(metadata.toDict())) api.get_executor().process(path, os.path.join(path, datamanager.STATUS_FILE)) current_app.logger.info("task/new request with meta {}".format( json.dumps(metadata.toDict(), separators=(',', ':')))) return Response200DAO(id).toDict()
def printAllMetadata(name): timestamps = Metadata.getProjectfileTimestamps(name) print "Project creation: \t" + str(datetime.datetime.fromtimestamp(timestamps["creation"])) print "Project last modified:\t" + str(datetime.datetime.fromtimestamp(timestamps["modification"])) for key, value in Metadata.getAnnotations(name).iteritems(): print "%s:\t\t%s" % (key, value)
def setData(self, index, value, role=Qt.EditRole): row = index.row() col = index.column() project = File.allProjects(os.getcwd())[row] metadatakey = Metadata.listUsedAnnotations(os.getcwd())[col] value = str(value.toPyObject()) Metadata.setMetadata(project, metadatakey, value) return True
def data(self, index, role): if not index.isValid(): return QVariant() elif role != Qt.DisplayRole and role != Qt.EditRole: return QVariant() project = File.allProjects(os.getcwd())[index.row()] metadatakey = Metadata.listUsedAnnotations(os.getcwd())[index.column()] annotations = Metadata.getAnnotations(project) if annotations.has_key(metadatakey): metadatavalue = annotations[metadatakey] else: metadatavalue = "<NOT SET>" return QVariant(metadatavalue)
def withmetadata(self, booleanfunc): count = 0 for uuid in self.folders(): statusfile = os.path.join(self.path(uuid), self.STATUS_FILE) if os.path.exists(statusfile): with open(statusfile, "r") as f: try: meta = Metadata.fromDict(json.load(f)) if booleanfunc(meta): count += 1 except Exception as e: logging.exception(e) return count
def headerData(self, section, orientation, role = QtCore.Qt.DisplayRole): if role == Qt.DisplayRole: if orientation == Qt.Horizontal: listUsedAnnotations = Metadata.listUsedAnnotations(os.getcwd()) key = listUsedAnnotations[section] return QString(key) elif orientation == Qt.Vertical: project = File.allProjects(os.getcwd())[section] return QVariant(project) else: return QVariant()
def setMetadata(name, key, value): Metadata.setMetadata(name, key, value)
def printMetadata(name, key): annotations = Metadata.getAnnotations(name) if annotations.has_key(key): print "%s: %s" % (key, annotations[key]) else: print "%s: %s" % (key, "<NOT SET>")
def columnCount(self, parent): return len(Metadata.listUsedAnnotations(os.getcwd()))