From 4bf1acb775b6bcd3f9a604e1876200bd14e41c6c Mon Sep 17 00:00:00 2001 From: Nathaniel Landau Date: Tue, 21 Mar 2023 23:16:23 -0400 Subject: [PATCH] fix: `--export-template` correctly exports all notes --- src/obsidian_metadata/cli.py | 2 +- src/obsidian_metadata/models/application.py | 10 ++++++++++ src/obsidian_metadata/models/vault.py | 21 ++++++++------------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/obsidian_metadata/cli.py b/src/obsidian_metadata/cli.py index ed799a2..3444d2b 100644 --- a/src/obsidian_metadata/cli.py +++ b/src/obsidian_metadata/cli.py @@ -151,7 +151,7 @@ def main( raise typer.Exit(code=0) if export_template is not None: path = Path(export_template).expanduser().resolve() - application.noninteractive_export_csv(path) + application.noninteractive_export_template(path) raise typer.Exit(code=0) application.application_main() diff --git a/src/obsidian_metadata/models/application.py b/src/obsidian_metadata/models/application.py index 249bbee..fc6b5e5 100644 --- a/src/obsidian_metadata/models/application.py +++ b/src/obsidian_metadata/models/application.py @@ -560,6 +560,16 @@ def noninteractive_export_json(self, path: Path) -> None: self.vault.export_metadata(export_format="json", path=str(path)) alerts.success(f"Exported metadata to {path}") + def noninteractive_export_template(self, path: Path) -> None: + """Export the vault metadata to CSV.""" + self._load_vault() + with console.status( + "Preparing export... [dim](Can take a while for large vaults)[/]", + spinner="bouncingBall", + ): + self.vault.export_notes_to_csv(path=str(path)) + alerts.success(f"Exported metadata to {path}") + def rename_key(self) -> None: """Rename a key in the vault.""" original_key = self.questions.ask_existing_key( diff --git a/src/obsidian_metadata/models/vault.py b/src/obsidian_metadata/models/vault.py index 25d81ba..6aef46d 100644 --- a/src/obsidian_metadata/models/vault.py +++ b/src/obsidian_metadata/models/vault.py @@ -11,7 +11,6 @@ import rich.repr import typer from rich import box -from rich.progress import Progress, SpinnerColumn, TextColumn from rich.prompt import Confirm from rich.table import Table @@ -64,12 +63,10 @@ def __init__( self.filters = filters self.all_note_paths = self._find_markdown_notes() - with Progress( - SpinnerColumn(), - TextColumn("[progress.description]{task.description}"), - transient=True, - ) as progress: - progress.add_task(description="Processing notes...", total=None) + with console.status( + "Processing notes... [dim](Can take a while for a large vault)[/]", + spinner="bouncingBall", + ): self.all_notes: list[Note] = [ Note(note_path=p, dry_run=self.dry_run) for p in self.all_note_paths ] @@ -172,12 +169,10 @@ def _find_markdown_notes(self) -> list[Path]: def _rebuild_vault_metadata(self) -> None: """Rebuild vault metadata.""" self.metadata = VaultMetadata() - with Progress( - SpinnerColumn(), - TextColumn("[progress.description]{task.description}"), - transient=True, - ) as progress: - progress.add_task(description="Processing notes...", total=None) + with console.status( + "Processing notes... [dim](Can take a while for a large vault)[/]", + spinner="bouncingBall", + ): for _note in self.notes_in_scope: self.metadata.index_metadata( area=MetadataType.FRONTMATTER, metadata=_note.frontmatter.dict