move types.py into the files responsible for each type

This commit is contained in:
Damien Elmes 2020-01-17 10:17:33 +10:00
parent 06833f7301
commit d3cc63efb0
9 changed files with 37 additions and 49 deletions

View file

@ -25,14 +25,13 @@ from anki.errors import AnkiError
from anki.hooks import runFilter from anki.hooks import runFilter
from anki.lang import _, ngettext from anki.lang import _, ngettext
from anki.media import MediaManager from anki.media import MediaManager
from anki.models import ModelManager from anki.models import ModelManager, NoteType, Template
from anki.notes import Note from anki.notes import Note
from anki.rsbackend import RustBackend from anki.rsbackend import RustBackend
from anki.sched import Scheduler as V1Scheduler from anki.sched import Scheduler as V1Scheduler
from anki.schedv2 import Scheduler as V2Scheduler from anki.schedv2 import Scheduler as V2Scheduler
from anki.tags import TagManager from anki.tags import TagManager
from anki.template import TemplateRenderContext, render_card from anki.template import QAData, TemplateRenderContext, render_card
from anki.types import NoteType, QAData, Template
from anki.utils import ( from anki.utils import (
devMode, devMode,
fieldChecksum, fieldChecksum,

View file

@ -12,8 +12,8 @@ from typing import Any, Optional, Tuple
import anki import anki
from anki import hooks from anki import hooks
from anki.lang import _ from anki.lang import _
from anki.models import NoteType
from anki.template import TemplateRenderContext from anki.template import TemplateRenderContext
from anki.types import NoteType
from anki.utils import call, checksum, isMac, namedtmp, stripHTML, tmpdir from anki.utils import call, checksum, isMac, namedtmp, stripHTML, tmpdir
pngCommands = [ pngCommands = [

View file

@ -13,9 +13,17 @@ import anki # pylint: disable=unused-import
from anki import hooks from anki import hooks
from anki.consts import * from anki.consts import *
from anki.lang import _ from anki.lang import _
from anki.types import Field, NoteType, Template
from anki.utils import checksum, ids2str, intTime, joinFields, splitFields from anki.utils import checksum, ids2str, intTime, joinFields, splitFields
# types
NoteType = Dict[str, Any]
Field = Dict[str, Any]
Template = Dict[str, Union[str, int, None]]
TemplateRequirementType = str # Union["all", "any", "none"]
# template ordinal, type, list of field ordinals
TemplateRequiredFieldOrds = Tuple[int, TemplateRequirementType, List[int]]
AllTemplateReqs = List[TemplateRequiredFieldOrds]
# Models # Models
########################################################################## ##########################################################################

View file

@ -6,7 +6,7 @@ from __future__ import annotations
from typing import Any, Dict, List, Optional, Tuple from typing import Any, Dict, List, Optional, Tuple
import anki # pylint: disable=unused-import import anki # pylint: disable=unused-import
from anki.types import NoteType from anki.models import NoteType
from anki.utils import ( from anki.utils import (
fieldChecksum, fieldChecksum,
guid64, guid64,

View file

@ -8,8 +8,7 @@ import ankirspy # pytype: disable=import-error
import anki.backend_pb2 as pb import anki.backend_pb2 as pb
import anki.buildinfo import anki.buildinfo
from anki.models import AllTemplateReqs
from .types import AllTemplateReqs
assert ankirspy.buildhash() == anki.buildinfo.buildhash assert ankirspy.buildhash() == anki.buildinfo.buildhash

View file

@ -5,7 +5,7 @@ from typing import Any, Callable, List, Tuple, Union
from anki.consts import MODEL_CLOZE from anki.consts import MODEL_CLOZE
from anki.lang import _ from anki.lang import _
from anki.types import NoteType from anki.models import NoteType
models: List[Tuple[Union[Callable[[], str], str], Callable[[Any], NoteType]]] = [] models: List[Tuple[Union[Callable[[], str], str], Callable[[Any], NoteType]]] = []

View file

@ -33,9 +33,29 @@ from typing import Any, Dict, List, Optional, Tuple
import anki import anki
from anki import hooks from anki import hooks
from anki.models import NoteType
from anki.rsbackend import TemplateReplacementList from anki.rsbackend import TemplateReplacementList
from anki.sound import stripSounds from anki.sound import stripSounds
from anki.types import NoteType, QAData
QAData = Tuple[
# Card ID this QA comes from. Corresponds to 'cid' column.
int,
# Note ID this QA comes from. Corresponds to 'nid' column.
int,
# ID of the model (i.e., NoteType) for this QA's note. Corresponds to 'mid' column.
int,
# Deck ID. Corresponds to 'did' column.
int,
# Index of the card template (within the NoteType) this QA was built
# from. Corresponds to 'ord' column.
int,
# Tags, separated by space. Corresponds to 'tags' column.
str,
# Corresponds to 'flds' column. TODO: document.
str,
# Corresponds to 'cardFlags' column. TODO: document
int,
]
class TemplateRenderContext: class TemplateRenderContext:

View file

@ -1,38 +0,0 @@
from typing import Any, Dict, List, Tuple, Union
# Model attributes are stored in a dict keyed by strings. This type alias
# provides more descriptive function signatures than just 'Dict[str, Any]'
# for methods that operate on models.
# TODO: Use https://www.python.org/dev/peps/pep-0589/ when available in
# supported Python versions.
NoteType = Dict[str, Any]
Field = Dict[str, Any]
Template = Dict[str, Union[str, int, None]]
QAData = Tuple[
# Card ID this QA comes from. Corresponds to 'cid' column.
int,
# Note ID this QA comes from. Corresponds to 'nid' column.
int,
# ID of the model (i.e., NoteType) for this QA's note. Corresponds to 'mid' column.
int,
# Deck ID. Corresponds to 'did' column.
int,
# Index of the card template (within the NoteType) this QA was built
# from. Corresponds to 'ord' column.
int,
# Tags, separated by space. Corresponds to 'tags' column.
str,
# Corresponds to 'flds' column. TODO: document.
str,
# Corresponds to 'cardFlags' column. TODO: document
int,
]
TemplateRequirementType = str # Union["all", "any", "none"]
# template ordinal, type, list of field ordinals
TemplateRequiredFieldOrds = Tuple[int, TemplateRequirementType, List[int]]
AllTemplateReqs = List[TemplateRequiredFieldOrds]

View file

@ -18,8 +18,8 @@ from anki.cards import Card
from anki.collection import _Collection from anki.collection import _Collection
from anki.consts import * from anki.consts import *
from anki.lang import _, ngettext from anki.lang import _, ngettext
from anki.models import NoteType
from anki.notes import Note from anki.notes import Note
from anki.types import NoteType
from anki.utils import ( from anki.utils import (
bodyClass, bodyClass,
fmtTimeSpan, fmtTimeSpan,