cards/notes

This commit is contained in:
Damien Elmes 2019-12-19 14:14:20 +10:00
parent 9c16d59086
commit 912e1bad03
2 changed files with 16 additions and 14 deletions

View file

@ -22,8 +22,9 @@ from typing import Any, Optional
class Card:
def __init__(self, col, id=None) -> None:
self.col = col
def __init__(self, col, id: Optional[int] = None) -> None:
from anki.collection import _Collection
self.col: _Collection = col
self.timerStarted = None
self._qa = None
self._note = None
@ -117,7 +118,7 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""",
self.left, self.odue, self.odid, self.did, self.id)
self.col.log(self)
def q(self, reload=False, browser=False) -> str:
def q(self, reload: bool = False, browser: bool = False) -> str:
return self.css() + self._getQA(reload, browser)['q']
def a(self) -> str:
@ -126,7 +127,7 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""",
def css(self) -> str:
return "<style>%s</style>" % self.model()['css']
def _getQA(self, reload=False, browser=False) -> Any:
def _getQA(self, reload: bool = False, browser: bool = False) -> Any:
if not self._qa or reload:
f = self.note(reload); m = self.model(); t = self.template()
data = [self.id, f.id, m['id'], self.odid or self.did, self.ord,
@ -138,7 +139,7 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""",
self._qa = self.col._renderQA(data, *args)
return self._qa
def note(self, reload=False) -> Any:
def note(self, reload: bool = False) -> Any:
if not self._note or reload:
self._note = self.col.getNote(self.nid)
return self._note
@ -188,6 +189,6 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""",
def userFlag(self) -> Any:
return self.flags & 0b111
def setUserFlag(self, flag) -> None:
def setUserFlag(self, flag: int) -> None:
assert 0 <= flag <= 7
self.flags = (self.flags & ~0b111) | flag

View file

@ -4,11 +4,12 @@
from anki.utils import fieldChecksum, intTime, \
joinFields, splitFields, stripHTMLMedia, timestampID, guid64
from typing import Any, List, Tuple
from typing import List, Tuple
from typing import Any, Optional
class Note:
def __init__(self, col, model=None, id=None) -> None:
def __init__(self, col, model: Optional[Any] = None, id: Optional[int] = None) -> None:
assert not (model and id)
self.col = col
self.newlyAdded = False
@ -44,7 +45,7 @@ from notes where id = ?""", self.id)
self._fmap = self.col.models.fieldMap(self._model)
self.scm = self.col.scm
def flush(self, mod=None) -> None:
def flush(self, mod: Optional[int] = None) -> None:
"If fields or tags have changed, write changes to disk."
assert self.scm == self.col.scm
self._preFlush()
@ -90,16 +91,16 @@ insert or replace into notes values (?,?,?,?,?,?,?,?,?,?,?)""",
return [(f['name'], self.fields[ord])
for ord, f in sorted(self._fmap.values())]
def _fieldOrd(self, key) -> Any:
def _fieldOrd(self, key: str) -> Any:
try:
return self._fmap[key][0]
except:
raise KeyError(key)
def __getitem__(self, key) -> Any:
def __getitem__(self, key: str) -> Any:
return self.fields[self._fieldOrd(key)]
def __setitem__(self, key, value) -> None:
def __setitem__(self, key: str, value: str) -> None:
self.fields[self._fieldOrd(key)] = value
def __contains__(self, key) -> bool:
@ -108,7 +109,7 @@ insert or replace into notes values (?,?,?,?,?,?,?,?,?,?,?)""",
# Tags
##################################################
def hasTag(self, tag) -> Any:
def hasTag(self, tag: str) -> Any:
return self.col.tags.inList(tag, self.tags)
def stringTags(self) -> Any:
@ -125,7 +126,7 @@ insert or replace into notes values (?,?,?,?,?,?,?,?,?,?,?)""",
for r in rem:
self.tags.remove(r)
def addTag(self, tag) -> None:
def addTag(self, tag: str) -> None:
# duplicates will be stripped on save
self.tags.append(tag)