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

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] [-c INT] [-l INT] [-s STR] [-i LIST] [-I LIST]
                             [--ignore-from [FILE=LIST [FILE=LIST ...]]] [-f] [-n] [-v]
                             [path [path ...]]

positional arguments:
  path                                       path(s) to check files for (default: .)

optional arguments:
  -h, --help                                 show this help message and exit
  -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
  --ignore-from [FILE=LIST [FILE=LIST ...]]  comma separated list of strings to exclude from file
  -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>
1

With the count argument

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

With the len argument

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

With the ignore_strings argument which accepts list of str objects

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

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

[tool.constcheck.ignore_from]
"tests/__init__.py" = ["Hello, world"]

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.4.2.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

constcheck-0.4.2-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file constcheck-0.4.2.tar.gz.

File metadata

  • Download URL: constcheck-0.4.2.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.8.13 Darwin/21.6.0

File hashes

Hashes for constcheck-0.4.2.tar.gz
Algorithm Hash digest
SHA256 3d3bf292e0c8cbeaee222d3ddfa3d225fbd71b4337467c5b42dff7c319018fc1
MD5 d073f1496ad0d7f5ec94761dffb96882
BLAKE2b-256 f8af940869a1a5c2cccf8c3ee33f177677c15cd3cb7aba46c6eadccd932a2ebd

See more details on using hashes here.

File details

Details for the file constcheck-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: constcheck-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.8.13 Darwin/21.6.0

File hashes

Hashes for constcheck-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 30d1237b3b114f22a28e02eef8681209e55b768f78fa6bb3912d40be8a10aec0
MD5 3d02fab819eee9d3163b9a4a6c66362d
BLAKE2b-256 4be1b1cb76c49dc7d6e024fdf97e3e61a99f490761017e8366ed637dee821796

See more details on using hashes here.

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