Flake8
ruff
Our great sponsors
Flake8 | ruff | |
---|---|---|
32 | 94 | |
3,231 | 25,475 | |
2.1% | 11.6% | |
7.5 | 10.0 | |
3 days ago | about 20 hours ago | |
Python | Rust | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Flake8
-
Enhance Your Project Quality with These Top Python Libraries
Flake8. This library is a wrapper around pycodestyle (PEP8), pyflakes, and Ned Batchelder’s McCabe script. It is a great toolkit for checking your code base against coding style (PEP8), programming errors (like SyntaxError, NameError, etc) and to check cyclomatic complexity.
- Django Code Formatting and Linting Made Easy: A Step-by-Step Pre-commit Hook Tutorial
-
Enhancing Python Code Quality: A Comprehensive Guide to Linting with Ruff
Flake8 combines the functionalities of the PyFlakes, pycodestyle, and McCabe libraries. It provides a streamlined approach to code linting by detecting coding errors, enforcing style conventions, and measuring code complexity.
-
Which is your favourite or go-to YouTube channel for being up-to-date on Python?
He made yesqa and pyupgrade (among others), and also works on flake8. His main job is for https://sentry.io/.
-
The Power of Pre-Commit for Python Developers: Tips and Best Practices
repos: - repo: https://github.com/psf/black rev: 21.7b0 hooks: - id: black language_version: python3.8 - repo: https://github.com/PyCQA/flake8 rev: 3.9.2 hooks: - id: flake8
-
Is it considered rude to completely change the formatting of someone else's code when making a PR?
https://github.com/psf/black it’s a PEP8 compliant formatter for Python codebases. If you don’t like auto formatting files you can use https://github.com/PyCQA/flake8 it just lists out all of the style issues so you can fix them manually.
-
Ruff: one Python linter to rule them all
I have no stake in that, but my observation is that the actual discussion appears to have both supporters and detractors rather than overwhelming support. Either way, it has nothing to do with whether or not it is realistic to say that Ruff is the "one Python linter to rule them all".
- Improve your Django Code with pre-commit
- Even the Pylint codebase uses Ruff
ruff
-
Enhance Your Project Quality with These Top Python Libraries
Ruff is a Python linter that helps to identify and remove code smells. Over 700 built-in rules: Ruff includes native re-implementations of popular Flake8 plugins, like flake8-bugbear. And also built-in caching to avoid re-analyzing unchanged files.
-
Ask HN: What interesting project ideas you've got but have no time to work on?
Because the Python's "ast" modules is too slow, and lacks proper "format" feature (it has unparse but it removes comments, and forgets the current style completely). I use "ruff" a lot (https://github.com/astral-sh/ruff) which is in Rust. But I want to be able to implement fast custom linters in Go (linters that ruff / fixit lack, and Python linters lack or are too slow).
-
Rye: A Vision Continued
I think it’s interesting that rye uses ruff (https://github.com/astral-sh/ruff) for linting and formatting. That’s the right call, and it’s also correct to bundle that in for an integrated dev experience.
I had to guess, that’s the path that the Astral team would take as well - expand ruff’s capabilities so it can do everything a Python developer needs. So the vision that Armin is describing here might be achieved by ruff eventually. They’d have an advantage that they’re not a single person maintenance team, but the disadvantage of needing to show a return to their investors.
-
Smooth Packaging: Flowing from Source to PyPi with GitLab Pipelines
Adding more weight to ease of setup and configurability, the choice came down on flake8. It is easy to integrate, since its also available through pip and let’s you configure which standards you want to omit by simply stating them as a list via the --ignore switch. Moving to ruff appears quite smooth, so future updates may do so.
- Show HN: Marimo – an open-source reactive notebook for Python
-
AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
I confess I stole the pip recipe from Charlie :D
https://github.com/astral-sh/ruff/blob/main/.github/workflow...
-
Embracing Modern Python for Web Development
Ruff is an emerging tool in the Python ecosystem that describes itself as "an extremely fast Python linter and code formatter, written in Rust".
-
Writing and Linting Python at Scale
I'm happy with Ruff[0], it's very fast.
-
Using GitHub Actions with my Project
Thankfully, my project has no dependencies so I don't have to make pip install anything other than Ruff to lint my code, which you can see above. I only make my program run the testers with two versions of Python, 3.11 and 3.12. I chose these versions in particular because there is a library my program uses called tomllib. Tomllib is built into Python 3.11 and above, which means that my program does not support 3.10 and below. So I've only made it test with the two most recent versions of Python. I also wanted to attempt running my program on different OSs, like Ubuntu and MacOS, but I believe way those two OSs handle file paths differently from Windows. So when I was trying to handle file paths, it was expecting it in the Windows way and not the Linux way. So for now, it looks like my program does not work with Linux and MacOS. That concludes what I did for my workflow, next I'll talk about writing a test for a peer's program.
-
A Tale of Two Kitchens - Hypermodernizing Your Python Code Base
A more modern alternative for flake8 is Ruff: Ruff can be used to replace Flake8 (plus a variety of plugins), isort, pydocstyle, yesqa, eradicate, pyupgrade, and autoflake, all while executing tens or hundreds of times faster than any individual tool. Ruff supports over 700 lint rules and goes beyond the responsibilities of a traditional linter, instead functioning as an advanced code transformation tool capable of upgrading type annotations, rewriting class definitions, sorting imports, and more.
What are some alternatives?
Pylint - It's not just a linter that annoys you!
black - The uncompromising Python code formatter [Moved to: https://github.com/psf/black]
autopep8 - A tool that automatically formats Python code to conform to the PEP 8 style guide.
pylama - Code audit tool for python.
autoflake - Removes unused imports and unused variables as reported by pyflakes
black - The uncompromising Python code formatter
prospector - Inspects Python source files and provides information about type and location of classes, methods etc
mypy - Optional static typing for Python
pyright - Static Type Checker for Python
bandit - Bandit is a tool designed to find common security issues in Python code.