Merge branch 'main' into fresh-fields

This commit is contained in:
Matthias Metelka 2022-08-08 23:58:34 +02:00 committed by GitHub
commit 1367e2f2b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 24 additions and 20 deletions

View file

@ -6,9 +6,9 @@ Very brief notes for now.
At the highest level, Anki is logically separated into two parts.
A neat visualization
of the file layout is available here:
<https://octo-repo-visualization.vercel.app/?repo=ankitects%2Fanki>
A neat visualization of the file layout is available here:
<https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=ankitects%2Fanki>
(or go to <https://githubnext.com/projects/repo-visualization#explore-for-yourself> and enter `ankitects/anki`).
### Library (rslib & pylib)

View file

@ -313,7 +313,7 @@ class AnkiExporter(Exporter):
# such as update the deck description
pass
def removeSystemTags(self, tags: str) -> Any:
def removeSystemTags(self, tags: str) -> str:
return self.src.tags.rem_from_str("marked leech", tags)
def _modelHasMedia(self, model, fname) -> bool:
@ -464,7 +464,7 @@ class AnkiCollectionPackage21bExporter(AnkiCollectionPackageExporter):
def exporters(col: Collection) -> list[tuple[str, Any]]:
def id(obj):
def id(obj) -> tuple[str, Exporter]:
if callable(obj.key):
key_str = obj.key(col)
else:

View file

@ -7,7 +7,6 @@ import html
import os
import re
from dataclasses import dataclass
from typing import Any
import anki
import anki.collection
@ -168,7 +167,7 @@ def _save_latex_image(
log.close()
def _err_msg(col: anki.collection.Collection, type: str, texpath: str) -> Any:
def _err_msg(col: anki.collection.Collection, type: str, texpath: str) -> str:
msg = f"{col.tr.media_error_executing(val=type)}<br>"
msg += f"{col.tr.media_generated_file(val=texpath)}<br>"
try:

View file

@ -8,7 +8,7 @@ import pprint
import re
import sys
import time
from typing import Any, Callable
from typing import Callable
from anki import media_pb2
from anki._legacy import DeprecatedNamesMixin, deprecated_keywords
@ -142,7 +142,7 @@ class MediaManager(DeprecatedNamesMixin):
files.append(fname)
return files
def transform_names(self, txt: str, func: Callable) -> Any:
def transform_names(self, txt: str, func: Callable) -> str:
for reg in self.regexps:
txt = re.sub(reg, func, txt)
return txt

View file

@ -4,7 +4,7 @@
from __future__ import annotations
import copy
from typing import Any, NewType, Sequence
from typing import NewType, Sequence
import anki # pylint: disable=unused-import
import anki.cards
@ -182,7 +182,7 @@ class Note(DeprecatedNamesMixin):
"Add tag. Duplicates will be stripped on save."
self.tags.append(tag)
def string_tags(self) -> Any:
def string_tags(self) -> str:
return self.col.tags.join(self.tags)
def set_tags_from_str(self, tags: str) -> None:

View file

@ -161,14 +161,8 @@ impl Collection {
}
}
fn flag_name(n: u8) -> &'static str {
match n {
1 => "flag1",
2 => "flag2",
3 => "flag3",
4 => "flag4",
_ => "",
}
fn flag_name(n: u8) -> String {
format!("flag{n}")
}
fn fill_empty_fields(note: &mut Note, qfmt: &str, nt: &Notetype, tr: &I18n) {

View file

@ -13,10 +13,21 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
export let columnOptions: ColumnOption[];
export let tagsColumn: number;
export let globalNotetype: ImportExport.CsvMetadata.MappedNotetype | null;
let lastNotetypeId: number | undefined = -1;
let fieldNamesPromise: Promise<string[]>;
$: if (globalNotetype?.id !== lastNotetypeId) {
lastNotetypeId = globalNotetype?.id;
fieldNamesPromise =
globalNotetype === null
? Promise.resolve([])
: getNotetypeFields(globalNotetype.id);
}
</script>
{#if globalNotetype}
{#await getNotetypeFields(globalNotetype.id) then fieldNames}
{#await fieldNamesPromise then fieldNames}
{#each fieldNames as label, idx}
<!-- first index is treated specially, because it must be assigned some column -->
<MapperRow