From 64bb71e5bdea657605e7ffc600f636ecd24f7609 Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Mon, 6 Apr 2020 23:00:54 +0200 Subject: [PATCH] immediate_parent --- pylib/anki/decks.py | 13 +++++++++---- pylib/anki/sched.py | 11 ++--------- pylib/anki/schedv2.py | 11 ++--------- 3 files changed, 13 insertions(+), 22 deletions(-) diff --git a/pylib/anki/decks.py b/pylib/anki/decks.py index 12724803a..755bc3ed6 100644 --- a/pylib/anki/decks.py +++ b/pylib/anki/decks.py @@ -306,6 +306,12 @@ class DeckManager: def immediate_parent_path(cls, name: str) -> Any: return cls._path(name)[:-1] + @classmethod + def immediate_parent(cls, name: str) -> Any: + pp = cls.immediate_parent_path(name) + if pp: + return "::".join(pp) + @classmethod def key(cls, deck: Dict[str, Any]) -> List[str]: return cls.path(deck["name"]) @@ -485,7 +491,7 @@ class DeckManager: # immediate parent must exist if "::" in deck["name"]: - immediateParent = "::".join(self.immediate_parent_path(deck["name"])) + immediateParent = self.immediate_parent(deck["name"]) if immediateParent not in names: self.col.log("fix deck with missing parent", deck["name"]) self._ensureParents(deck["name"]) @@ -588,9 +594,8 @@ class DeckManager: childMap[deck["id"]] = node # add note to immediate parent - immediate_parent_path = self.immediate_parent_path(deck["name"]) - if immediate_parent_path: - immediateParent = "::".join(immediate_parent_path) + immediateParent = self.immediate_parent(deck["name"]) + if immediateParent is not None: pid = nameMap[immediateParent]["id"] childMap[pid][deck["id"]] = node diff --git a/pylib/anki/sched.py b/pylib/anki/sched.py index 272b0bf9c..997227b38 100644 --- a/pylib/anki/sched.py +++ b/pylib/anki/sched.py @@ -153,18 +153,11 @@ class Scheduler(V2): lims: Dict[str, List[int]] = {} data = [] - def parent(name): - parts = DeckManager.path(name) - if len(parts) < 2: - return None - parts = parts[:-1] - return "::".join(parts) - for deck in decks: - p = parent(deck["name"]) + p = DeckManager.immediate_parent(deck["name"]) # new nlim = self._deckNewLimitSingle(deck) - if p: + if p is not None: nlim = min(nlim, lims[p][0]) new = self._newForDeck(deck["id"], nlim) # learning diff --git a/pylib/anki/schedv2.py b/pylib/anki/schedv2.py index e437a4d4a..b4ba43c56 100644 --- a/pylib/anki/schedv2.py +++ b/pylib/anki/schedv2.py @@ -240,19 +240,12 @@ order by due""" lims: Dict[str, List[int]] = {} data = [] - def parent(name): - parts = DeckManager.path(name) - if len(parts) < 2: - return None - parts = parts[:-1] - return "::".join(parts) - childMap = self.col.decks.childMap() for deck in decks: - p = parent(deck["name"]) + p = DeckManager.immediate_parent(deck["name"]) # new nlim = self._deckNewLimitSingle(deck) - if p: + if p is not None: nlim = min(nlim, lims[p][0]) new = self._newForDeck(deck["id"], nlim) # learning