diff --git a/diffly/cli.py b/diffly/cli.py index 07299c8..d3560eb 100644 --- a/diffly/cli.py +++ b/diffly/cli.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: BSD-3-Clause import datetime as dt +import warnings from pathlib import Path from typing import Annotated @@ -121,7 +122,7 @@ def main( ), ), ] = False, - hidden_columns: Annotated[ + hidden_column: Annotated[ list[str], typer.Option( help=( @@ -130,6 +131,10 @@ def main( ) ), ] = [], + hidden_columns: Annotated[ + list[str], + typer.Option(hidden=True), + ] = [], metric: Annotated[ list[str], typer.Option( @@ -141,6 +146,13 @@ def main( ] = [], ) -> None: """Compare two `parquet` files and print the comparison result.""" + if hidden_columns: + warnings.warn( + "`--hidden-columns` is deprecated, use `--hidden-column` instead.", + FutureWarning, + ) + hidden_column = [*hidden_column, *hidden_columns] + for name in metric: if name not in DEFAULT_METRICS: raise typer.BadParameter( @@ -164,7 +176,7 @@ def main( left_name=left_name, right_name=right_name, slim=slim, - hidden_columns=hidden_columns, + hidden_columns=hidden_column, metrics=metrics, ) if output_json: diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py index 84de072..c65320c 100644 --- a/tests/cli/test_cli.py +++ b/tests/cli/test_cli.py @@ -58,6 +58,28 @@ def test_cli_smoke(tmp_path: Path, output_json: bool) -> None: assert result.output == comparison.summary().format(pretty=True) + "\n" +def test_cli_hidden_columns_alias_warns(tmp_path: Path) -> None: + df = pl.DataFrame({"id": [1, 2], "secret": ["a", "b"]}) + df.write_parquet(tmp_path / "left.parquet") + df.write_parquet(tmp_path / "right.parquet") + + with pytest.warns(FutureWarning, match="--hidden-columns.*deprecated"): + result = runner.invoke( + app, + [ + str(tmp_path / "left.parquet"), + str(tmp_path / "right.parquet"), + "--primary-key", + "id", + "--hidden-columns", + "secret", + ], + catch_exceptions=False, + ) + + assert result.exit_code == 0 + + def test_cli_unknown_metric(tmp_path: Path) -> None: left = pl.DataFrame({"id": [1, 2], "x": [1.0, 2.0]}) right = pl.DataFrame({"id": [1, 2], "x": [1.0, 3.0]})