dify icon indicating copy to clipboard operation
dify copied to clipboard

Feat: pyright helps dify remove dead var and func

Open hyongtao-code opened this issue 10 months ago • 1 comments

Summary

I propose to use pyright to detect unused functions and code automatically. This is the config file pyrightconfig.json.

{
  "reportUnusedVariable": "error",
  "reportUnusedFunction": "error",
  "reportUnusedClass": "error",
  "reportMissingImports": "none",
  "reportUndefinedVariable": "none",
  "typeCheckingMode": "off"
}

[!Tip] Close issue syntax: Fixes #<issue number> or Resolves #<issue number>, see documentation for more details.

Screenshots

Before After
... ...

Checklist

[!IMPORTANT]
Please review the checklist below before submitting your pull request.

  • [ ] This change requires a documentation update, included: Dify Document
  • [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • [x] I've updated the documentation accordingly.
  • [x] I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods

hyongtao-code avatar Mar 25 '25 08:03 hyongtao-code

@JohnJyong Hi, can you review part of the dataset?

laipz8200 avatar Apr 07 '25 03:04 laipz8200

I have review the code and believe that most of the functionality can be achieved with Ruff, which we are already using. Perhaps introducing Pyright is unnecessary?

For example, F841 can check for unused variables. Currently, we are only ignoring this rule in the .ruff.toml file. You can accomplish the same by re-enabling it.

Additionally, for such lint rules, we prefer to apply one rule at a time.

laipz8200 avatar Apr 11 '25 06:04 laipz8200

I think following the rule of ruff is a good choice. Close this PR. Thanks for your review.

hyongtao-code avatar Apr 11 '25 07:04 hyongtao-code