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.3.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.3-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flake8_digit_separator-1.0.3.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.3.tar.gz
Algorithm Hash digest
SHA256 260cbaa967b2ec99140734db4ef4a7a2d309df7a106f280d8c66893473bb3adf
MD5 27603587b2212ffd935cfa6b9ffe11b3
BLAKE2b-256 2157f1d203994c463d1be8b017558a3c2220014906cb8f00a59e2ea0d6b81480

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flake8_digit_separator-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f9349172152994cab997dd36bbedf20c8d1fa9fda0122743b5f4ebe0d2f8f84b
MD5 b13191eac78df583833930cf277c8adc
BLAKE2b-256 a97476145f1f1b0480d69d81b2cd88c4f7812a2a5bd8f9cd93c0d6e0bbdcc96e

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