Djls Ruff Ast

Use when editing djls-extraction or Rust code that consumes Ruff Python AST APIs, including parse_module, parameters, boxed expressions, f-strings, or exception handlers. Handles known Ruff AST shape gotchas in django-language-server.

joshuadavidthomas 8410792 942 B Updated

File contents

DJLS Ruff AST

Use this before editing djls-extraction or code that consumes Ruff Python AST nodes.

Known API shapes

  • Parse modules with ruff_python_parser::parse_module(source) and call .into_syntax() for ModModule AST.
  • Function defaults are per-parameter. There is no top-level defaults field.
    • Use ParameterWithDefault { parameter, default: Option<Box<Expr>> }.
  • StmtWhile.test, StmtIf.test, and similar fields are Box<Expr>.
    • Dereference with &* for pattern matching.
  • FStringValue uses .iter(), not .parts(), for FStringPart iteration.
  • ExceptHandler::ExceptHandler is irrefutable.
    • Use let, not if let.

joshuadavidthomas/django-language-server/tree/main/.agents/skills/djls-ruff-ast commit 8410792cd4

Frequently asked questions

npx skillmds@latest add joshuadavidthomas/djls-ruff-ast