GithubHelp home page GithubHelp logo

domsekotill / flakeheaven Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flakeheaven/flakeheaven

0.0 0.0 0.0 1.96 MB

flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration.

Home Page: https://flakeheaven.readthedocs.io

License: MIT License

Shell 0.77% Python 98.65% Perl 0.58%

flakeheaven's Introduction

FlakeHeaven

License: MIT python versions

version conda Downloads

CI Docs

flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration.

This project is a fork of FlakeHell. FlakeHell and other forks of it such as flakehell/flakehell are no longer maintained and do not work with Flake8 4.0.x.

FlakeHeaven works with Flake8 4.0.1 or greater. This fork will be maintained by the community that developed the existing forks.

output example

Compatibility

FlakeHeaven supports all flake8 plugins, formatters, and configs. However, FlakeHeaven has its own beautiful way to configure enabled plugins and codes. So, options like --ignore and --select are unsupported. You can have flake8 and FlakeHeaven in one project if you want but enabled plugins should be explicitly specified.

Installation

python3 -m pip install --user flakeheaven

Usage

First of all, let's create pyproject.toml config:

[tool.flakeheaven]
# optionally inherit from remote config (or local if you want)
base = "https://raw.githubusercontent.com/flakeheaven/flakeheaven/main/pyproject.toml"
# specify any flake8 options. For example, exclude "example.py":
exclude = ["example.py"]
# make output nice
format = "grouped"
# 80 chars aren't enough in 21 century
max_line_length = 90
# show line of source code in output
show_source = true

# list of plugins and rules for them
[tool.flakeheaven.plugins]
# include everything in pyflakes except F401
pyflakes = ["+*", "-F401"]
# enable only codes from S100 to S199
flake8-bandit = ["-*", "+S1??"]
# enable everything that starts from `flake8-`
"flake8-*" = ["+*"]
# explicitly disable plugin
flake8-docstrings = ["-*"]

Show plugins that aren't installed yet:

flakeheaven missed

Show installed plugins, used plugins, specified rules, codes prefixes:

flakeheaven plugins

plugins command output

Show codes and messages for a specific plugin:

flakeheaven codes pyflakes

codes command output

Run flake8 against the code:

flakeheaven lint

This command accepts all the same arguments as Flake8.

Read the documentation for more information.

Contributing

  1. Add tests when possible (eg for features / fixes / refactor, etc. )
  2. Add your contribution to the code / docs
  3. Ensure your code passes all (both original and your own) tests.
  4. Commit using proper header
  5. Create a PR

Contributions are welcome! A few ideas where you can contribute:

  • Improve documentation.
  • Add more tests.
  • Improve performance.
  • Found a bug? Fix it!
  • Made an article about FlakeHeaven? Great! Let's add it into the README.md.
  • Don't have time to code? No worries! Just tell your friends and subscribers about the project. More users -> more contributors -> more cool features.

A convenient way to run tests is using Poetry:

curl -sSL https://install.python-poetry.org | python3 -
poetry install
poetry run pytest tests

Thank you ❤️

The FlakeHeaven mascot (Flaky) is created by @illustrator.way and licensed under the CC BY-SA 4.0 license.

flakeheaven's People

Contributors

actions-user avatar adrianbartnik avatar agatti avatar alexifm avatar and-semakin avatar bobronium avatar dependabot[bot] avatar destag avatar dm0 avatar dreamsorcerer avatar erwinmintiens avatar fsuman avatar jarojasm95 avatar k3rni avatar kaostheory1 avatar mcarans avatar mjpieters avatar mondeja avatar orsinium avatar patnr avatar pawamoy avatar pwoolvett avatar skarzi avatar snmishra avatar sscherfke avatar strmwalker avatar thejcannon avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.