Skip to main content

A utility for keeping line lengths within PEP 8 standards.

Project description

len8

PyPi version PyPI - Status GitHub last commit License

CI Maintainability Test Coverage Downloads

A utility for keeping line lengths within PEP 8 standards.

Features

  • An easy-to-use CLI (command-line interface)
  • Check a single file, directory, or multiple files and directories
  • Exclude files and directories from being checked
  • Set different maximum lengths for both code and documentation
  • Minimal dependencies

Installation

You need Python 3.6.0 or greater to run len8.

To install the latest stable version of len8, use the following command:

pip install len8

You can also install the latest development version using the following command:

pip install git+https://github.com/parafoxia/len8

You may need to prefix these commands with a call to the Python interpreter depending on your OS and Python configuration.

Quickstart

To get started checking your Python projects with len8:

Using the terminal

# Check all files in the CWD
len8 .

# Check all files in `tests` directory and `stats.py` file in CWD
len8 tests stats.py

# Check all files in two particular directories
len8 my_package tests

# Excluding file 'config.py' and directory 'secrets'
# By default '.venv', 'venv', and '.nox' are excluded
len8 -x config.py,secrets .

# Check 'project' dir and increase maximum allowed line lengths
# Note that line lengths for comments and docs stay at 72
len8 -l project         # Increase to 88 (black's default)
len8 -ll /home/project  # Increase to 99 (max allowed by PEP 8)

# Check using custom line lengths
len8 -c 150 .     # Increase code to 150
len8 -d 100 .     # Increase docs to 100
len8 -ll -d 99 .  # Increase code and docs to 99

# Check only one file 'important.py'
len8 important.py
len8 ./dir/important.py

# Check using multiple flags at once
len8 -lx ignoreme.py ./project_dir

In a Python script

from len8 import Checker

# Instantiate a new Checker, with strict mode set to True
checker = Checker(strict=True)

# Set attributes after instantiation
checker.extend = 2
checker.exclude = ["excluded_dir"]
checker.strict = False

# Set line lengths after instantiation
checker.set_lengths(code=100, docs=80)

# Checks everything in the cwd
bad_lines = checker.check(".")

# Because strict mode is set to False and no error is raised, we
# print the returned value from the check method
print(bad_lines)

Configuration

len8 supports toml configuration files, by default pyproject.toml in your project root will be used. You may specify a different configuration file via the --config cli flag.

Available configuration options:

  • include: An array of files/directories len8 should check.
  • exclude: An array of files/directories to exclude from checking.
  • code-length: The maximum line length for code.
  • docs-length: The maximum line length for comments and documentation.
  • strict: Whether or not len8 should raise an exception if lines are too long.
[tool.len8]
include = ["myapp"]
exclude = ["secrets", "testing"]
code-length = 88
docs-length = 69
strict = true

It's easy to take advantage of configuration files from a Python script as well.

from len8 import Checker, Config

# Valid
checker = Checker.from_config("./myconfig.toml")

# Also valid
cfg = Config("./myconfig.toml")
checker = Checker.from_config(cfg)

Contributing

len8 is open to contributions. To find out where to get started, have a look at the contributing guide.

License

The len8 module for Python is licensed under the BSD 3-Clause License.

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

len8-0.7.3.post0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

len8-0.7.3.post0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file len8-0.7.3.post0.tar.gz.

File metadata

  • Download URL: len8-0.7.3.post0.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for len8-0.7.3.post0.tar.gz
Algorithm Hash digest
SHA256 f47975450c1141b506b82b84d9b10b9322a30c482d7ba6f376d5af4647c11d49
MD5 94d06780d04f94d3f5d738da4c4998a9
BLAKE2b-256 9c94c3eb57ce772d934571c3ccff006861dd95d7a7ca8fdd0bb9da30e528033f

See more details on using hashes here.

File details

Details for the file len8-0.7.3.post0-py3-none-any.whl.

File metadata

  • Download URL: len8-0.7.3.post0-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for len8-0.7.3.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 3401bfc61fb3ae35386101faece54f761df96b0e797fe92ccf3c50ebb9d6b4af
MD5 05ee0a6283f23e938b2cb965e3c4364b
BLAKE2b-256 1e0ff7cb3f3596227fdb73e4d5054a5edb61f01dba27204949ff31ef4ecdbcbd

See more details on using hashes here.

Supported by

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