Skip to main content

Correct placement of separators

Project description

flake8-digit-separator

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flake8_digit_separator-1.0.2.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flake8_digit_separator-1.0.2-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file flake8_digit_separator-1.0.2.tar.gz.

File metadata

  • Download URL: flake8_digit_separator-1.0.2.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Darwin/23.6.0

File hashes

Hashes for flake8_digit_separator-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c63340c940d10816aeeeda9c2c4da2abc5a14845694dbe4245d9523a4e9f9eeb
MD5 4114166cbfca30e88388182f937ac309
BLAKE2b-256 3d760e1f5c1a3c1c75be338e39dd27f11bc1337390aa1f472f54c06daae0daa0

See more details on using hashes here.

File details

Details for the file flake8_digit_separator-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for flake8_digit_separator-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ec9a0f5e89899832d1c3117d99113c965b29215235be163c39927e33eb116e13
MD5 e8409e2e9fc93655d128787a964a640e
BLAKE2b-256 17fe67e2a016fa22e171ce5242f0f30211812235788bfd2fa5261ede36eac1d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page