Skip to content

imtoopunkforyou/flake8-digit-separator

Repository files navigation

flake8-digit-separator

Poetry codecov tests pypi package version status pypi downloads supported python versions wemake-python-styleguide mypy ruff license

FDS logo

A set of rules on top of the capabilities provided by PEP515.

correct_int = 10_000
correct_float = 10_000.1_234
correct_binary = 0b_1101_1001
correct_octal = 0o_134_155
correct_hex = 0x_CAFE_F00D

Installation

pip install flake8-digit-separator

Usage

flake8 ./ --select FDS

Rules

PEP515 allows separators, but does not impose any restrictions on their position in a number (except that a number should not start/end with a separator and there should not be two separators in a row). To introduce more rigor and beauty into the code, we have written a few simple rules that we suggest following.

Rule Number Description Correct Wrong
FDS100 integer Group by 3s from right 10_000 10_0
FDS200 float Group by 3s from right 10_000.1_234 1_0_0.123_4
FDS300 binary Group by 4s from right after prefix 0b_ 0b_1101_1001 0b110_11
FDS400 octal Group by 3s from right after prefix 0o_ 0o_12_134_155 0o1_23_45
FDS500 hex Group by 4s from right after prefix 0x_ 0x_CAFE_F00D 0xCAFEF0_0D

Configuration Options

--fds-exclude

Exclude specific integer numbers from digit separator validation. This is useful for well-known numbers like ports or other constants where the standard formatting might not be appropriate. For example, when we write port = 8080 or storage = 1024, there is no point in distorting it through 8_080 or through 1_024.

Use the option:

flake8 ./ --select FDS --fds-exclude=8080,1024,6379

Or configure in setup.cfg:

[flake8]
fds-exclude = 8080,1024,6379

License

FDS is released under the MIT License. See the bundled LICENSE file for details.

The logo was created using Font Meme.

About

Correct placement of separators

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •