replace _path by path (because it's not private here)

This commit is contained in:
Arthur Milchior 2020-04-06 23:02:28 +02:00
parent 266c2022b5
commit 69a9425cd0
6 changed files with 23 additions and 21 deletions

View file

@ -126,7 +126,7 @@ class DeckManager:
# child of an existing deck then it needs to be renamed # child of an existing deck then it needs to be renamed
deck = self.get(did) deck = self.get(did)
if "::" in deck["name"]: if "::" in deck["name"]:
base = self._path(deck["name"])[-1] base = self.path(deck["name"])[-1]
suffix = "" suffix = ""
while True: while True:
# find an unused name # find an unused name
@ -260,7 +260,7 @@ class DeckManager:
ontoDeckName = self.get(ontoDeckDid)["name"] ontoDeckName = self.get(ontoDeckDid)["name"]
if ontoDeckDid is None or ontoDeckDid == "": if ontoDeckDid is None or ontoDeckDid == "":
if len(self._path(draggedDeckName)) > 1: if len(self.path(draggedDeckName)) > 1:
self.rename(draggedDeck, self._basename(draggedDeckName)) self.rename(draggedDeck, self._basename(draggedDeckName))
elif self._canDragAndDrop(draggedDeckName, ontoDeckName): elif self._canDragAndDrop(draggedDeckName, ontoDeckName):
draggedDeck = self.get(draggedDeckDid) draggedDeck = self.get(draggedDeckDid)
@ -282,29 +282,31 @@ class DeckManager:
return True return True
def _isParent(self, parentDeckName: str, childDeckName: str) -> Any: def _isParent(self, parentDeckName: str, childDeckName: str) -> Any:
return self._path(childDeckName) == self._path(parentDeckName) + [ return self.path(childDeckName) == self.path(parentDeckName) + [
self._basename(childDeckName) self._basename(childDeckName)
] ]
def _isAncestor(self, ancestorDeckName: str, descendantDeckName: str) -> Any: def _isAncestor(self, ancestorDeckName: str, descendantDeckName: str) -> Any:
ancestorPath = self._path(ancestorDeckName) ancestorPath = self.path(ancestorDeckName)
return ancestorPath == self._path(descendantDeckName)[0 : len(ancestorPath)] return ancestorPath == self.path(descendantDeckName)[0 : len(ancestorPath)]
@staticmethod @staticmethod
def _path(name: str) -> Any: def path(name: str) -> Any:
return name.split("::") return name.split("::")
_path = path
def _basename(self, name: str) -> Any: def _basename(self, name: str) -> Any:
return self._path(name)[-1] return self.path(name)[-1]
@classmethod @classmethod
def key(cls, deck: Dict[str, Any]) -> List[str]: def key(cls, deck: Dict[str, Any]) -> List[str]:
return cls._path(deck["name"]) return cls.path(deck["name"])
def _ensureParents(self, name: str) -> Any: def _ensureParents(self, name: str) -> Any:
"Ensure parents exist, and return name with case matching parents." "Ensure parents exist, and return name with case matching parents."
s = "" s = ""
path = self._path(name) path = self.path(name)
if len(path) < 2: if len(path) < 2:
return name return name
for p in path[:-1]: for p in path[:-1]:
@ -469,14 +471,14 @@ class DeckManager:
self.save(deck) self.save(deck)
# ensure no sections are blank # ensure no sections are blank
if not all(self._path(deck["name"])): if not all(self.path(deck["name"])):
self.col.log("fix deck with missing sections", deck["name"]) self.col.log("fix deck with missing sections", deck["name"])
deck["name"] = "recovered%d" % intTime(1000) deck["name"] = "recovered%d" % intTime(1000)
self.save(deck) self.save(deck)
# immediate parent must exist # immediate parent must exist
if "::" in deck["name"]: if "::" in deck["name"]:
immediateParent = "::".join(self._path(deck["name"])[:-1]) immediateParent = "::".join(self.path(deck["name"])[:-1])
if immediateParent not in names: if immediateParent not in names:
self.col.log("fix deck with missing parent", deck["name"]) self.col.log("fix deck with missing parent", deck["name"])
self._ensureParents(deck["name"]) self._ensureParents(deck["name"])
@ -579,7 +581,7 @@ class DeckManager:
childMap[deck["id"]] = node childMap[deck["id"]] = node
# add note to immediate parent # add note to immediate parent
parts = self._path(deck["name"]) parts = self.path(deck["name"])
if len(parts) > 1: if len(parts) > 1:
immediateParent = "::".join(parts[:-1]) immediateParent = "::".join(parts[:-1])
pid = nameMap[immediateParent]["id"] pid = nameMap[immediateParent]["id"]
@ -591,7 +593,7 @@ class DeckManager:
"All parents of did." "All parents of did."
# get parent and grandparent names # get parent and grandparent names
parents: List[str] = [] parents: List[str] = []
for part in self._path(self.get(did)["name"])[:-1]: for part in self.path(self.get(did)["name"])[:-1]:
if not parents: if not parents:
parents.append(part) parents.append(part)
else: else:
@ -609,7 +611,7 @@ class DeckManager:
"All existing parents of name" "All existing parents of name"
if "::" not in name: if "::" not in name:
return [] return []
names = self._path(name)[:-1] names = self.path(name)[:-1]
head = [] head = []
parents = [] parents = []

View file

@ -258,13 +258,13 @@ class Anki2Importer(Importer):
name = g["name"] name = g["name"]
# if there's a prefix, replace the top level deck # if there's a prefix, replace the top level deck
if self.deckPrefix: if self.deckPrefix:
tmpname = "::".join(DeckManager._path(name)[1:]) tmpname = "::".join(DeckManager.path(name)[1:])
name = self.deckPrefix name = self.deckPrefix
if tmpname: if tmpname:
name += "::" + tmpname name += "::" + tmpname
# manually create any parents so we can pull in descriptions # manually create any parents so we can pull in descriptions
head = "" head = ""
for parent in DeckManager._path(name)[:-1]: for parent in DeckManager.path(name)[:-1]:
if head: if head:
head += "::" head += "::"
head += parent head += parent

View file

@ -154,7 +154,7 @@ class Scheduler(V2):
data = [] data = []
def parent(name): def parent(name):
parts = DeckManager._path(name) parts = DeckManager.path(name)
if len(parts) < 2: if len(parts) < 2:
return None return None
parts = parts[:-1] parts = parts[:-1]

View file

@ -241,7 +241,7 @@ order by due"""
data = [] data = []
def parent(name): def parent(name):
parts = DeckManager._path(name) parts = DeckManager.path(name)
if len(parts) < 2: if len(parts) < 2:
return None return None
parts = parts[:-1] parts = parts[:-1]
@ -280,7 +280,7 @@ order by due"""
def _groupChildren(self, grps: List[List[Any]]) -> Any: def _groupChildren(self, grps: List[List[Any]]) -> Any:
# first, split the group names into components # first, split the group names into components
for g in grps: for g in grps:
g[0] = DeckManager._path(g[0]) g[0] = DeckManager.path(g[0])
# and sort based on those components # and sort based on those components
grps.sort(key=itemgetter(0)) grps.sort(key=itemgetter(0))
# then run main function # then run main function

View file

@ -154,7 +154,7 @@ def fields_for_rendering(
fields["Tags"] = note.stringTags().strip() fields["Tags"] = note.stringTags().strip()
fields["Type"] = card.note_type()["name"] fields["Type"] = card.note_type()["name"]
fields["Deck"] = col.decks.name(card.odid or card.did) fields["Deck"] = col.decks.name(card.odid or card.did)
fields["Subdeck"] = DeckManager._path(fields["Deck"])[-1] fields["Subdeck"] = DeckManager.path(fields["Deck"])[-1]
fields["Card"] = card.template()["name"] fields["Card"] = card.template()["name"]
flag = card.userFlag() flag = card.userFlag()
fields["CardFlag"] = flag and f"flag{flag}" or "" fields["CardFlag"] = flag and f"flag{flag}" or ""

View file

@ -1303,7 +1303,7 @@ QTableView {{ gridline-color: {grid} }}
def addDecks(parent, decks): def addDecks(parent, decks):
for head, did, rev, lrn, new, children in decks: for head, did, rev, lrn, new, children in decks:
name = self.mw.col.decks.get(did)["name"] name = self.mw.col.decks.get(did)["name"]
shortname = DeckManager._path(name)[-1] shortname = DeckManager.path(name)[-1]
if children: if children:
subm = parent.addMenu(shortname) subm = parent.addMenu(shortname)
subm.addItem(_("Filter"), self._filterFunc("deck", name)) subm.addItem(_("Filter"), self._filterFunc("deck", name))