Skip to main content

Check Python files for repeat use of strings

Project description

License PyPI Build CodeQL pre-commit.ci status codecov.io readthedocs.org python3.8 Black isort docformatter pylint Security Status Known Vulnerabilities constcheck

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


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)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for constcheck-0.9.0.tar.gz
Algorithm Hash digest
SHA256 66698ce342f9471bc907cad61bf1f23013dfda8284eea1f8ac39880b21164274
MD5 93f871e97f916515d2d44b48566e87d7
BLAKE2b-256 e7dc8bb31e0b1909f567c23a358a5e6948be1940f45d963ba37f14f4bb684873

See more details on using hashes here.

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

Hashes for constcheck-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5360f33542e5218782331115efa7f819d7e6b5c9169a77d1a8466530396b481c
MD5 3075ecf08779e7cbd83748004f1ad570
BLAKE2b-256 bed55080231210f864faf4eab6f5ed672b6e296c6fde203cbb638ab4c533f7b4

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