From b31fc1df695dd7359aeb42dd458888578876247f Mon Sep 17 00:00:00 2001 From: ayasyrev Date: Mon, 16 Sep 2024 09:28:54 +0300 Subject: [PATCH 1/3] add nbclean to hook config for backward compatibility --- .pre-commit-hooks.yaml | 10 ++++++++++ src/nbmetaclean/version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml index dcb1186..4a072f5 100644 --- a/.pre-commit-hooks.yaml +++ b/.pre-commit-hooks.yaml @@ -5,6 +5,16 @@ files: \.ipynb$ language: python language_version: python3 + +# Same as nbmetaclean, for compatibility. +- id: nbclean + name: nbclean + description: Clean Jupyter Notebooks metadata and optionally output. + entry: nbclean + files: \.ipynb$ + language: python + language_version: python3 + - id: nbcheck name: nbcheck description: Check Jupyter Notebooks for correct sequence of execution_count and (or) errors in outputs. diff --git a/src/nbmetaclean/version.py b/src/nbmetaclean/version.py index 0c0ac12..8c437c6 100644 --- a/src/nbmetaclean/version.py +++ b/src/nbmetaclean/version.py @@ -1,3 +1,3 @@ -__version__ = "0.1.1" # pragma: no cover +__version__ = "0.1.2" # pragma: no cover __all__ = ["__version__"] # pragma: no cover From ef9471787a2bb60a5cea3d2044df2bfdeb090512 Mon Sep 17 00:00:00 2001 From: ayasyrev Date: Mon, 16 Sep 2024 09:36:50 +0300 Subject: [PATCH 2/3] add `-v` flag to app nbclean --- src/nbmetaclean/app_clean.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/nbmetaclean/app_clean.py b/src/nbmetaclean/app_clean.py index d6514de..fc57f83 100644 --- a/src/nbmetaclean/app_clean.py +++ b/src/nbmetaclean/app_clean.py @@ -1,11 +1,14 @@ from __future__ import annotations import argparse +import sys from pathlib import Path from typing import Union from nbmetaclean.clean import CleanConfig, TupleStr, clean_nb_file from nbmetaclean.helpers import get_nb_names_from_list +from nbmetaclean.version import __version__ + parser = argparse.ArgumentParser( prog="nbmetaclean", @@ -80,6 +83,12 @@ action="store_true", help="Verbose mode. Print extra information.", ) +parser.add_argument( + "-v", + "--version", + action="store_true", + help="Print version information.", +) def process_mask(mask: Union[list[str], None]) -> Union[tuple[TupleStr, ...], None]: @@ -116,6 +125,11 @@ def print_result( def app_clean() -> None: """Clean metadata and execution_count from Jupyter notebook.""" cfg = parser.parse_args() + + if cfg.version: + print(f"nbmetaclean version: {__version__}") + sys.exit(0) + clean_config = CleanConfig( clear_nb_metadata=not cfg.dont_clear_nb_metadata, clear_cell_metadata=cfg.clear_cell_metadata, From 5abbada72d32948aff45c64b5e580f42aa876ee5 Mon Sep 17 00:00:00 2001 From: ayasyrev Date: Mon, 16 Sep 2024 09:51:58 +0300 Subject: [PATCH 3/3] add `-v` flag to app nbclean --- src/nbmetaclean/app_check.py | 15 ++++++++++++++- tests/test_app_check.py | 12 ++++++++++++ tests/test_app_clean.py | 12 ++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/nbmetaclean/app_check.py b/src/nbmetaclean/app_check.py index 4c64dc6..3751aa7 100644 --- a/src/nbmetaclean/app_check.py +++ b/src/nbmetaclean/app_check.py @@ -6,6 +6,8 @@ from nbmetaclean.check import check_nb_ec, check_nb_errors, check_nb_warnings from nbmetaclean.helpers import get_nb_names_from_list, read_nb +from nbmetaclean.version import __version__ + parser = argparse.ArgumentParser( prog="nbcheck", @@ -48,6 +50,12 @@ action="store_true", help="Verbose mode. Print extra information.", ) +parser.add_argument( + "-v", + "--version", + action="store_true", + help="Print version information.", +) def check_ec(nb_files: list[Path], strict: bool, no_exec: bool) -> list[Path]: @@ -100,6 +108,11 @@ def print_results( def app_check() -> None: """Check notebooks for correct sequence of execution_count and errors in outputs.""" cfg = parser.parse_args() + + if cfg.version: + print(f"nbcheck from nbmetaclean, version: {__version__}") + sys.exit(0) + if not cfg.ec and not cfg.err and not cfg.warn: print( "No checks are selected. Please select at least one check: " @@ -107,7 +120,7 @@ def app_check() -> None: "--err (for errors in outputs) or " "--warn (for warnings in outputs)." ) - return + sys.exit(1) nb_files = get_nb_names_from_list(cfg.path) if cfg.verbose: diff --git a/tests/test_app_check.py b/tests/test_app_check.py index 2b56a56..81c4eb4 100644 --- a/tests/test_app_check.py +++ b/tests/test_app_check.py @@ -4,6 +4,7 @@ import subprocess from nbmetaclean.helpers import read_nb, write_nb +from nbmetaclean.version import __version__ def run_app( @@ -187,3 +188,14 @@ def test_check_nb_warnings(tmp_path): assert res_out.startswith("1 notebooks with warnings in outputs:\n") assert res_out.endswith("test_nb_3_ec.ipynb\n") assert not res_err + + +def test_check_app_version(): + """test check `--version` option.""" + res_out, res_err = run_app("--version") + assert res_out == f"nbcheck from nbmetaclean, version: {__version__}\n" + assert not res_err + + res_out, res_err = run_app("-v") + assert res_out == f"nbcheck from nbmetaclean, version: {__version__}\n" + assert not res_err diff --git a/tests/test_app_clean.py b/tests/test_app_clean.py index fd93918..b32f3cf 100644 --- a/tests/test_app_clean.py +++ b/tests/test_app_clean.py @@ -5,6 +5,7 @@ import subprocess from nbmetaclean.helpers import read_nb, write_nb +from nbmetaclean.version import __version__ def run_app( @@ -173,3 +174,14 @@ def test_clean_nb_wrong_file(tmp_path: Path): assert res_out.startswith("with errors: 1") assert str(nb_name) in res_out assert not res_err + + +def test_app_clean_version(): + """test check `--version` option.""" + res_out, res_err = run_app("--version") + assert res_out == f"nbmetaclean version: {__version__}\n" + assert not res_err + + res_out, res_err = run_app("-v") + assert res_out == f"nbmetaclean version: {__version__}\n" + assert not res_err