예제 #1
0
    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()
예제 #2
0
 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)
예제 #3
0
 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
예제 #4
0
 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)
예제 #5
0
 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
예제 #6
0
    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()
예제 #7
0
 def setMetadata(name, key, value):
     Metadata.setMetadata(name, key, value)
예제 #8
0
 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>")
예제 #9
0
 def columnCount(self, parent):
     return len(Metadata.listUsedAnnotations(os.getcwd()))