From 4255b998c6a519d3be38433c42556ca454c0739e Mon Sep 17 00:00:00 2001 From: Philipp Stadler <hello@phstadler.com> Date: Sat, 20 Jul 2024 20:20:08 +0200 Subject: [PATCH] feat!: add fields_static BREAKING CHANGE: new required field --- export_apkgs.py | 9 +++++++-- test/fixtures/csv/.apkg-spec.yaml | 1 + test/fixtures/csv_updated_content/.apkg-spec.yaml | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/export_apkgs.py b/export_apkgs.py index b018d9b..eaedd2e 100755 --- a/export_apkgs.py +++ b/export_apkgs.py @@ -46,6 +46,7 @@ class ImportCsv(BaseModel): file_patterns: list[str]|None deck_name_pattern: str fields_mapping: list[str] + fields_static: dict[str, str] tags: list[str] class ImportImages(BaseModel): @@ -329,7 +330,8 @@ class ApkgExporter: tmp_deck, import_csv.tags, csv_path, - fields_mapping) + fields_mapping, + import_csv.fields_static) self.move_to_target_decks(col, tmp_deck, deck_name, csv_path) elif 'import_apkg' in content: import_apkg : ImportApkg = content['import_apkg'] @@ -375,7 +377,8 @@ class ApkgExporter: tmp_deck: int, tags: list[str], csv_path: Path, - fields_mapping: list[str]): + fields_mapping: list[str], + fields_static: dict[str, str]): with open(csv_path) as csv_file: reader = csv.reader(csv_file, delimiter=';') for row in reader: @@ -386,6 +389,8 @@ class ApkgExporter: raise Exception(f'CSV row is missing {field} at index {idx}:\n{row}') if field != 'guid': note[field] = row[idx] + for field, value in fields_static.items(): + note[field] = value for tag in tags: note.add_tag(tag) col.add_note(note, tmp_deck) diff --git a/test/fixtures/csv/.apkg-spec.yaml b/test/fixtures/csv/.apkg-spec.yaml index b8ddf0f..0c13501 100644 --- a/test/fixtures/csv/.apkg-spec.yaml +++ b/test/fixtures/csv/.apkg-spec.yaml @@ -15,6 +15,7 @@ content: - guid - Question - Answer + fields_static: {} tags: [] resource_paths: [] diff --git a/test/fixtures/csv_updated_content/.apkg-spec.yaml b/test/fixtures/csv_updated_content/.apkg-spec.yaml index 08ebda7..18e0338 100644 --- a/test/fixtures/csv_updated_content/.apkg-spec.yaml +++ b/test/fixtures/csv_updated_content/.apkg-spec.yaml @@ -15,6 +15,7 @@ content: - guid - Question - Answer + fields_static: {} tags: [] resource_paths: [] -- GitLab