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.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| len8-0.7.3.post0.tar.gz | 11.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|