A Python linter focused on naming conventions with 5 strictness levels
Project description
README
A simple, yet opinionated linter for Python that helps you choose more descriptive variable names.
Strictness levels
Yina lint operates on 5 strictness levels. Each level includes all the rules from the previous levels.
Level 1: Length and charset
- Variables must be at least 3 characters long.
- Variables can only contain characters: a-Z, A-Z, 0-9 and _.
- Variables cannot start with a number.
Level 2: Naming conventions
- Snake case will be enforced for regular variables and camel case for class names.
- All constants must be fully capitalized.
- Snake case variables that are not constants cannot have capital letters.
Level 3 (default): Word length, max length, repetition
- Max variable length: 32 characters.
- Applied for each "segment" in a variable name, like "one" in "one_two_three", or "One" in "OneTwoThree" (for class names):
- No more than 2 underscores in a row.
- No more than 2 of the same letter in a row.
- At least 3 characters long.
Level 4: Pronounceability
- Applied for each "segment" in a variable name, like "one" in "one_two_three", or "One" in "OneTwoThree" (for class names):
- At least one vowel
- No more than 4 consonants in a row
Level 5: Non vagueness
- No vague words like "item(s)", "thing(s)", "object(s)", "element(s)", "data", "value" or "result". "string" or "dataframe" are also disallowed. Applies only to the entire variable name, vague segments are allowed.
- No numbers.
Configuration
- If there is a
.yina.tomlfile in the working directory, it will be used. - If not, the default
yina-lint/config/yina.tomlfile will be applied.
You can use the command yina init to create a configuration file for your project with the default values you can modify.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yina-0.1.0.tar.gz.
File metadata
- Download URL: yina-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7afdc725ceeb17a0941d6a5a592f87c770c0b8649d096cc2d76f675ff9f1b83b
|
|
| MD5 |
8c4e1e434d37052308d3c4d6f95c260b
|
|
| BLAKE2b-256 |
67e2dc9346c84b73e47f3f5e79d85a170e1f7a34009e9c8e6804d69b7300a719
|
File details
Details for the file yina-0.1.0-py3-none-any.whl.
File metadata
- Download URL: yina-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8743ff13e9b0d56eec1b55a510e17ba17de0d27dbeb942dcb485cb8a408ed9a5
|
|
| MD5 |
a281299ed7388dd19f652d7226c53e24
|
|
| BLAKE2b-256 |
c3670068dd3c701e36db2ddd0004641e7b9bf042dcabc3fdcd80cdd275eb80c4
|