def reIndexHandle(self, tHandle): """Put a file back into the index. This is used when files are moved from the archive or trash folders back into the active project. """ logger.debug("Re-indexing item %s" % tHandle) tItem = self.theProject.projTree[tHandle] if tItem is None: return False if tItem.itemType != nwItemType.FILE: return False theDoc = NWDoc(self.theProject, self.theParent) theText = theDoc.openDocument(tHandle, showStatus=False) if theText: self.scanText(tHandle, theText) return True
def setText(self, theHandle, theText=None): """Set the text for the tokenizer from a handle. If theText is not set, load it from the file. """ self.theHandle = theHandle self.theItem = self.theProject.projTree[theHandle] if self.theItem is None: return False if theText is not None: # If the text is set, just use that self.theText = theText else: # Otherwise, load it from file theDocument = NWDoc(self.theProject, self.theParent) self.theText = theDocument.openDocument(theHandle) docSize = len(self.theText) if docSize > nwConst.MAX_DOCSIZE: errVal = "Document '%s' is too big (%.2f MB). Skipping." % ( self.theItem.itemName, docSize/1.0e6 ) self.theText = "# ERROR\n\n%s\n\n" % errVal self.errData.append(errVal) self.isNone = self.theItem.itemLayout == nwItemLayout.NO_LAYOUT self.isTitle = self.theItem.itemLayout == nwItemLayout.TITLE self.isBook = self.theItem.itemLayout == nwItemLayout.BOOK self.isPage = self.theItem.itemLayout == nwItemLayout.PAGE self.isPart = self.theItem.itemLayout == nwItemLayout.PARTITION self.isUnNum = self.theItem.itemLayout == nwItemLayout.UNNUMBERED self.isChap = self.theItem.itemLayout == nwItemLayout.CHAPTER self.isScene = self.theItem.itemLayout == nwItemLayout.SCENE self.isNote = self.theItem.itemLayout == nwItemLayout.NOTE self.isNovel = self.isBook or self.isUnNum or self.isChap or self.isScene return True
def testDocMeta(nwDummy, nwLipsum): """Check that the document meta data string is parsed correctly. """ theProject = NWProject(nwDummy) theProject.projTree.setSeed(42) assert theProject.openProject(nwLipsum) aDoc = NWDoc(theProject, nwDummy) assert aDoc.openDocument("47666c91c7ccf") theName, theParent, theClass, theLayout = aDoc.getMeta() assert theName == "Scene Five" assert theParent == "6bd935d2490cd" assert theClass == nwItemClass.NOVEL assert theLayout == nwItemLayout.SCENE aDoc._docMeta = {"stuff": None} theName, theParent, theClass, theLayout = aDoc.getMeta() assert theName == "" assert theParent is None assert theClass is None assert theLayout is None