From b81abca88538fae3d19ed505ff4e6d4751bb327b Mon Sep 17 00:00:00 2001 From: Gerit Wagner Date: Sat, 7 Jun 2025 14:49:20 +0200 Subject: [PATCH 1/2] initial code --- colrev/ui_cli/cli.py | 12 +++++++ colrev/ui_cli/cli_file_mode.py | 31 +++++++++++++++++++ .../colrev.ui_cli.cli_file_mode.pdf_get.rst | 6 ++++ .../colrev.ui_cli.cli_file_mode.rst | 31 +++++++++++++++++++ .../dev_docs/_autosummary/colrev.ui_cli.rst | 1 + .../colrev.ui_cli.cli_file_mode.pdf_get.rst | 6 ++++ .../dev_docs/colrev.ui_cli.cli_file_mode.rst | 31 +++++++++++++++++++ docs/source/dev_docs/colrev.ui_cli.rst | 1 + 8 files changed, 119 insertions(+) create mode 100644 colrev/ui_cli/cli_file_mode.py create mode 100644 docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst create mode 100644 docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst create mode 100644 docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst create mode 100644 docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst diff --git a/colrev/ui_cli/cli.py b/colrev/ui_cli/cli.py index 57c430bd5..2e3a7cacd 100644 --- a/colrev/ui_cli/cli.py +++ b/colrev/ui_cli/cli.py @@ -1517,6 +1517,11 @@ def pdfs( default=False, help="Setup template for custom pdf-get script.", ) +@click.option( + "--file", + type=click.Path(exists=True), + help="Path to file(s)", +) @click.option( "-v", "--verbose", @@ -1541,6 +1546,7 @@ def pdf_get( rename: bool, relink_pdfs: bool, setup_custom_script: bool, + file: Path, verbose: bool, force: bool, ) -> None: @@ -1549,6 +1555,12 @@ def pdf_get( Docs: https://colrev-environment.github.io/colrev/manual/pdf_retrieval/pdf_get.html """ + if file: + import colrev.ui_cli.cli_file_mode + + colrev.ui_cli.cli_file_mode.pdf_get(file) + return + review_manager = get_review_manager( ctx, { diff --git a/colrev/ui_cli/cli_file_mode.py b/colrev/ui_cli/cli_file_mode.py new file mode 100644 index 000000000..b8d934569 --- /dev/null +++ b/colrev/ui_cli/cli_file_mode.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +"""File mode operations.""" +from __future__ import annotations + +from colrev.constants import Fields + +from pathlib import Path +import colrev.env.local_index +import colrev.exceptions as colrev_exceptions + +def pdf_get(file: Path) -> None: + print(f"Download PDFs for: {file}") + + records = colrev.loader.load_utils.load(Path(file)) + local_index = colrev.env.local_index.LocalIndex( + verbose_mode=True + ) + + for record in records.values(): + if Fields.FILE in record: + continue + print(f"Retrieve PDF for record {record[Fields.ID]}.") + + try: + retrieved_record = local_index.retrieve(record, include_file=True) + except colrev_exceptions.RecordNotInIndexException: + continue + + if Fields.FILE in retrieved_record.data: + input(retrieved_record.data[Fields.FILE]) + \ No newline at end of file diff --git a/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst new file mode 100644 index 000000000..c53d3aaee --- /dev/null +++ b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst @@ -0,0 +1,6 @@ +colrev.ui\_cli.cli\_file\_mode.pdf\_get +======================================= + +.. currentmodule:: colrev.ui_cli.cli_file_mode + +.. autofunction:: pdf_get \ No newline at end of file diff --git a/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst new file mode 100644 index 000000000..ec9f278f6 --- /dev/null +++ b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst @@ -0,0 +1,31 @@ +colrev.ui\_cli.cli\_file\_mode +============================== + +.. automodule:: colrev.ui_cli.cli_file_mode + + + + + + + + .. rubric:: Functions + + .. autosummary:: + :toctree: + :nosignatures: + + pdf_get + + + + + + + + + + + + + diff --git a/docs/source/dev_docs/_autosummary/colrev.ui_cli.rst b/docs/source/dev_docs/_autosummary/colrev.ui_cli.rst index e022ee9f8..ae2ca962f 100644 --- a/docs/source/dev_docs/_autosummary/colrev.ui_cli.rst +++ b/docs/source/dev_docs/_autosummary/colrev.ui_cli.rst @@ -28,6 +28,7 @@ colrev.ui\_cli colrev.ui_cli.add_package_to_settings colrev.ui_cli.cli + colrev.ui_cli.cli_file_mode colrev.ui_cli.cli_status_printer colrev.ui_cli.cli_validation colrev.ui_cli.dedupe_errors diff --git a/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst new file mode 100644 index 000000000..c53d3aaee --- /dev/null +++ b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst @@ -0,0 +1,6 @@ +colrev.ui\_cli.cli\_file\_mode.pdf\_get +======================================= + +.. currentmodule:: colrev.ui_cli.cli_file_mode + +.. autofunction:: pdf_get \ No newline at end of file diff --git a/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst new file mode 100644 index 000000000..ec9f278f6 --- /dev/null +++ b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst @@ -0,0 +1,31 @@ +colrev.ui\_cli.cli\_file\_mode +============================== + +.. automodule:: colrev.ui_cli.cli_file_mode + + + + + + + + .. rubric:: Functions + + .. autosummary:: + :toctree: + :nosignatures: + + pdf_get + + + + + + + + + + + + + diff --git a/docs/source/dev_docs/colrev.ui_cli.rst b/docs/source/dev_docs/colrev.ui_cli.rst index 056703f3d..a61194ef6 100644 --- a/docs/source/dev_docs/colrev.ui_cli.rst +++ b/docs/source/dev_docs/colrev.ui_cli.rst @@ -28,6 +28,7 @@ colrev.ui_cli.add_package_to_settings colrev.ui_cli.cli + colrev.ui_cli.cli_file_mode colrev.ui_cli.cli_status_printer colrev.ui_cli.cli_validation colrev.ui_cli.dedupe_errors From 55c8484c4cc01b3cdcbbc55d634a59833a3ff01e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 12:50:15 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- colrev/ui_cli/cli_file_mode.py | 10 +++----- .../colrev.ui_cli.cli_file_mode.pdf_get.rst | 2 +- .../colrev.ui_cli.cli_file_mode.rst | 25 +++++-------------- .../colrev.ui_cli.cli_file_mode.pdf_get.rst | 2 +- .../dev_docs/colrev.ui_cli.cli_file_mode.rst | 25 +++++-------------- 5 files changed, 18 insertions(+), 46 deletions(-) diff --git a/colrev/ui_cli/cli_file_mode.py b/colrev/ui_cli/cli_file_mode.py index b8d934569..f089a68d1 100644 --- a/colrev/ui_cli/cli_file_mode.py +++ b/colrev/ui_cli/cli_file_mode.py @@ -2,19 +2,18 @@ """File mode operations.""" from __future__ import annotations -from colrev.constants import Fields - from pathlib import Path + import colrev.env.local_index import colrev.exceptions as colrev_exceptions +from colrev.constants import Fields + def pdf_get(file: Path) -> None: print(f"Download PDFs for: {file}") records = colrev.loader.load_utils.load(Path(file)) - local_index = colrev.env.local_index.LocalIndex( - verbose_mode=True - ) + local_index = colrev.env.local_index.LocalIndex(verbose_mode=True) for record in records.values(): if Fields.FILE in record: @@ -28,4 +27,3 @@ def pdf_get(file: Path) -> None: if Fields.FILE in retrieved_record.data: input(retrieved_record.data[Fields.FILE]) - \ No newline at end of file diff --git a/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst index c53d3aaee..e91d384ad 100644 --- a/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst +++ b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst @@ -3,4 +3,4 @@ colrev.ui\_cli.cli\_file\_mode.pdf\_get .. currentmodule:: colrev.ui_cli.cli_file_mode -.. autofunction:: pdf_get \ No newline at end of file +.. autofunction:: pdf_get diff --git a/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst index ec9f278f6..dbbf7d2b6 100644 --- a/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst +++ b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst @@ -3,29 +3,16 @@ colrev.ui\_cli.cli\_file\_mode .. automodule:: colrev.ui_cli.cli_file_mode - - - - - - .. rubric:: Functions - .. autosummary:: - :toctree: - :nosignatures: - - pdf_get - - - - - - - - + .. rubric:: Functions + .. autosummary:: + :toctree: + :nosignatures: + + pdf_get diff --git a/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst index c53d3aaee..e91d384ad 100644 --- a/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst +++ b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst @@ -3,4 +3,4 @@ colrev.ui\_cli.cli\_file\_mode.pdf\_get .. currentmodule:: colrev.ui_cli.cli_file_mode -.. autofunction:: pdf_get \ No newline at end of file +.. autofunction:: pdf_get diff --git a/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst index ec9f278f6..dbbf7d2b6 100644 --- a/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst +++ b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst @@ -3,29 +3,16 @@ colrev.ui\_cli.cli\_file\_mode .. automodule:: colrev.ui_cli.cli_file_mode - - - - - - .. rubric:: Functions - .. autosummary:: - :toctree: - :nosignatures: - - pdf_get - - - - - - - - + .. rubric:: Functions + .. autosummary:: + :toctree: + :nosignatures: + + pdf_get