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.

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

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

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.

Release history Release notifications | RSS feed

This release

0.7.3.post0 This release

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0.post1

2 files

0.2.0

2 files

0.1.0

2 files

0.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page