Skip to main content

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.

Metadata

Release files for len8 0.7.3.post0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for len8 0.7.3.post0
File Size Uploaded
len8-0.7.3.post0.tar.gz 11.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for len8 0.7.3.post0
File Interpreter ABI Platform
len8-0.7.3.post0-py3-none-any.whl Python 3 none any Details

Total release size: 25.6 kB

Release files / len8-0.7.3.post0.tar.gz

Download URL len8-0.7.3.post0.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f47975450c1141b506b82b84d9b10b9322a30c482d7ba6f376d5af4647c11d49
BLAKE2b-256 checksum
How to use checksums
9c94c3eb57ce772d934571c3ccff006861dd95d7a7ca8fdd0bb9da30e528033f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

Release files / len8-0.7.3.post0-py3-none-any.whl

Download URL len8-0.7.3.post0-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3401bfc61fb3ae35386101faece54f761df96b0e797fe92ccf3c50ebb9d6b4af
BLAKE2b-256 checksum
How to use checksums
1e0ff7cb3f3596227fdb73e4d5054a5edb61f01dba27204949ff31ef4ecdbcbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

Release history Release notifications | RSS feed

This release

0.7.3.post0 This release

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page