[Core] Remove color when stdout is not a tty #12234
Closed
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.
Fix #2924: JSONC is not parsed successfully by json.loads in Python2
On Linux, when the output format is set to
jsonc
oryamlc
whether by changing the~/.azure/config
file or by using--output
, there will be ANSI control sequences for coloring like^[[94m
instdout
. Ifstdout
is redirected, downstream commands likejq
will fail:This PR detects whether
stdout
is a tty. If not, usejson
oryaml
instead, thus allowing the output to be piped to downstream commands:ℹ This issue doesn't happen on Windows because ANSI control sequences are removed by colorama.