Skip to content

Conversation

mfontanaar
Copy link
Contributor

@mfontanaar mfontanaar commented Mar 15, 2025

Summary

Stop flagging each invocation of django.utils.safestring.mark_safe (also available at, django.utils.html.mark_safe) as an error.

Instead, allow string literals as valid uses for mark_safe.

Also, update the documentation, pointing at django.utils.html.format_html for dynamic content generation use cases.

Closes #16702

Test Plan

I verified several possible uses, but string literals, are still flagged.

Stop flagging each invocation of `django.utils.safestring.mark_safe`
(also available at, `django.utils.html.mark_safe`) as an error.

Instead, allow literal strings as valid uses for `mark_safe`.

Also, update the documentation, pointing at
`django.utils.html.format_html` for dynamic content generation use
cases.

I verified several possible uses, but string literals, are still
flagged.
@ntBre ntBre added the rule Implementing or modifying a lint rule label Mar 15, 2025
@mfontanaar mfontanaar changed the title [flake8-bandit] Allow raw strings in suspicious-mark-safe-usage (S308) #16702 [flake8-bandit] Allow raw strings in suspicious-mark-safe-usage (S308) #16702 Mar 16, 2025
Copy link
Member

@MichaReiser MichaReiser left a comment

Choose a reason for hiding this comment

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

Thanks and I like the added reference to format_html

@MichaReiser MichaReiser added the bug Something isn't working label Mar 17, 2025
@MichaReiser MichaReiser reopened this Mar 17, 2025
Copy link
Contributor

github-actions bot commented Mar 17, 2025

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.

@MichaReiser MichaReiser merged commit 4da6936 into astral-sh:main Mar 17, 2025
21 checks passed
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
bug Something isn't working rule Implementing or modifying a lint rule
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[S308] mark_safe for HTML constants
3 participants