TagTree

class mnemosyne.libmnemosyne.tag_tree.TagTree(component_manager, count_cards=True)

Organises the tags in a hierarchical tree. By convention, hierarchical levels in tags are denoted by a :: separator.

This class is not meant to be instantiated at run time, but rather only when it is needed.

The internal tree datastructure for e.g. the two tags A::B::C and A::B::D looks as follows:

self[“__ALL__”] = [“A”] self[“A”] = [“A::B”] self[“A::B”] = [“A::B::C”, “A::B::D”]

Each tree level stores the entire partial tag (i.e. A::B instead of B) to guarantee uniqueness.

Apart from the dictionary in self, this class also contains self.display_name_for_node and self.card_count_for_node, with node being the index field for the main dictionary self.

delete_subtree(node)
nodes()

Also returns internal nodes, even if they have no explicit tag associated with them.

nodes_in_subtree(tree)
rename_node(node, new_name)
tags_in_subtree(node)