Skip to main content

Check Python files for repeat use of strings

Project description

License pypi CI CodeQL codecov.io readthedocs.org python3.8 black

Check Python files for repeat use of strings

Defaults can be configured in your pyproject.toml file

Installation

$ pip install constcheck

Usage

Commandline

usage: constcheck [-h] [-p PATH] [-c INT] [-l INT] [-s STR] [-i LIST] [-I LIST] [-f] [-n] [-v]

optional arguments:
-h, --help

show this help message and exit

-p PATH, --path PATH

path to check files for (default: .)

-c INT, --count INT

minimum number of repeat strings (default: 3)

-l INT, --len 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

-f, --filter

filter out empty results

-n, --no-color

disable color output

-v, --version

show version and exit

API

>>> 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.main(string=EXAMPLE)
3   | Hey
4   | Hello
5   | Hello, world
<BLANKLINE>

With the count argument

>>> constcheck.main(string=EXAMPLE, count=4)
4   | Hello
5   | Hello, world
<BLANKLINE>

With the len argument

>>> constcheck.main(string=EXAMPLE, len=6)
5   | Hello, world
<BLANKLINE>

With the ignore_strings argument which accepts a str iterable

>>> constcheck.main(string=EXAMPLE, ignore_strings=["Hello, world", "Hello"])
3   | Hey
<BLANKLINE>
>>> constcheck.main(string=EXAMPLE, ignore_strings="Hello, world")
3   | Hey
<BLANKLINE>

Config

All keyword arguments available to constcheck.main() can be configured in the pyproject.toml file

[tool.constcheck]
path = "."
count = 3
len = 3
ignore_strings = ["Hello", "Hello, world"]
ignore_files = ["tests/__init__.py"]
filter = false
no_color = false

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

constcheck-0.2.0.tar.gz (10.0 kB view hashes)

Uploaded Source

Built Distribution

constcheck-0.2.0-py3-none-any.whl (10.1 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