Lineleak is a flake8 plugin that counts the lines containing live code in a script, and 'yells' if a set limit is exceeded. It is meant to help enforce short scripts and modular python programming.
Project description
Introduction
If your script has more than a set number of lines, your code lines are leaking :) …And if your code lines are leaking, it’s difficult to navigate and understand :).
Lineleak is a flake8 plugin that counts the lines containing live code in a script, and ‘yells’ if a set limit is exceeded. It is meant to help enforce short scripts and modular python programming.
For usefulness, lineleak only counts lines which contains live code. Thus the following lines are excluded from a count:
Blank lines
Comment lines
Lines of a docstring
Usage
To benefit from lineleak, Use flake8 the usual way with plugins:
$ flake8 [options] file ...
The default line count limit is set at 100, and imposed on physical lines. These defaults, however, can be overridden with optional arguments as shown below and illustrated in the illustration section:
optional arguments: --lineleak-logical Applies line count limit to logical lines. --max-line-count=MAX_LINE_COUNT Changes the maximum limit for live code line count. --live-code-count Displays the number of physical and logical lines containing live code. --lineleak-ignore Specifies a comma separated list of paths of files which leakline must ignore.
Codes
LLW404 Reports that logical line count has exceeded limit
LLW405 Reports that physical line count has exceeded specified limit
LLI200 Informs about the number of logical and physical lines containing live code.
Illustration
Overriding default line count limit (limit -> 100):
$ flake8 --max-line-count=50 testfile.py testfile.py:82:1: LLW405 Maximum number of physical live code lines (50) exceeded.
Imposing limit on logical, instead of physical, lines:
$ flake8 --max-line-count=50 --lineleak-logical testfile.py testfile.py:103:1: LLW404 Maximum number of logical live code lines (50) exceeded.
Display just the number of lines containing live code:
$ flake8 --live-code-count testfile.py testfile.py:118:1: LLI200 [INFO] Live code count: 56 logical and 79 physical lines
Ignore file(s) by specifying a comma separated list of their file paths.
Results using lineleak-ignore:
$ flake8 --max-line-count=5 --filename=*.py --lineleak-ignore=.\lineleak.py,.\subber.py .\lineleak0.9.9.py:19:1: LLW405 Maximum number of physical live code lines (5) exceeded. .\setup.py:10:1: LLW405 Maximum number of physical live code lines (5) exceeded.
Results without lineleak-ignore:
$ flake8 --max-line-count=5 --filename=*.py .\lineleak.py:19:1: LLW405 Maximum number of physical live code lines (5) exceeded. .\lineleak0.9.9.py:19:1: LLW405 Maximum number of physical live code lines (5) exceeded. .\setup.py:10:1: LLW405 Maximum number of physical live code lines (5) exceeded. .\subber.py:10:1: LLW405 Maximum number of physical live code lines (5) exceeded.
Ignore limit enforcement.
In adherence with flake8 design principles, lineleak can be silenced by adding the appropriate error codes of lineleak to the ignore list:
$ flake8 --ignore=LL testfile.py $
Installation
Install using pip:
pip install flake8-leakline
Dependencies & Compatibility
Requires flake8 >= 3.3
Requires python >= 3.4
Environment
Shell
Software Cycle Stage
Development - Alpha
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
Built Distributions
File details
Details for the file flake8-lineleak-1.0.2.tar.gz
.
File metadata
- Download URL: flake8-lineleak-1.0.2.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c965ce4682f1acb58e9cfb1925bb015eb5371dcb757c2adbd81036c936c1f2e2 |
|
MD5 | 2cfb6a70dcf8827c7e01f878c38d00dc |
|
BLAKE2b-256 | 84c351b4e2b777fe700074f2b091dcac82275fdc394630b0933c4fd9d36851ac |
File details
Details for the file flake8_lineleak-1.0.2-py3.7.egg
.
File metadata
- Download URL: flake8_lineleak-1.0.2-py3.7.egg
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bd89769939e97e932d4dd1b83fd1eecece6ceaf1db6ab4fb2c509802c86384b |
|
MD5 | 6a4af739aa5ee6ebd933b6b996e564ba |
|
BLAKE2b-256 | 9f2b35710c7fd9aee9f36e4dad078bd08830cbf02fa530ccca765faa0fa006b6 |
File details
Details for the file flake8_lineleak-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: flake8_lineleak-1.0.2-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 049697250e6819bec0165c20402f32da1ca09d3233763fd467b1e5fd11fcf57c |
|
MD5 | 159875fdb953dc3ab56bdb3ea1f0b8fa |
|
BLAKE2b-256 | 199ba72b7110ee5a03a15800a0a9f005e9f1ce73f4ef881a0e3805734b3453b3 |