Skip to content

[red-knot] Add --color CLI option #16758

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

Merged
merged 3 commits into from
Mar 17, 2025
Merged

[red-knot] Add --color CLI option #16758

merged 3 commits into from
Mar 17, 2025

Conversation

MichaReiser
Copy link
Member

@MichaReiser MichaReiser commented Mar 14, 2025

Summary

This PR adds a new --color CLI option that controls whether the output should be colorized or not.

This is implements part of astral-sh/ty#177 except that it doesn't implement the persistent configuration support as initially proposed in the CLI document. I realized, that having this as a persistent configuration is somewhat awkward because we may end up writing tracing logs before we loaded and resolved the settings. Arguably, it's probably fine to color the output up to that point, but it feels like a somewhat broken experience. That's why I decided not to add the persistent configuration option for now.

Test Plan

I tested this change manually by running Red Knot with --color=always, --color=never, and --color=auto (or no argument) and verified that:

  • The diagnostics are or aren't colored
  • The tracing output is or isn't colored.

@AlexWaygood AlexWaygood added the ty Multi-file analysis & type inference label Mar 14, 2025
Copy link
Contributor

github-actions bot commented Mar 14, 2025

mypy_primer results

No ecosystem changes detected ✅

Copy link
Contributor

@sharkdp sharkdp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@sharkdp
Copy link
Contributor

sharkdp commented Mar 14, 2025

One more question: Would it make sense to move this option to the top level instead of knot check? It seems like other sub-commands might also make use of that option in the future. uv also has it as a top-level option.

@MichaReiser
Copy link
Member Author

One more question: Would it make sense to move this option to the top level instead of knot check? It seems like other sub-commands might also make use of that option in the future. uv also has it as a top-level option.

Absolutely. There are options that we should move and I'll move them all together

@MichaReiser MichaReiser enabled auto-merge (squash) March 17, 2025 10:03
@MichaReiser MichaReiser merged commit b04103f into main Mar 17, 2025
21 checks passed
@MichaReiser MichaReiser deleted the micha/color-cli-option2 branch March 17, 2025 10:06
Copy link
Contributor

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

Formatter (stable)

✅ ecosystem check detected no format changes.

Formatter (preview)

✅ ecosystem check detected no format changes.

dcreager added a commit that referenced this pull request Mar 17, 2025
* main: (25 commits)
  [syntax-errors] Parenthesized context managers before Python 3.9 (#16523)
  [ci]: Disable wheel testing on `ppc64le` (#16793)
  [red-knot] Stabilize `negation_reverses_subtype_order` property test (#16801)
  [red-knot] Emit error if int/float/complex/bytes/boolean literals appear in type expressions outside `typing.Literal[]` (#16765)
  [ci] Use `git diff` instead of `changed-files` GH action (#16796)
  [syntax-errors] Improve error message and range for pre-PEP-614 decorator syntax errors (#16581)
  [`flake8-bandit`] Allow raw strings in `suspicious-mark-safe-usage` (`S308`) #16702 (#16770)
  [`refurb`] Avoid panicking `unwrap` in `verbose-decimal-constructor` (`FURB157`) (#16777)
  [red-knot] Add `--color` CLI option (#16758)
  [internal]: Upgrade salsa (#16794)
  Pin dependencies (#16791)
  [internal]: Update indirect dependencies (#16792)
  [ci]: Fixup codspeed upgrade (#16790)
  Update Rust crate compact_str to 0.9.0 (#16785)
  Update Rust crate clap to v4.5.32 (#16778)
  Update Rust crate codspeed-criterion-compat to v2.9.1 (#16784)
  Update Rust crate quote to v1.0.40 (#16782)
  Update Rust crate ordermap to v0.5.6 (#16781)
  Update cloudflare/wrangler-action action to v3.14.1 (#16783)
  Update Rust crate env_logger to v0.11.7 (#16779)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ty Multi-file analysis & type inference
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants