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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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