Feat: pyright helps dify remove dead var and func
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>orResolves #<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) andcd web && npx lint-staged(frontend) to appease the lint gods
@JohnJyong Hi, can you review part of the dataset?
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.
I think following the rule of ruff is a good choice. Close this PR. Thanks for your review.