mirror of
https://github.com/theupdateframework/python-tuf
synced 2026-05-24 10:08:28 +00:00
Merge pull request #1699 from MVrachev/move-configs
Move linters configurations in pyproject.toml
This commit is contained in:
commit
d991362ff0
6 changed files with 93 additions and 74 deletions
|
|
@ -113,9 +113,8 @@ CI/CD will check that new TUF code is formatted with `black
|
|||
Auto-formatting can be done on the command line:
|
||||
::
|
||||
|
||||
$ # TODO: configure black and isort args in pyproject.toml (see #1161)
|
||||
$ black --line-length 80 tuf/api
|
||||
$ isort --line-length 80 --profile black -p tuf tuf/api
|
||||
$ black <filename>
|
||||
$ isort <filename>
|
||||
|
||||
or via source code editor plugin
|
||||
[`black <https://black.readthedocs.io/en/stable/editor_integration.html>`__,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,90 @@
|
|||
# Build-system section
|
||||
[build-system]
|
||||
requires = ["setuptools>=40.8.0", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
# Black section
|
||||
# Read more here: https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file
|
||||
[tool.black]
|
||||
line-length=80
|
||||
|
||||
# Isort section
|
||||
# Read more here: https://pycqa.github.io/isort/docs/configuration/config_files.html
|
||||
[tool.isort]
|
||||
profile="black"
|
||||
line_length=80
|
||||
known_first_party = ["tuf"]
|
||||
|
||||
# Pylint section
|
||||
|
||||
# Minimal pylint configuration file for Secure Systems Lab Python Style Guide:
|
||||
# https://github.com/secure-systems-lab/code-style-guidelines
|
||||
#
|
||||
# Based on Google Python Style Guide pylintrc and pylint defaults:
|
||||
# https://google.github.io/styleguide/pylintrc
|
||||
# http://pylint.pycqa.org/en/latest/technical_reference/features.html
|
||||
|
||||
[tool.pylint.message_control]
|
||||
# Disable the message, report, category or checker with the given id(s).
|
||||
# NOTE: To keep this config as short as possible we only disable checks that
|
||||
# are currently in conflict with our code. If new code displeases the linter
|
||||
# (for good reasons) consider updating this config file, or disable checks with.
|
||||
disable=[
|
||||
"fixme",
|
||||
"too-few-public-methods",
|
||||
"too-many-arguments",
|
||||
"format",
|
||||
"duplicate-code"
|
||||
]
|
||||
|
||||
[tool.pylint.basic]
|
||||
good-names = ["i","j","k","v","e","f","fn","fp","_type","_"]
|
||||
# Regexes for allowed names are copied from the Google pylintrc
|
||||
# NOTE: Pylint captures regex name groups such as 'snake_case' or 'camel_case'.
|
||||
# If there are multiple groups it enfoces the prevalent naming style inside
|
||||
# each modules. Names in the exempt capturing group are ignored.
|
||||
function-rgx="^(?:(?P<exempt>setUp|tearDown|setUpModule|tearDownModule)|(?P<camel_case>_?[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_?[a-z][a-z0-9_]*))$"
|
||||
method-rgx="(?x)^(?:(?P<exempt>_[a-z0-9_]+__|runTest|setUp|tearDown|setUpTestCase|tearDownTestCase|setupSelf|tearDownClass|setUpClass|(test|assert)_*[A-Z0-9][a-zA-Z0-9_]*|next)|(?P<camel_case>_{0,2}[A-Z][a-zA-Z0-9_]*)|(?P<snake_case>_{0,2}[a-z][a-z0-9_]*))$"
|
||||
argument-rgx="^[a-z][a-z0-9_]*$"
|
||||
attr-rgx="^_{0,2}[a-z][a-z0-9_]*$"
|
||||
class-attribute-rgx="^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$"
|
||||
class-rgx="^_?[A-Z][a-zA-Z0-9]*$"
|
||||
const-rgx="^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$"
|
||||
inlinevar-rgx="^[a-z][a-z0-9_]*$"
|
||||
module-rgx="^(_?[a-z][a-z0-9_]*|__init__)$"
|
||||
no-docstring-rgx="(__.*__|main|test.*|.*test|.*Test)$"
|
||||
variable-rgx="^[a-z][a-z0-9_]*$"
|
||||
docstring-min-length=10
|
||||
|
||||
[tool.pylint.logging]
|
||||
logging-format-style="old"
|
||||
|
||||
[tool.pylint.miscellaneous]
|
||||
notes="TODO"
|
||||
|
||||
[tool.pylint.STRING]
|
||||
check-quote-consistency="yes"
|
||||
|
||||
# mypy section
|
||||
# Read more here: https://mypy.readthedocs.io/en/stable/config_file.html#using-a-pyproject-toml-file
|
||||
[tool.mypy]
|
||||
warn_unused_configs = "True"
|
||||
warn_redundant_casts = "True"
|
||||
warn_unused_ignores = "True"
|
||||
warn_unreachable = "True"
|
||||
strict_equality = "True"
|
||||
disallow_untyped_defs = "True"
|
||||
disallow_untyped_calls = "True"
|
||||
show_error_codes = "True"
|
||||
files = [
|
||||
"tuf/api/",
|
||||
"tuf/ngclient",
|
||||
"tuf/exceptions.py"
|
||||
]
|
||||
|
||||
[[tool.mypy.overrides]]
|
||||
module = [
|
||||
"securesystemslib.*",
|
||||
"urllib3.*"
|
||||
]
|
||||
ignore_missing_imports = "True"
|
||||
|
|
|
|||
20
setup.cfg
20
setup.cfg
|
|
@ -52,23 +52,3 @@ tuf = py.typed
|
|||
ignore =
|
||||
.fossa.yml
|
||||
.readthedocs.yaml
|
||||
|
||||
[mypy]
|
||||
warn_unused_configs = True
|
||||
warn_redundant_casts = True
|
||||
warn_unused_ignores = True
|
||||
warn_unreachable = True
|
||||
strict_equality = True
|
||||
disallow_untyped_defs = True
|
||||
disallow_untyped_calls = True
|
||||
show_error_codes = True
|
||||
files =
|
||||
tuf/api/,
|
||||
tuf/ngclient,
|
||||
tuf/exceptions.py
|
||||
|
||||
[mypy-securesystemslib.*]
|
||||
ignore_missing_imports = True
|
||||
|
||||
[mypy-urllib3.*]
|
||||
ignore_missing_imports = True
|
||||
|
|
|
|||
7
tox.ini
7
tox.ini
|
|
@ -40,10 +40,9 @@ commands =
|
|||
changedir = {toxinidir}
|
||||
commands =
|
||||
# Use different configs for new (tuf/api/*) and legacy code
|
||||
# TODO: configure black and isort args in pyproject.toml (see #1161)
|
||||
black --check --diff --line-length 80 tuf/api tuf/ngclient
|
||||
isort --check --diff --line-length 80 --profile black -p tuf tuf/api tuf/ngclient
|
||||
pylint -j 0 tuf/api tuf/ngclient --rcfile=tuf/api/pylintrc
|
||||
black --check --diff tuf/api tuf/ngclient
|
||||
isort --check --diff tuf/api tuf/ngclient
|
||||
pylint -j 0 tuf/api tuf/ngclient --rcfile=pyproject.toml
|
||||
|
||||
# NOTE: Contrary to what the pylint docs suggest, ignoring full paths does
|
||||
# work, unfortunately each subdirectory has to be ignored explicitly.
|
||||
|
|
|
|||
|
|
@ -539,7 +539,7 @@ def __init__(
|
|||
):
|
||||
if not all(
|
||||
isinstance(at, str) for at in [keyid, keytype, scheme]
|
||||
) or not isinstance(keyval, Dict):
|
||||
) or not isinstance(keyval, dict):
|
||||
raise TypeError("Unexpected Key attributes types!")
|
||||
self.keyid = keyid
|
||||
self.keytype = keytype
|
||||
|
|
|
|||
|
|
@ -1,46 +0,0 @@
|
|||
# Minimal pylint configuration file for Secure Systems Lab Python Style Guide:
|
||||
# https://github.com/secure-systems-lab/code-style-guidelines
|
||||
#
|
||||
# Based on Google Python Style Guide pylintrc and pylint defaults:
|
||||
# https://google.github.io/styleguide/pylintrc
|
||||
# http://pylint.pycqa.org/en/latest/technical_reference/features.html
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
# Disable the message, report, category or checker with the given id(s).
|
||||
# NOTE: To keep this config as short as possible we only disable checks that
|
||||
# are currently in conflict with our code. If new code displeases the linter
|
||||
# (for good reasons) consider updating this config file, or disable checks with
|
||||
# 'pylint: disable=XYZ' comments.
|
||||
disable=fixme,
|
||||
too-few-public-methods,
|
||||
too-many-arguments,
|
||||
format,
|
||||
duplicate-code,
|
||||
|
||||
[BASIC]
|
||||
good-names=i,j,k,v,e,f,fn,fp,_type,_
|
||||
# Regexes for allowed names are copied from the Google pylintrc
|
||||
# NOTE: Pylint captures regex name groups such as 'snake_case' or 'camel_case'.
|
||||
# If there are multiple groups it enfoces the prevalent naming style inside
|
||||
# each modules. Names in the exempt capturing group are ignored.
|
||||
function-rgx=^(?:(?P<exempt>setUp|tearDown|setUpModule|tearDownModule)|(?P<camel_case>_?[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_?[a-z][a-z0-9_]*))$
|
||||
method-rgx=(?x)^(?:(?P<exempt>_[a-z0-9_]+__|runTest|setUp|tearDown|setUpTestCase|tearDownTestCase|setupSelf|tearDownClass|setUpClass|(test|assert)_*[A-Z0-9][a-zA-Z0-9_]*|next)|(?P<camel_case>_{0,2}[A-Z][a-zA-Z0-9_]*)|(?P<snake_case>_{0,2}[a-z][a-z0-9_]*))$
|
||||
argument-rgx=^[a-z][a-z0-9_]*$
|
||||
attr-rgx=^_{0,2}[a-z][a-z0-9_]*$
|
||||
class-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$
|
||||
class-rgx=^_?[A-Z][a-zA-Z0-9]*$
|
||||
const-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$
|
||||
inlinevar-rgx=^[a-z][a-z0-9_]*$
|
||||
module-rgx=^(_?[a-z][a-z0-9_]*|__init__)$
|
||||
no-docstring-rgx=(__.*__|main|test.*|.*test|.*Test)$
|
||||
variable-rgx=^[a-z][a-z0-9_]*$
|
||||
docstring-min-length=10
|
||||
|
||||
[LOGGING]
|
||||
logging-format-style=old
|
||||
|
||||
[MISCELLANEOUS]
|
||||
notes=TODO
|
||||
|
||||
[STRING]
|
||||
check-quote-consistency=yes
|
||||
Loading…
Reference in a new issue