diff --git a/dvc/progress.py b/dvc/progress.py index d03b037c06..a8ab61951b 100644 --- a/dvc/progress.py +++ b/dvc/progress.py @@ -55,7 +55,8 @@ def __init__( desc : persists after `close()` level : effective logging level for determining `disable`; used only if `disable` is unspecified - disable : If (default: None), will be determined by logging level. + disable : If (default: None) or False, + will be determined by logging level. May be overridden to `True` due to non-TTY status. Skip override by specifying env var `DVC_IGNORE_ISATTY`. kwargs : anything accepted by `tqdm.tqdm()` @@ -69,7 +70,7 @@ def __init__( file = sys.stderr self.desc_persist = desc # auto-disable based on `logger.level` - if disable is None: + if not disable: disable = logger.getEffectiveLevel() > level # auto-disable based on TTY if ( diff --git a/dvc/repo/add.py b/dvc/repo/add.py index e469119b93..dfd71de12b 100644 --- a/dvc/repo/add.py +++ b/dvc/repo/add.py @@ -55,7 +55,7 @@ def add(repo, targets, recursive=False, no_commit=False, fname=None): total=len(stages), desc="Processing", unit="file", - disable=True if len(stages) == 1 else None, + disable=len(stages) == 1, ) as pbar_stages: for stage in stages: try: @@ -102,7 +102,7 @@ def _create_stages(repo, targets, fname, pbar=None): for out in Tqdm( targets, desc="Creating DVC-files", - disable=True if len(targets) < LARGE_DIR_SIZE else None, + disable=len(targets) < LARGE_DIR_SIZE, unit="file", ): stage = Stage.create(repo, outs=[out], add=True, fname=fname) diff --git a/tests/unit/test_progress.py b/tests/unit/test_progress.py index 72005f65cd..30dd7e662f 100644 --- a/tests/unit/test_progress.py +++ b/tests/unit/test_progress.py @@ -16,6 +16,17 @@ def test_quiet_logging(caplog, capsys): assert out_err.err == "" +def test_quiet_logging_disable_false(caplog, capsys): + with caplog.at_level(logging.CRITICAL, logger="dvc"): + # simulate interactive terminal + with mock.patch.object(sys.stderr, "isatty", return_value=True): + for _ in Tqdm(range(10), disable=False): + pass + out_err = capsys.readouterr() + assert out_err.out == "" + assert out_err.err == "" + + def test_quiet_notty(caplog, capsys): with caplog.at_level(logging.INFO, logger="dvc"): for _ in Tqdm(range(10)):