A utility for keeping line lengths within PEP 8 standards.
Project description
len8
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f47975450c1141b506b82b84d9b10b9322a30c482d7ba6f376d5af4647c11d49 |
|
MD5 | 94d06780d04f94d3f5d738da4c4998a9 |
|
BLAKE2b-256 | 9c94c3eb57ce772d934571c3ccff006861dd95d7a7ca8fdd0bb9da30e528033f |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3401bfc61fb3ae35386101faece54f761df96b0e797fe92ccf3c50ebb9d6b4af |
|
MD5 | 05ee0a6283f23e938b2cb965e3c4364b |
|
BLAKE2b-256 | 1e0ff7cb3f3596227fdb73e4d5054a5edb61f01dba27204949ff31ef4ecdbcbd |