A Python linter focused on modernizing and improving code elegance, readability, and simplicity.
Refurb is a static analysis tool for Python that identifies opportunities to make code more elegant, readable, and modern. It is built on top of Mypy and specializes in suggesting improvements that go beyond basic linting or type checking, helping developers write cleaner and more idiomatic Python.
Python developers who want to modernize and refine existing codebases, particularly those working on projects where code elegance and readability are priorities.
Developers choose Refurb because it focuses on making good code even better by suggesting modern Python features and simplifications, complementing rather than replacing existing linters and type checkers like flake8 and Mypy.
A tool for refurbishing and modernizing Python codebases
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Actively suggests using newer Python features, such as replacing open().read() with Path.read_text(), based on checks like FURB101 in the README example.
Supports incremental adoption via per-file or per-folder ignoring in pyproject.toml, allowing teams to modernize codebases gradually without overwhelming changes.
Works with pre-commit hooks and outputs GitHub Annotations format, making it easy to embed in automated pipelines for continuous code improvement.
Allows loading community or custom plugins to extend checks, enabling project-specific refinements beyond the built-in rule set.
Relies on Mypy for AST parsing, which can be slow for large codebases; the README advises using --timing-stats to diagnose slowness, indicating inherent performance trade-offs.
Exclusively targets code elegance and readability, lacking checks for bugs, security, or style enforcement, necessitating additional tools like flake8 or Black for comprehensive analysis.
Requires managing enable/disable flags, Mypy overrides, and plugin dependencies, which can be cumbersome for users seeking a simple, out-of-the-box linter.