| [build-system] |
| build-backend = "setuptools.build_meta" |
| requires = [ "setuptools>=61.2" ] |
| |
| [project] |
| name = "cpplint" |
| description = "Check C++ files configurably against Google's style guide" |
| readme = "README.rst" |
| keywords = [ "c++", "cpp", "google style", "lint" ] |
| license = { text = "BSD-3-Clause" } |
| maintainers = [ |
| { name = "Aaron Liu", email = "aaronliu0130@gmail.com" }, |
| { name = "Christian Clauss", email = "cclauss@me.com" }, |
| { name = "John Vandenberg", email = "jayvdb@gmail.com" }, |
| ] |
| authors = [ |
| { name = "Google Inc." }, |
| { name = "Thibault Kruse" }, |
| { name = "Andrew Davis", email = "theandrewdavis@gmail.com" }, |
| { name = "cpplint developers" }, |
| ] |
| requires-python = ">=3.9" |
| classifiers = [ |
| "Development Status :: 5 - Production/Stable", |
| "Environment :: Console", |
| "Intended Audience :: End Users/Desktop", |
| "License :: Freely Distributable", |
| "License :: OSI Approved :: BSD License", |
| "Natural Language :: English", |
| "Programming Language :: C++", |
| "Programming Language :: Python :: 3 :: Only", |
| "Programming Language :: Python :: 3.9", |
| "Programming Language :: Python :: 3.10", |
| "Programming Language :: Python :: 3.11", |
| "Programming Language :: Python :: 3.12", |
| "Programming Language :: Python :: 3.13", |
| "Topic :: Software Development :: Quality Assurance", |
| ] |
| dynamic = [ "version" ] |
| dependencies = [ ] |
| |
| optional-dependencies.dev = [ |
| "mypy", |
| "pylint>=3.3.4", |
| "pytest", |
| "pytest-cov", |
| "pytest-timeout", |
| "testfixtures", |
| "tox<5", |
| ] |
| urls.Homepage = "https://github.com/cpplint/cpplint" |
| scripts.cpplint = "cpplint:main" |
| |
| [tool.setuptools] |
| py-modules = [ "cpplint" ] |
| include-package-data = false |
| dynamic.version = { attr = "cpplint.__VERSION__" } |
| |
| [tool.ruff] |
| line-length = 100 |
| lint.select = [ |
| "A", # flake8-builtins |
| "AIR", # Airflow |
| "ASYNC", # flake8-async |
| "B", # flake8-bugbear |
| "BLE", # flake8-blind-except |
| "C4", # flake8-comprehensions |
| "C90", # McCabe cyclomatic complexity |
| "DJ", # flake8-django |
| "DTZ", # flake8-datetimez |
| "E", # pycodestyle |
| "EM", # flake8-errmsg |
| "EXE", # flake8-executable |
| "F", # Pyflakes |
| "FA", # flake8-future-annotations |
| "FAST", # FastAPI |
| "FBT", # flake8-boolean-trap |
| "FIX", # flake8-fixme |
| "FLY", # flynt |
| "FURB", # refurb |
| "G", # flake8-logging-format |
| "I", # isort |
| "ICN", # flake8-import-conventions |
| "INP", # flake8-no-pep420 |
| "INT", # flake8-gettext |
| "ISC", # flake8-implicit-str-concat |
| "LOG", # flake8-logging |
| "N", # pep8-naming |
| "NPY", # NumPy-specific rules |
| "PD", # pandas-vet |
| "PERF", # Perflint |
| "PGH", # pygrep-hooks |
| "PIE", # flake8-pie |
| "PL", # Pylint |
| "PT", # flake8-pytest-style |
| "PYI", # flake8-pyi |
| "Q", # flake8-quotes |
| "RET", # flake8-return |
| "RSE", # flake8-raise |
| "SIM", # flake8-simplify |
| "SLOT", # flake8-slots |
| "T10", # flake8-debugger |
| "TC", # flake8-type-checking |
| "TD", # flake8-todos |
| "TID", # flake8-tidy-imports |
| "TRY", # tryceratops |
| "UP", # pyupgrade |
| "W", # pycodestyle |
| "YTT", # flake8-2020 |
| # "ANN", # flake8-annotations |
| # "ARG", # flake8-unused-arguments |
| # "COM", # flake8-commas |
| # "CPY", # flake8-copyright |
| # "D", # pydocstyle |
| # "DOC", # pydoclint |
| # "ERA", # eradicate |
| # "PTH", # flake8-use-pathlib |
| # "RUF", # Ruff-specific rules |
| # "S", # flake8-bandit |
| # "SLF", # flake8-self |
| # "T20", # flake8-print |
| ] |
| lint.ignore = [ |
| "FBT003", # flake8-boolean-trap |
| "FIX002", # flake8-fixme |
| "ISC003", # flake8-implicit-str-concat |
| "PIE790", # Unnecessary `pass` statement |
| "TD003", # flake8-todos |
| ] |
| lint.per-file-ignores."cpplint.py" = [ |
| "ICN001", |
| "N802", |
| "PERF401", |
| "PLR5501", |
| "PLW0603", |
| "PLW2901", |
| "SIM102", |
| "SIM108", |
| ] |
| lint.per-file-ignores."cpplint_unittest.py" = [ "FLY002", "N802", "PLW0604", "SIM115", "UP031" ] |
| lint.mccabe.max-complexity = 29 |
| lint.pylint.allow-magic-value-types = [ "bytes", "int", "str" ] |
| lint.pylint.max-args = 10 # Default is 5 |
| lint.pylint.max-bool-expr = 8 # Default is 5 |
| lint.pylint.max-branches = 30 # Default is 12 |
| lint.pylint.max-locals = 16 # Default is 15 |
| lint.pylint.max-public-methods = 130 # Default is 20 |
| lint.pylint.max-returns = 9 # Default is 9 |
| lint.pylint.max-statements = 79 # Default is 50 |
| |
| [tool.pylint.basic] |
| argument-rgx = "[a-z_][a-z0-9_]{0,49}$" |
| class-rgx = "[A-Z_][a-zA-Z0-9]+$" |
| const-rgx = "[a-zA-Z_][A-Za-z0-9_]{2,49}$" |
| function-rgx = "[A-Z_][A-Za-z0-9]{2,49}$|main" |
| include-naming-hint = true |
| method-rgx = "[A-Z_][A-Za-z0-9]{2,49}$|__init__|__str__|__contains__" |
| variable-rgx = "[a-z_][a-z0-9_]{0,49}$" |
| |
| [tool.pylint.messages-control] |
| disable = [ |
| "anomalous-unicode-escape-in-string", |
| "bad-continuation", |
| "bad-option-value", |
| "consider-merging-isinstance", |
| "consider-using-dict-comprehension", |
| "consider-using-in", |
| "consider-using-min-builtin", |
| "fixme", |
| "global-statement", |
| "missing-docstring", |
| "multiple-statements", |
| "no-else-return", |
| "no-self-use", |
| "too-many-positional-arguments", |
| "unnecessary-pass", |
| "unused-argument", |
| "useless-object-inheritance", |
| ] |
| |
| [tool.pylint.reports] |
| output-format = "colorized" |
| reports = false |
| score = false |
| |
| [tool.pylint.format] |
| indent-after-paren = 4 |
| indent-string = ' ' |
| max-module-lines = 10000 |
| |
| [tool.pylint.design] |
| max-args = 20 |
| max-attributes = 10 |
| max-bool-expr = 10 |
| max-branches = 30 |
| max-line-length = 100 |
| max-locals = 25 |
| max-returns = 10 |
| max-statements = 79 |
| min-public-methods = 0 |
| |
| [tool.pytest.ini_options] |
| # fail if coverage is under 90% |
| addopts = "--color=yes --cov-fail-under=90 --cov=cpplint" |
| python_files = [ "*test.py" ] |
| required_plugins = [ "pytest-cov", "pytest-timeout" ] |
| testpaths = [ "." ] |
| timeout = 481 |