Rename outdated function parameter in index class

This commit is contained in:
Veronica Berglyd Olsen
2024-01-15 15:48:45 +01:00
parent 427a910ec0
commit ca4aa75880
4 changed files with 33 additions and 30 deletions
+15 -12
View File
@@ -517,28 +517,28 @@ class NWIndex:
return None return None
def novelStructure( def novelStructure(
self, rootHandle: str | None = None, skipExcl: bool = True self, rootHandle: str | None = None, activeOnly: bool = True
) -> Iterator[tuple[str, str, str, IndexHeading]]: ) -> Iterator[tuple[str, str, str, IndexHeading]]:
"""Iterate over all titles in the novel, in the correct order as """Iterate over all titles in the novel, in the correct order as
they appear in the tree view and in the respective document they appear in the tree view and in the respective document
files, but skipping all note files. files, but skipping all note files.
""" """
structure = self._itemIndex.iterNovelStructure(rHandle=rootHandle, skipExcl=skipExcl) structure = self._itemIndex.iterNovelStructure(rHandle=rootHandle, activeOnly=activeOnly)
for tHandle, sTitle, hItem in structure: for tHandle, sTitle, hItem in structure:
yield f"{tHandle}:{sTitle}", tHandle, sTitle, hItem yield f"{tHandle}:{sTitle}", tHandle, sTitle, hItem
return return
def getNovelWordCount(self, skipExcl: bool = True) -> int: def getNovelWordCount(self, activeOnly: bool = True) -> int:
"""Count the number of words in the novel project.""" """Count the number of words in the novel project."""
wCount = 0 wCount = 0
for _, _, hItem in self._itemIndex.iterNovelStructure(skipExcl=skipExcl): for _, _, hItem in self._itemIndex.iterNovelStructure(activeOnly=activeOnly):
wCount += hItem.wordCount wCount += hItem.wordCount
return wCount return wCount
def getNovelTitleCounts(self, skipExcl: bool = True) -> list[int]: def getNovelTitleCounts(self, activeOnly: bool = True) -> list[int]:
"""Count the number of titles in the novel project.""" """Count the number of titles in the novel project."""
hCount = [0, 0, 0, 0, 0] hCount = [0, 0, 0, 0, 0]
for _, _, hItem in self._itemIndex.iterNovelStructure(skipExcl=skipExcl): for _, _, hItem in self._itemIndex.iterNovelStructure(activeOnly=activeOnly):
iLevel = nwHeaders.H_LEVEL.get(hItem.level, 0) iLevel = nwHeaders.H_LEVEL.get(hItem.level, 0)
hCount[iLevel] += 1 hCount[iLevel] += 1
return hCount return hCount
@@ -551,14 +551,14 @@ class NWIndex:
return 0 return 0
def getTableOfContents( def getTableOfContents(
self, rHandle: str | None, maxDepth: int, skipExcl: bool = True self, rHandle: str | None, maxDepth: int, activeOnly: bool = True
) -> list[tuple[str, int, str, int]]: ) -> list[tuple[str, int, str, int]]:
"""Generate a table of contents up to a maximum depth.""" """Generate a table of contents up to a maximum depth."""
tOrder = [] tOrder = []
tData = {} tData = {}
pKey = None pKey = None
for tHandle, sTitle, hItem in self._itemIndex.iterNovelStructure( for tHandle, sTitle, hItem in self._itemIndex.iterNovelStructure(
rHandle=rHandle, skipExcl=skipExcl rHandle=rHandle, activeOnly=activeOnly
): ):
tKey = f"{tHandle}:{sTitle}" tKey = f"{tHandle}:{sTitle}"
iLevel = nwHeaders.H_LEVEL.get(hItem.level, 0) iLevel = nwHeaders.H_LEVEL.get(hItem.level, 0)
@@ -646,12 +646,15 @@ class NWIndex:
"""Return all tags based on itemClass.""" """Return all tags based on itemClass."""
return self._tagsIndex.filterTagNames(itemClass.name) return self._tagsIndex.filterTagNames(itemClass.name)
def getTagsData(self) -> Iterator[tuple[str, str, str, IndexItem | None, IndexHeading | None]]: def getTagsData(
self, activeOnly: bool = True
) -> Iterator[tuple[str, str, str, IndexItem | None, IndexHeading | None]]:
"""Return all known tags.""" """Return all known tags."""
for tag, data in self._tagsIndex.items(): for tag, data in self._tagsIndex.items():
iItem = self._itemIndex[data.get("handle")] iItem = self._itemIndex[data.get("handle")]
hItem = None if iItem is None else iItem[data.get("heading")] hItem = None if iItem is None else iItem[data.get("heading")]
yield tag, data.get("name", ""), data.get("class", ""), iItem, hItem if not activeOnly or (iItem and iItem.item.isActive):
yield tag, data.get("name", ""), data.get("class", ""), iItem, hItem
return return
def getSingleTag(self, tagKey: str) -> tuple[str, str, IndexItem | None, IndexHeading | None]: def getSingleTag(self, tagKey: str) -> tuple[str, str, IndexItem | None, IndexHeading | None]:
@@ -848,7 +851,7 @@ class ItemIndex:
return return
def iterNovelStructure( def iterNovelStructure(
self, rHandle: str | None = None, skipExcl: bool = False self, rHandle: str | None = None, activeOnly: bool = False
) -> Iterable[tuple[str, str, IndexHeading]]: ) -> Iterable[tuple[str, str, IndexHeading]]:
"""Iterate over all items and headers in the novel structure for """Iterate over all items and headers in the novel structure for
a given root handle, or for all if root handle is None. a given root handle, or for all if root handle is None.
@@ -856,7 +859,7 @@ class ItemIndex:
for tItem in self._project.tree: for tItem in self._project.tree:
if tItem.isNoteLayout(): if tItem.isNoteLayout():
continue continue
if skipExcl and not tItem.isActive: if activeOnly and not tItem.isActive:
continue continue
tHandle = tItem.itemHandle tHandle = tItem.itemHandle
+1 -1
View File
@@ -674,7 +674,7 @@ class GuiNovelTree(QTreeWidget):
tStart = time() tStart = time()
logger.debug("Building novel tree for root item '%s'", rootHandle) logger.debug("Building novel tree for root item '%s'", rootHandle)
novStruct = SHARED.project.index.novelStructure(rootHandle=rootHandle, skipExcl=True) novStruct = SHARED.project.index.novelStructure(rootHandle=rootHandle, activeOnly=True)
for tKey, tHandle, sTitle, novIdx in novStruct: for tKey, tHandle, sTitle, novIdx in novStruct:
if novIdx.level == "H0": if novIdx.level == "H0":
continue continue
+1 -1
View File
@@ -646,7 +646,7 @@ class GuiOutlineTree(QTreeWidget):
headItem.setTextAlignment( headItem.setTextAlignment(
self._colIdx[nwOutline.PCOUNT], Qt.AlignmentFlag.AlignRight) self._colIdx[nwOutline.PCOUNT], Qt.AlignmentFlag.AlignRight)
novStruct = SHARED.project.index.novelStructure(rootHandle=rootHandle, skipExcl=True) novStruct = SHARED.project.index.novelStructure(rootHandle=rootHandle, activeOnly=True)
for _, tHandle, sTitle, novIdx in novStruct: for _, tHandle, sTitle, novIdx in novStruct:
iLevel = nwHeaders.H_LEVEL.get(novIdx.level, 0) iLevel = nwHeaders.H_LEVEL.get(novIdx.level, 0)
+16 -16
View File
@@ -579,7 +579,7 @@ def testCoreIndex_ExtractData(mockGUI, fncPath, mockRnd):
project.tree[nHandle].setActive(False) # type: ignore project.tree[nHandle].setActive(False) # type: ignore
keys = [] keys = []
for aKey, _, _, _ in index.novelStructure(skipExcl=False): for aKey, _, _, _ in index.novelStructure(activeOnly=False):
keys.append(aKey) keys.append(aKey)
assert keys == [ assert keys == [
@@ -590,7 +590,7 @@ def testCoreIndex_ExtractData(mockGUI, fncPath, mockRnd):
] ]
keys = [] keys = []
for aKey, _, _, _ in index.novelStructure(skipExcl=True): for aKey, _, _, _ in index.novelStructure(activeOnly=True):
keys.append(aKey) keys.append(aKey)
assert keys == [ assert keys == [
@@ -761,7 +761,7 @@ def testCoreIndex_ExtractData(mockGUI, fncPath, mockRnd):
assert index.scanText(sHandle, "### Scene One\n\n") # type: ignore assert index.scanText(sHandle, "### Scene One\n\n") # type: ignore
assert index.scanText(tHandle, "### Scene Two\n\n") # type: ignore assert index.scanText(tHandle, "### Scene Two\n\n") # type: ignore
assert [(h, t) for h, t, _ in index._itemIndex.iterNovelStructure(skipExcl=False)] == [ assert [(h, t) for h, t, _ in index._itemIndex.iterNovelStructure(activeOnly=False)] == [
(C.hTitlePage, "T0001"), (C.hTitlePage, "T0001"),
(C.hChapterDoc, "T0001"), (C.hChapterDoc, "T0001"),
(C.hSceneDoc, "T0001"), (C.hSceneDoc, "T0001"),
@@ -772,7 +772,7 @@ def testCoreIndex_ExtractData(mockGUI, fncPath, mockRnd):
(tHandle, "T0001"), (tHandle, "T0001"),
] ]
assert [(h, t) for h, t, _ in index._itemIndex.iterNovelStructure(skipExcl=True)] == [ assert [(h, t) for h, t, _ in index._itemIndex.iterNovelStructure(activeOnly=True)] == [
(C.hTitlePage, "T0001"), (C.hTitlePage, "T0001"),
(C.hChapterDoc, "T0001"), (C.hChapterDoc, "T0001"),
(C.hSceneDoc, "T0001"), (C.hSceneDoc, "T0001"),
@@ -783,7 +783,7 @@ def testCoreIndex_ExtractData(mockGUI, fncPath, mockRnd):
# Add a fake handle to the tree and check that it's ignored # Add a fake handle to the tree and check that it's ignored
project.tree._order.append("0000000000000") project.tree._order.append("0000000000000")
assert [(h, t) for h, t, _ in index._itemIndex.iterNovelStructure(skipExcl=False)] == [ assert [(h, t) for h, t, _ in index._itemIndex.iterNovelStructure(activeOnly=False)] == [
(C.hTitlePage, "T0001"), (C.hTitlePage, "T0001"),
(C.hChapterDoc, "T0001"), (C.hChapterDoc, "T0001"),
(C.hSceneDoc, "T0001"), (C.hSceneDoc, "T0001"),
@@ -796,22 +796,22 @@ def testCoreIndex_ExtractData(mockGUI, fncPath, mockRnd):
project.tree._order.remove("0000000000000") project.tree._order.remove("0000000000000")
# Extract stats # Extract stats
assert index.getNovelWordCount(skipExcl=False) == 43 assert index.getNovelWordCount(activeOnly=False) == 43
assert index.getNovelWordCount(skipExcl=True) == 15 assert index.getNovelWordCount(activeOnly=True) == 15
assert index.getNovelTitleCounts(skipExcl=False) == [0, 3, 2, 3, 0] assert index.getNovelTitleCounts(activeOnly=False) == [0, 3, 2, 3, 0]
assert index.getNovelTitleCounts(skipExcl=True) == [0, 1, 2, 3, 0] assert index.getNovelTitleCounts(activeOnly=True) == [0, 1, 2, 3, 0]
# Table of Contents # Table of Contents
assert index.getTableOfContents(C.hNovelRoot, 0, skipExcl=True) == [] assert index.getTableOfContents(C.hNovelRoot, 0, activeOnly=True) == []
assert index.getTableOfContents(C.hNovelRoot, 1, skipExcl=True) == [ assert index.getTableOfContents(C.hNovelRoot, 1, activeOnly=True) == [
(f"{C.hTitlePage}:T0001", 1, "New Novel", 15), (f"{C.hTitlePage}:T0001", 1, "New Novel", 15),
] ]
assert index.getTableOfContents(C.hNovelRoot, 2, skipExcl=True) == [ assert index.getTableOfContents(C.hNovelRoot, 2, activeOnly=True) == [
(f"{C.hTitlePage}:T0001", 1, "New Novel", 5), (f"{C.hTitlePage}:T0001", 1, "New Novel", 5),
(f"{C.hChapterDoc}:T0001", 2, "New Chapter", 4), (f"{C.hChapterDoc}:T0001", 2, "New Chapter", 4),
(f"{hHandle}:T0001", 2, "Chapter One", 6), (f"{hHandle}:T0001", 2, "Chapter One", 6),
] ]
assert index.getTableOfContents(C.hNovelRoot, 3, skipExcl=True) == [ assert index.getTableOfContents(C.hNovelRoot, 3, activeOnly=True) == [
(f"{C.hTitlePage}:T0001", 1, "New Novel", 5), (f"{C.hTitlePage}:T0001", 1, "New Novel", 5),
(f"{C.hChapterDoc}:T0001", 2, "New Chapter", 2), (f"{C.hChapterDoc}:T0001", 2, "New Chapter", 2),
(f"{C.hSceneDoc}:T0001", 3, "New Scene", 2), (f"{C.hSceneDoc}:T0001", 3, "New Scene", 2),
@@ -820,8 +820,8 @@ def testCoreIndex_ExtractData(mockGUI, fncPath, mockRnd):
(f"{tHandle}:T0001", 3, "Scene Two", 2), (f"{tHandle}:T0001", 3, "Scene Two", 2),
] ]
assert index.getTableOfContents(C.hNovelRoot, 0, skipExcl=False) == [] assert index.getTableOfContents(C.hNovelRoot, 0, activeOnly=False) == []
assert index.getTableOfContents(C.hNovelRoot, 1, skipExcl=False) == [ assert index.getTableOfContents(C.hNovelRoot, 1, activeOnly=False) == [
(f"{C.hTitlePage}:T0001", 1, "New Novel", 9), (f"{C.hTitlePage}:T0001", 1, "New Novel", 9),
(f"{nHandle}:T0001", 1, "Hello World!", 12), (f"{nHandle}:T0001", 1, "Hello World!", 12),
(f"{nHandle}:T0002", 1, "Hello World!", 22), (f"{nHandle}:T0002", 1, "Hello World!", 22),
@@ -1173,7 +1173,7 @@ def testCoreIndex_ItemIndex(mockGUI, fncPath, mockRnd):
# Skip excluded # Skip excluded
project.tree[sHandle].setActive(False) # type: ignore project.tree[sHandle].setActive(False) # type: ignore
nStruct = list(itemIndex.iterNovelStructure(skipExcl=True)) nStruct = list(itemIndex.iterNovelStructure(activeOnly=True))
assert len(nStruct) == 3 assert len(nStruct) == 3
assert nStruct[0][0] == nHandle assert nStruct[0][0] == nHandle
assert nStruct[1][0] == cHandle assert nStruct[1][0] == cHandle