-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't pollute non-interactive output with progress bars #3281
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add a name that doesn't imply that this backend is used only for tests because the next commit will make set_backend() select it whenever is_interactive() returns false.
If is_interactive() returns false, we select the ConsoleLog backend. This backend displays progress bars, but, in most non-interactive cases, the progress bars are noise, so let's instead set the backend to SilentConsoleLog. If there turns out to be a need for progress indication in these cases, we can expose a configuration variable for the backend (right now we have only datalad.tests.ui.backend) and/or use log_progress() more widely so that we show log messages instead of a progress bar if not attached to a tty. Closes datalad#3092.
Codecov Report
@@ Coverage Diff @@
## 0.11.x #3281 +/- ##
==========================================
+ Coverage 90.8% 90.82% +0.01%
==========================================
Files 252 252
Lines 33016 33016
==========================================
+ Hits 29980 29986 +6
+ Misses 3036 3030 -6
Continue to review full report at Codecov.
|
yarikoptic
added a commit
that referenced
this pull request
Apr 6, 2019
## 0.11.4 (Mar 18, 2019) -- get-ready Largely a bug fix release with a few enhancements ### Important - 0.11.x series will be the last one with support for direct mode of [git-annex][] which is used on crippled (no symlinks and no locking) filesystems. v7 repositories should be used instead. ### Fixes - Extraction of .gz files is broken without p7zip installed. We now abort with an informative error in this situation. ([#3176][]) - Committing failed in some cases because we didn't ensure that the path passed to `git read-tree --index-output=...` resided on the same filesystem as the repository. ([#3181][]) - Some pointless warnings during metadata aggregation have been eliminated. ([#3186][]) - With Python 3 the LORIS token authenticator did not properly decode a response ([#3205][]). - With Python 3 downloaders unnecessarily decoded the response when getting the status, leading to an encoding error. ([#3210][]) - In some cases, our internal command Runner did not adjust the environment's `PWD` to match the current working directory specified with the `cwd` parameter. ([#3215][]) - The specification of the pyliblzma dependency was broken. ([#3220][]) - [search] displayed an uninformative blank log message in some cases. ([#3222][]) - The logic for finding the location of the aggregate metadata DB anchored the search path incorrectly, leading to a spurious warning. ([#3241][]) - Some progress bars were still displayed when stdout and stderr were not attached to a tty. ([#3281][]) - Check for stdin/out/err to not be closed before checking for `.isatty`. ([#3268][]) ### Enhancements and new features - Creating a new repository now aborts if any of the files in the directory are tracked by a repository in a parent directory. ([#3211][]) - [run] learned to replace the `{tmpdir}` placeholder in commands with a temporary directory. ([#3223][]) - [duecredit][] support has been added for citing DataLad itself as well as datasets that an analysis uses. ([#3184][]) - The `eval_results` interface helper unintentionally modified one of its arguments. ([#3249][]) - A few DataLad constants have been added, changed, or renamed ([#3250][]): - `HANDLE_META_DIR` is now `DATALAD_DOTDIR`. The old name should be considered deprecated. - `METADATA_DIR` now refers to `DATALAD_DOTDIR/metadata` rather than `DATALAD_DOTDIR/meta` (which is still available as `OLDMETADATA_DIR`). - The new `DATASET_METADATA_FILE` refers to `METADATA_DIR/dataset.json`. - The new `DATASET_CONFIG_FILE` refers to `DATALAD_DOTDIR/config`. - `METADATA_FILENAME` has been renamed to `OLDMETADATA_FILENAME`. * tag '0.11.4': (82 commits) Updated CHANGELOG.md for having merged check for not being closed [DATALAD RUNCMD] CHANGELOG: Re-linkify 0.11.4 entries CHANGELOG.md: Update 0.11.4 entries CHANGELOG.md: Adjust the format of a link BF: split lines on spaces and commas befoe doing sed capture of #issue RF: adjust tools/link_issues_CHANGELOG to have MD links as [#issue][] BF+DOC: Fix all links to mark them valid markdown BF: Fix markup bug that prevents sphinx-build from succeeding DOC: extend coumentation of is_interactive BF: guard .istty with try/except ENH: ui: Drop progress bars if not attached to tty ENH: ui: Add another name for SilentConsoleLog BF: check for stdin/out/err to not be closed before checking for .isatty RF: HANDLE_META_DIR -> DATALAD_DOTDIR (but keeping an alias for compatibility) RF: define/use consts DATASET_CONFIG_FILE, DATASET_METADATA_FILE, METADATA_DIR RF: METADATA_DIR/FILE -> OLDMETADATA_DIR/FILE BF: do not cause a side-effect on kwargs in @eval_results BF: join with ds.path when trying to see if any other metadata file is available RF: Move duecredit into its own section so it is not a part of install_requires [DATALAD RUNCMD] CHANGELOG: Re-linkify 0.11.4 entries ...
yarikoptic
added a commit
to yarikoptic/datalad
that referenced
this pull request
Apr 6, 2019
## 0.11.4 (Mar 18, 2019) -- get-ready Largely a bug fix release with a few enhancements ### Important - 0.11.x series will be the last one with support for direct mode of [git-annex][] which is used on crippled (no symlinks and no locking) filesystems. v7 repositories should be used instead. ### Fixes - Extraction of .gz files is broken without p7zip installed. We now abort with an informative error in this situation. ([datalad#3176][]) - Committing failed in some cases because we didn't ensure that the path passed to `git read-tree --index-output=...` resided on the same filesystem as the repository. ([datalad#3181][]) - Some pointless warnings during metadata aggregation have been eliminated. ([datalad#3186][]) - With Python 3 the LORIS token authenticator did not properly decode a response ([datalad#3205][]). - With Python 3 downloaders unnecessarily decoded the response when getting the status, leading to an encoding error. ([datalad#3210][]) - In some cases, our internal command Runner did not adjust the environment's `PWD` to match the current working directory specified with the `cwd` parameter. ([datalad#3215][]) - The specification of the pyliblzma dependency was broken. ([datalad#3220][]) - [search] displayed an uninformative blank log message in some cases. ([datalad#3222][]) - The logic for finding the location of the aggregate metadata DB anchored the search path incorrectly, leading to a spurious warning. ([datalad#3241][]) - Some progress bars were still displayed when stdout and stderr were not attached to a tty. ([datalad#3281][]) - Check for stdin/out/err to not be closed before checking for `.isatty`. ([datalad#3268][]) ### Enhancements and new features - Creating a new repository now aborts if any of the files in the directory are tracked by a repository in a parent directory. ([datalad#3211][]) - [run] learned to replace the `{tmpdir}` placeholder in commands with a temporary directory. ([datalad#3223][]) - [duecredit][] support has been added for citing DataLad itself as well as datasets that an analysis uses. ([datalad#3184][]) - The `eval_results` interface helper unintentionally modified one of its arguments. ([datalad#3249][]) - A few DataLad constants have been added, changed, or renamed ([datalad#3250][]): - `HANDLE_META_DIR` is now `DATALAD_DOTDIR`. The old name should be considered deprecated. - `METADATA_DIR` now refers to `DATALAD_DOTDIR/metadata` rather than `DATALAD_DOTDIR/meta` (which is still available as `OLDMETADATA_DIR`). - The new `DATASET_METADATA_FILE` refers to `METADATA_DIR/dataset.json`. - The new `DATASET_CONFIG_FILE` refers to `DATALAD_DOTDIR/config`. - `METADATA_FILENAME` has been renamed to `OLDMETADATA_FILENAME`. * tag '0.11.4': Updated CHANGELOG.md for having merged check for not being closed [DATALAD RUNCMD] CHANGELOG: Re-linkify 0.11.4 entries CHANGELOG.md: Update 0.11.4 entries CHANGELOG.md: Adjust the format of a link BF: split lines on spaces and commas befoe doing sed capture of #issue RF: adjust tools/link_issues_CHANGELOG to have MD links as [#issue][] BF+DOC: Fix all links to mark them valid markdown BF: Fix markup bug that prevents sphinx-build from succeeding DOC: extend coumentation of is_interactive BF: guard .istty with try/except BF: check for stdin/out/err to not be closed before checking for .isatty [DATALAD RUNCMD] CHANGELOG: Re-linkify 0.11.4 entries CHANGELOG: Add entries for 0.11.4 ENH: version boost and initial changes to CHANGELOG
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As a concrete example:
Before this PR, that produces the following output:
After this PR:
If callers want things even quieter, they could now achieve that by configuring the log level and
report_status
.Closes #3092.