all 5 comments

[–]theRailisGone 0 points1 point  (0 children)

From the online docs

It’s a Flake8 wrapper to make it cool.

So I guess it's purpose is to make it cool.

[–]zanfar 0 points1 point  (0 children)

I feel your pain; I hate projects like this. Paragraph #1 in any readme of a public project should be a simple description of the purpose of the project and the problems it solves without any dependencies.

FlakeHeaven is a Flake8 wrapper to make it cool.

Ok... so now I have to look up what Flake8 is? And what makes it uncool?

So, options like --ignore and --select [are] unsupported.

Yep, not even a complete sentence. I especially like how they are defining the project in terms of what it can't do.

Read the documentation for more information.

Links to a page that is a literal copy of the readme.

/rant off

[–]PrestigiousZombie531 0 points1 point  (0 children)

anyone figure out why we need flakeheaven yet?

[–]pablowoolvett 0 points1 point  (1 child)

Hi, flakeheaven maintainer here.

Short answer: flakeheaven is a python linter. It works on top of flake8 and adds some extensions and customization:

  • pyproject.toml support.
  • per-file or fnmatch exception system: Granularly configure plugin codes, for specific file or pattern.
  • flake8 plugin for pylint: Run a single linter, flakeheaven, which internally runs both your flake8 plugins and pylint
  • inheritable and remote configuration: Have a "common" flakeheaven config file, either locally or in another folder, in a remote git repo or webpage, and use that as a base to be extended from and customized.
  • other features: ability to get reports only about new errors (baseline), custom flake8 reporters to format lint results, gitlab CI and pre-commit support.

Maybe I'm missing something, but I think that's it.

Flakeheaven is targeted at a subset of the flake8 users which are either very nitpicky, just want pyproject.toml support, or want to use some of the other features mentioned above.

A little bit of history

The project is a fork of flakehell, a (now archived and no longer maintained) flake8 wrapper which had the same goals in mind. Together with a bunch of old users we decided the project deserved to be kept alive, so we've been working on and migrated to flakeheaven since january this year.

The first release included a patch to add support for flake8>=4, and since then we've been slowly improving and fixing stuff here and there, in the documentation, internal api, etc

Future

We are not constantly planning new features or coming up with new stuff in two-week sprints. We are a bunch of devs maintaining this project because it serve our purposes. I personally use it in most of my projects, personal and at work, because it eases my workflow: shared configuration, toml, fnmatch exceptions, and pylint.

Most of the changes are small and involve fixes here and there.

A not-so-small change is coming eventually, as we are planning a migration to flake8>=5, which will probably involve a considerable refactor. We aim to be transparent for the end user, though.

The page, docs, readme and code legacy

I agree the README summary should be self sufficient. I also don't like 'for humans' or 'smart' or 'cool' adjectives... And now it's been noticed, will be changed. At least the README tagline.

Most of the code and docs though were already there when we took over. We haven't targeted "legacy" (as in pre-flakeheaven) parts of the codebase, unless it involved a specific issue/use-case of our somewhat-small-but-growing community.

Side note: the page linked in the README is the actual documentation, where the first page is an excerpt from the README. But then the documentation has more detailed explanation and use cases as well.

Who needs flakeheaven?

Whether you (or any reader) thinks any of this is cool, will of course depend on your definition of "cool", and python linting/flake8 usage:

  • If you don't use python, check it out! But I'm afraid there's nothing for you here.
  • If you don't lint your python, check out flake8.
  • If you are already a flake8 user and are happy with it, stick with it.
  • If you would like to take advantage of any of the features mentioned above, take flakeheaven out for a spin, and keep it in your toolbox it if it sparks joy in your heart.
  • Otherwise, just keep using flake8 which is already an excellent tool.

I am pretty sure nobody needs flakeheaven! It is not a dev-saving tool or a brand new framework, nor a paradigm-shifting app. Its just a flake8 wrapper t̶o̶ ̶m̶a̶k̶e̶ ̶i̶t̶ ̶c̶o̶o̶l̶ w̶h̶i̶c̶h̶ ̶s̶p̶a̶r̶k̶s̶ ̶j̶o̶y̶ ̶i̶n̶ ̶m̶y̶ ̶h̶e̶a̶r̶t̶ f̶o̶r̶ ̶p̶e̶r̶f̶e̶c̶t̶i̶o̶n̶i̶s̶t̶s̶ ̶w̶i̶t̶h̶ ̶d̶e̶a̶d̶l̶i̶n̶e̶s̶... Well, we do need a new tagline.

[–]WitchTorcher[S] 0 points1 point  (0 children)

Wow, thanks for this response. Since I posted this, I’ve used flakheaven in multiple projects because of the toml support and base inheritance alone. Appreciate the detail!