Check Python files for repeat use of strings
Project description
Check Python files for repeat use of strings
Escape commas with \\ (\ when enclosed in single quotes)
Defaults can be configured in your pyproject.toml file
Installation
$ pip install constcheck
Usage
Commandline
usage: constcheck [-h] [-v] [-n] [-c INT] [-l INT] [-s STR] [-i LIST] [-I LIST]
[--ignore-from [FILE=LIST [FILE=LIST ...]]]
[path [path ...]]
Check Python files for repeat use of strings. Escape commas with \\. Defaults can be configured in
your pyproject.toml file.
positional arguments:
path path(s) to check files for (default: .)
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-n, --no-ansi disable ansi output
-c INT, --count INT minimum number of repeat strings (default: 3)
-l INT, --length INT minimum length of repeat strings (default: 3)
-s STR, --string STR parse a string instead of a file
-i LIST, --ignore-strings LIST comma separated list of strings to exclude
-I LIST, --ignore-files LIST comma separated list of files to exclude
--ignore-from [FILE=LIST [FILE=LIST ...]] comma separated list of strings to exclude from file
API
>>> from constcheck import constcheck
>>> EXAMPLE = """
... STRING_1 = "Hey"
... STRING_2 = "Hey"
... STRING_3 = "Hey"
... STRING_4 = "Hello"
... STRING_5 = "Hello"
... STRING_6 = "Hello"
... STRING_7 = "Hello"
... STRING_8 = "Hello, world"
... STRING_9 = "Hello, world"
... STRING_10 = "Hello, world"
... STRING_11 = "Hello, world"
... STRING_12 = "Hello, world"
... """
>>> constcheck(string=EXAMPLE)
3 | Hey
4 | Hello
5 | Hello, world
<BLANKLINE>
1
With the count argument
>>> constcheck(string=EXAMPLE, count=4)
4 | Hello
5 | Hello, world
<BLANKLINE>
1
With the length argument
>>> constcheck(string=EXAMPLE, length=6)
5 | Hello, world
<BLANKLINE>
1
With the ignore_strings argument which accepts list of str objects
>>> constcheck(string=EXAMPLE, ignore_strings=["Hello, world", "Hello"])
3 | Hey
<BLANKLINE>
1
Config
All keyword arguments available to constcheck() can be configured in the pyproject.toml file
[tool.constcheck]
path = "."
count = 3
length = 3
ignore_strings = ["Hello", "Hello, world"]
ignore_files = ["tests/__init__.py"]
filter = false
no_color = false
[tool.constcheck.ignore_from]
"tests/__init__.py" = ["Hello, world"]
pre-commit
constcheck can be used as a pre-commit hook
It can be added to your .pre-commit-config.yaml as follows:
repos:
- repo: https://github.com/jshwi/constcheck
rev: v0.7.0
hooks:
- id: constcheck
args:
- "--count=3"
- "--length=3"
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
constcheck-0.9.0.tar.gz
(10.7 kB
view details)
Built Distribution
File details
Details for the file constcheck-0.9.0.tar.gz
.
File metadata
- Download URL: constcheck-0.9.0.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.8.13 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66698ce342f9471bc907cad61bf1f23013dfda8284eea1f8ac39880b21164274 |
|
MD5 | 93f871e97f916515d2d44b48566e87d7 |
|
BLAKE2b-256 | e7dc8bb31e0b1909f567c23a358a5e6948be1940f45d963ba37f14f4bb684873 |
File details
Details for the file constcheck-0.9.0-py3-none-any.whl
.
File metadata
- Download URL: constcheck-0.9.0-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.8.13 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5360f33542e5218782331115efa7f819d7e6b5c9169a77d1a8466530396b481c |
|
MD5 | 3075ecf08779e7cbd83748004f1ad570 |
|
BLAKE2b-256 | bed55080231210f864faf4eab6f5ed672b6e296c6fde203cbb638ab4c533f7b4 |