Add tags get function to index class

This commit is contained in:
Veronica Berglyd Olsen
2023-11-06 18:19:03 +01:00
parent 2a40913105
commit 09e0d28115
2 changed files with 20 additions and 0 deletions
+10
View File
@@ -621,6 +621,10 @@ class NWIndex:
sTitle = self._tagsIndex.tagHeading(tagKey)
return tHandle, sTitle
def getTags(self, itemClass: nwItemClass) -> list[str]:
"""Return all tags based on itemClass."""
return self._tagsIndex.filterTagNames(itemClass.name)
# END Class NWIndex
@@ -684,6 +688,12 @@ class TagsIndex:
"""Get the class of a given tag."""
return self._tags.get(tagKey.lower(), {}).get("class", None)
def filterTagNames(self, className: str) -> list[str]:
"""Get a list of tag names for a given class."""
return [
x.get("name", "") for x in self._tags.values() if x.get("class", "") == className
]
##
# Pack/Unpack
##
+10
View File
@@ -196,6 +196,16 @@ def testCoreIndex_ScanThis(mockGUI):
assert theBits == ["@tag", "this", "and this"]
assert thePos == [0, 6, 12]
isValid, theBits, thePos = index.scanThis("@tag: this,, and this")
assert isValid is True
assert theBits == ["@tag", "this", "", "and this"]
assert thePos == [0, 6, 11, 13]
isValid, theBits, thePos = index.scanThis("@tag: this, , and this")
assert isValid is True
assert theBits == ["@tag", "this", "", "and this"]
assert thePos == [0, 6, 12, 14]
project.closeProject()
# END Test testCoreIndex_ScanThis