2023-05-04 16:12:08 +02:00
|
|
|
|
|
|
|
# We ignore the following PEP8 warnings
|
|
|
|
# * E123: closing bracket does not match indentation of opening bracket's line
|
|
|
|
# - Broken if multiple indentation levels start on a single line
|
|
|
|
# * E203: whitespace before ':'
|
|
|
|
# - E203 is not PEP 8 compliant and conflict with black
|
|
|
|
# * E402: module level import not at top of file
|
|
|
|
# - The tests use a little hack in order to cleanly import the
|
|
|
|
# fdroidserver package locally like a regular package. pep8 doesn't
|
|
|
|
# see that, so this makes pep8 skip E402 on the test files that need
|
|
|
|
# that hack.
|
|
|
|
# * E501: line too long (82 > 79 characters)
|
|
|
|
# - Recommended for readability but not enforced
|
|
|
|
# - Some lines are awkward to wrap around a char limit
|
|
|
|
# * W503: line break before binary operator
|
|
|
|
# - Quite pedantic
|
|
|
|
|
|
|
|
[tool.autopep8]
|
|
|
|
ignore = "E123,E203,E402,E501,W503"
|
|
|
|
|
2021-06-18 06:11:39 +02:00
|
|
|
[tool.black]
|
|
|
|
skip-string-normalization = true
|
2022-10-31 09:52:32 +01:00
|
|
|
target-version = ["py38"]
|
2023-04-25 23:02:23 +02:00
|
|
|
include = '(^fdroid|\.pyi?|\.TestCase)$'
|
|
|
|
# These files will never be included in black runs. To run black on
|
|
|
|
# one of thes files, remove it from this list.
|
|
|
|
force-exclude = '''(
|
|
|
|
\.direnv|\.eggs|\.git|\.hg|\.mypy_cache|\.nox|\.svn|\.tox|\.venv|venv|_build|buck-out|build|dist|__pypackages__
|
|
|
|
| docs/source/conf\.py
|
|
|
|
| examples/fdroid_export_keystore_to_nitrokey\.py
|
|
|
|
| examples/fdroid_exportkeystore\.py
|
|
|
|
| examples/fdroid_fetchsrclibs\.py
|
|
|
|
| examples/fdroid_nitrokeyimport\.py
|
|
|
|
| fdroidserver/__init__\.py
|
|
|
|
| fdroidserver/__main__\.py
|
|
|
|
| fdroidserver/apksigcopier\.py
|
|
|
|
| fdroidserver/build\.py
|
|
|
|
| fdroidserver/checkupdates\.py
|
|
|
|
| fdroidserver/common\.py
|
|
|
|
| fdroidserver/deploy\.py
|
|
|
|
| fdroidserver/import_subcommand\.py
|
|
|
|
| fdroidserver/index\.py
|
|
|
|
| fdroidserver/install\.py
|
|
|
|
| fdroidserver/metadata\.py
|
|
|
|
| fdroidserver/nightly\.py
|
|
|
|
| fdroidserver/publish\.py
|
|
|
|
| fdroidserver/scanner\.py
|
|
|
|
| fdroidserver/update\.py
|
|
|
|
| fdroidserver/vmtools\.py
|
|
|
|
| locale/pick-complete-translations\.py
|
|
|
|
| tests/config\.py
|
|
|
|
| tests/extra/manual-vmtools-test\.py
|
|
|
|
| tests/gradle-release-checksums\.py
|
|
|
|
| tests/openssl-version-check-test\.py
|
|
|
|
| tests/testcommon\.py
|
|
|
|
| tests/valid-package-names/test\.py
|
|
|
|
| tests/checkupdates\.TestCase
|
|
|
|
| tests/common\.TestCase
|
|
|
|
| tests/publish\.TestCase
|
|
|
|
| tests/signatures\.TestCase
|
|
|
|
| tests/update\.TestCase
|
|
|
|
)$'''
|
2022-09-20 12:29:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
[tool.mypy]
|
2022-10-20 22:08:00 +02:00
|
|
|
python_version = "3.9"
|
2022-09-20 12:29:59 +02:00
|
|
|
|
|
|
|
files = "fdroidserver"
|
|
|
|
|
|
|
|
# exclude vendored file
|
|
|
|
exclude = "fdroidserver/apksigcopier.py"
|
|
|
|
|
|
|
|
# this is de-facto the linter setting for this file
|
|
|
|
warn_unused_configs = true
|
|
|
|
|
|
|
|
# TODO: we should either upgrade the used packages to a version which includes type hints OR install/write stub packages for these libraries.
|
|
|
|
# Further details here: https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-type-hints-for-third-party-library
|
|
|
|
ignore_missing_imports = true
|
|
|
|
|
|
|
|
# ignore the [no-redef] errors, as they collide with the bandit "# nosec" exclusion (common.py)
|
|
|
|
# unfortunately both tools expect their ignore flag as a comment in the same line
|
|
|
|
# [misc] is ignored for the "incompatible import"
|
|
|
|
# [arg-type] is ignored because when there are missing envs, everything will crash, not just the types
|
|
|
|
disable_error_code = "no-redef, misc, arg-type"
|
|
|
|
|
|
|
|
|
|
|
|
[tool.pylint.main]
|
|
|
|
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
|
|
|
|
# number of processors available to use, and will cap the count on Windows to
|
|
|
|
# avoid hangs.
|
|
|
|
jobs = 4
|
|
|
|
|
2023-03-05 09:24:58 +01:00
|
|
|
# Minimum Python version to use for version dependent checks. Will default to the
|
|
|
|
# version used to run pylint.
|
|
|
|
py-version = "3.9"
|
|
|
|
|
|
|
|
# Files or directories to be skipped. They should be base names, not paths.
|
|
|
|
ignore = ["apksigcopier.py"]
|
|
|
|
|
2022-09-20 12:29:59 +02:00
|
|
|
[tool.pylint.basic]
|
|
|
|
# Good variable names which should always be accepted, separated by a comma.
|
|
|
|
good-names = ["i", "j", "k", "ex", "Run", "f", "fp"]
|
|
|
|
|
|
|
|
[tool.pylint."messages control"]
|
|
|
|
# Only show warnings with the listed confidence levels. Leave empty to show all.
|
|
|
|
# Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE, UNDEFINED.
|
|
|
|
confidence = ["HIGH", "INFERENCE"]
|
|
|
|
|
|
|
|
# Disable the message, report, category or checker with the given id(s). You can
|
|
|
|
# either give multiple identifiers separated by comma (,) or put this option
|
|
|
|
# multiple times (only on the command line, not in the configuration file where
|
|
|
|
# it should appear only once). You can also use "--disable=all" to disable
|
|
|
|
# everything first and then re-enable specific checks. For example, if you want
|
|
|
|
# to run only the similarities checker, you can use "--disable=all
|
|
|
|
# --enable=similarities". If you want to run only the classes checker, but have
|
|
|
|
# no Warning level messages displayed, use "--disable=all --enable=classes
|
|
|
|
# --disable=W".
|
2023-02-02 15:30:15 +01:00
|
|
|
|
|
|
|
# TODO many of these could be fixed if someone wants to spend the time
|
|
|
|
disable = [
|
2023-03-20 14:27:26 +01:00
|
|
|
"broad-exception-caught",
|
|
|
|
"broad-exception-raised",
|
2023-02-02 15:30:15 +01:00
|
|
|
"invalid-name",
|
|
|
|
"missing-class-docstring",
|
|
|
|
"missing-function-docstring",
|
|
|
|
"missing-module-docstring",
|
|
|
|
"no-else-continue",
|
|
|
|
"no-else-raise",
|
|
|
|
"no-else-return",
|
|
|
|
"subprocess-run-check",
|
|
|
|
"use-dict-literal",
|
|
|
|
]
|
|
|
|
|
2022-09-20 12:29:59 +02:00
|
|
|
|
|
|
|
[tool.pylint.miscellaneous]
|
|
|
|
# List of note tags to take in consideration, separated by a comma.
|
|
|
|
notes = ["FIXME", "XXX", "TODO"]
|
|
|
|
|
|
|
|
[tool.pylint.refactoring]
|
|
|
|
# Maximum number of nested blocks for function / method body
|
|
|
|
max-nested-blocks = 5
|
|
|
|
|
|
|
|
[tool.pylint.format]
|
|
|
|
# Maximum number of characters on a single line.
|
|
|
|
max-line-length = 88
|