def assertRevContent(self, store, rev, content): with Connector().peek(store, rev) as r: for (part, data) in content.items(): revData = r.readAll(part) self.assertEqual(revData, data) s = Connector().stat(rev, [store]) for part in s.parts(): self.assertTrue(part in content)
def load(self, store, rev): try: stat = Connector().stat(rev, [store]) self.__typeLabel.setText(Registry().getDisplayString(stat.type())) self.__mtimeLabel.setText(str(stat.mtime())) size = 0 for part in stat.parts(): size += stat.size(part) for unit in ['Bytes', 'KiB', 'MiB', 'GiB']: if size < (1 << 10): break else: size = size >> 10 sizeText = "%d %s (%d parts)" % (size, unit, len(stat.parts())) self.__sizeLabel.setText(sizeText) except IOError: self.__typeLabel.setText("n/a") self.__mtimeLabel.setText("n/a") self.__sizeLabel.setText("n/a")
def __doCreate(self, srcStore, srcRev): info = Connector().stat(srcRev, [srcStore]) dstStore = self.store() with Connector().create(dstStore, info.type(), info.creator()) as w: with Connector().peek(srcStore, srcRev) as r: for part in info.parts(): w.write(part, r.readAll(part)) w.setFlags(r.getFlags()) w.commit() destDoc = w.getDoc() # add link self.model().insertLink(struct.DocLink(dstStore, destDoc)) # save immediately self.save()
def __loadComment(self, rev): stat = Connector().stat(rev, [self.__store]) mtime = str(stat.mtime()) comment = "" if 'META' in stat.parts(): try: with Connector().peek(self.__store, rev) as r: metaData = struct.loads(self.__store, r.readAll('META')) comment = extractMetaData( metaData, ["org.peerdrive.annotation", "comment"], "") except IOError: pass return mtime + " - " + comment