Skip to main content

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.toml file in the working directory, it will be used.
  • If not, the default yina-lint/config/yina.toml file 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


Download files

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

Source Distribution

yina-0.1.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

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

yina-0.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

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

Hashes for yina-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7afdc725ceeb17a0941d6a5a592f87c770c0b8649d096cc2d76f675ff9f1b83b
MD5 8c4e1e434d37052308d3c4d6f95c260b
BLAKE2b-256 67e2dc9346c84b73e47f3f5e79d85a170e1f7a34009e9c8e6804d69b7300a719

See more details on using hashes here.

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

Hashes for yina-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8743ff13e9b0d56eec1b55a510e17ba17de0d27dbeb942dcb485cb8a408ed9a5
MD5 a281299ed7388dd19f652d7226c53e24
BLAKE2b-256 c3670068dd3c701e36db2ddd0004641e7b9bf042dcabc3fdcd80cdd275eb80c4

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