From 1692fabc37b3b5b34850295e48525e2ace93b8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 17 Nov 2024 15:16:35 +0000 Subject: [PATCH] DEBUG: Set GRASS-specific overrides and comment out defaults --- pyproject.toml | 1037 ++++++++++++++++++++++++++---------------------- 1 file changed, 565 insertions(+), 472 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1cb03ab2a65..38fc9671519 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -407,87 +407,90 @@ skips = ["B324", "B110", "B101", "B112", "B311", "B404", "B603"] [tool.pylint.main] -# Analyse import fallback blocks. This can be used to support both Python 2 and 3 -# compatible code, which means that the block might have code that exists only in -# one or another interpreter, leading to false positives when analysed. -# analyse-fallback-blocks = - -# Clear in-memory caches upon conclusion of linting. Useful if running pylint in -# a server-like mode. -# clear-cache-post-run = - -# Always return a 0 (non-error) status code, even if lint errors are found. This -# is primarily useful in continuous integration scripts. -# exit-zero = - -# A comma-separated list of package or module names from where C extensions may -# be loaded. Extensions are loading into the active Python interpreter and may -# run arbitrary code. -# extension-pkg-allow-list = - -# A comma-separated list of package or module names from where C extensions may -# be loaded. Extensions are loading into the active Python interpreter and may -# run arbitrary code. (This is an alternative name to extension-pkg-allow-list -# for backward compatibility.) -# extension-pkg-whitelist = - -# Return non-zero exit code if any of these messages/categories are detected, -# even if score is above --fail-under value. Syntax same as enable. Messages -# specified are enabled, while categories only check already-enabled messages. -# fail-on = - -# Specify a score threshold under which the program will exit with error. -fail-under = 10 - -# Interpret the stdin as a python script, whose filename needs to be passed as -# the module_or_package argument. -# from-stdin = - -# Files or directories to be skipped. They should be base names, not paths. -ignore = ["CVS"] - -# Add files or directories matching the regular expressions patterns to the -# ignore-list. The regex matches against paths and can be in Posix or Windows -# format. Because '\\' represents the directory delimiter on Windows systems, it -# can't be used as an escape character. -# ignore-paths = - -# Files or directories matching the regular expression patterns are skipped. The -# regex matches against base names, not paths. The default value ignores Emacs -# file locks -ignore-patterns = ["^\\.#"] - -# List of module names for which member attributes should not be checked and will -# not be imported (useful for modules/projects where namespaces are manipulated -# during runtime and thus existing member attributes cannot be deduced by static -# analysis). It supports qualified module names, as well as Unix pattern -# matching. -# ignored-modules = - -# Python code to execute, usually for sys.path manipulation such as -# pygtk.require(). -# init-hook = +# # Analyse import fallback blocks. This can be used to support both Python 2 and 3 +# # compatible code, which means that the block might have code that exists only in +# # one or another interpreter, leading to false positives when analysed. +# # analyse-fallback-blocks = + +# # Clear in-memory caches upon conclusion of linting. Useful if running pylint in +# # a server-like mode. +# # clear-cache-post-run = + +# # Always return a 0 (non-error) status code, even if lint errors are found. This +# # is primarily useful in continuous integration scripts. +# # exit-zero = + +# # A comma-separated list of package or module names from where C extensions may +# # be loaded. Extensions are loading into the active Python interpreter and may +# # run arbitrary code. +# # extension-pkg-allow-list = + +# # A comma-separated list of package or module names from where C extensions may +# # be loaded. Extensions are loading into the active Python interpreter and may +# # run arbitrary code. (This is an alternative name to extension-pkg-allow-list +# # for backward compatibility.) +# # extension-pkg-whitelist = + +# # Return non-zero exit code if any of these messages/categories are detected, +# # even if score is above --fail-under value. Syntax same as enable. Messages +# # specified are enabled, while categories only check already-enabled messages. +# # fail-on = + +# # Specify a score threshold under which the program will exit with error. +# fail-under = 10 + +# # Interpret the stdin as a python script, whose filename needs to be passed as +# # the module_or_package argument. +# # from-stdin = + +# # Files or directories to be skipped. They should be base names, not paths. +# ignore = ["CVS"] + +# # Add files or directories matching the regular expressions patterns to the +# # ignore-list. The regex matches against paths and can be in Posix or Windows +# # format. Because '\\' represents the directory delimiter on Windows systems, it +# # can't be used as an escape character. +# # ignore-paths = + +# # Files or directories matching the regular expression patterns are skipped. The +# # regex matches against base names, not paths. The default value ignores Emacs +# # file locks +# ignore-patterns = ["^\\.#"] + +# # List of module names for which member attributes should not be checked and will +# # not be imported (useful for modules/projects where namespaces are manipulated +# # during runtime and thus existing member attributes cannot be deduced by static +# # analysis). It supports qualified module names, as well as Unix pattern +# # matching. +# # ignored-modules = + +# # Python code to execute, usually for sys.path manipulation such as +# # pygtk.require(). +# # init-hook = # 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 = 1 +jobs = 0 -# Control the amount of potential inferred values when inferring a single object. -# This can help the performance when dealing with large functions or complex, -# nested conditions. -limit-inference-results = 100 +# # Control the amount of potential inferred values when inferring a single object. +# # This can help the performance when dealing with large functions or complex, +# # nested conditions. +# limit-inference-results = 100 # List of plugins (as comma separated values of python module names) to load, # usually to register additional checkers. -# load-plugins = +load-plugins = [ + # "pylint.extensions.redefined_variable_type", # *GRASS TODO: Enable later* + # "pylint.extensions.bad_builtin", # *GRASS TODO: Enable later* +] -# Pickle collected data for later comparisons. -persistent = true +# # Pickle collected data for later comparisons. +# persistent = true -# Resolve imports to .pyi stubs if available. May reduce no-member messages and -# increase not-an-iterable messages. -# prefer-stubs = +# # Resolve imports to .pyi stubs if available. May reduce no-member messages and +# # increase not-an-iterable messages. +# # prefer-stubs = # Minimum Python version to use for version dependent checks. Will default to the # version used to run pylint. @@ -495,176 +498,176 @@ persistent = true # *GRASS TODO: keep in sync with MIN_PYTHON_VERSION supported* py-version = "3.9" -# Discover python modules and packages in the file system subtree. -# recursive = - -# Add paths to the list of the source roots. Supports globbing patterns. The -# source root is an absolute path or a path relative to the current working -# directory used to determine a package namespace for modules located under the -# source root. -# source-roots = +# # Discover python modules and packages in the file system subtree. +# # recursive = -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages. -suggestion-mode = true +# # Add paths to the list of the source roots. Supports globbing patterns. The +# # source root is an absolute path or a path relative to the current working +# # directory used to determine a package namespace for modules located under the +# # source root. +# # source-roots = -# Allow loading of arbitrary C extensions. Extensions are imported into the -# active Python interpreter and may run arbitrary code. -# unsafe-load-any-extension = +# # When enabled, pylint would attempt to guess common misconfiguration and emit +# # user-friendly hints instead of false-positive error messages. +# suggestion-mode = true -[tool.pylint.basic] -# Naming style matching correct argument names. -argument-naming-style = "snake_case" +# # Allow loading of arbitrary C extensions. Extensions are imported into the +# # active Python interpreter and may run arbitrary code. +# # unsafe-load-any-extension = -# Regular expression matching correct argument names. Overrides argument-naming- -# style. If left empty, argument names will be checked with the set naming style. -# argument-rgx = +# [tool.pylint.basic] +# # Naming style matching correct argument names. +# argument-naming-style = "snake_case" -# Naming style matching correct attribute names. -attr-naming-style = "snake_case" +# # Regular expression matching correct argument names. Overrides argument-naming- +# # style. If left empty, argument names will be checked with the set naming style. +# # argument-rgx = -# Regular expression matching correct attribute names. Overrides attr-naming- -# style. If left empty, attribute names will be checked with the set naming -# style. -# attr-rgx = +# # Naming style matching correct attribute names. +# attr-naming-style = "snake_case" -# Bad variable names which should always be refused, separated by a comma. -bad-names = ["foo", "bar", "baz", "toto", "tutu", "tata"] +# # Regular expression matching correct attribute names. Overrides attr-naming- +# # style. If left empty, attribute names will be checked with the set naming +# # style. +# # attr-rgx = -# Bad variable names regexes, separated by a comma. If names match any regex, -# they will always be refused -# bad-names-rgxs = +# # Bad variable names which should always be refused, separated by a comma. +# bad-names = ["foo", "bar", "baz", "toto", "tutu", "tata"] -# Naming style matching correct class attribute names. -class-attribute-naming-style = "any" +# # Bad variable names regexes, separated by a comma. If names match any regex, +# # they will always be refused +# # bad-names-rgxs = -# Regular expression matching correct class attribute names. Overrides class- -# attribute-naming-style. If left empty, class attribute names will be checked -# with the set naming style. -# class-attribute-rgx = +# # Naming style matching correct class attribute names. +# class-attribute-naming-style = "any" -# Naming style matching correct class constant names. -class-const-naming-style = "UPPER_CASE" +# # Regular expression matching correct class attribute names. Overrides class- +# # attribute-naming-style. If left empty, class attribute names will be checked +# # with the set naming style. +# # class-attribute-rgx = -# Regular expression matching correct class constant names. Overrides class- -# const-naming-style. If left empty, class constant names will be checked with -# the set naming style. -# class-const-rgx = +# # Naming style matching correct class constant names. +# class-const-naming-style = "UPPER_CASE" -# Naming style matching correct class names. -class-naming-style = "PascalCase" +# # Regular expression matching correct class constant names. Overrides class- +# # const-naming-style. If left empty, class constant names will be checked with +# # the set naming style. +# # class-const-rgx = -# Regular expression matching correct class names. Overrides class-naming-style. -# If left empty, class names will be checked with the set naming style. -# class-rgx = +# # Naming style matching correct class names. +# class-naming-style = "PascalCase" -# Naming style matching correct constant names. -const-naming-style = "UPPER_CASE" +# # Regular expression matching correct class names. Overrides class-naming-style. +# # If left empty, class names will be checked with the set naming style. +# # class-rgx = + +# # Naming style matching correct constant names. +# const-naming-style = "UPPER_CASE" -# Regular expression matching correct constant names. Overrides const-naming- -# style. If left empty, constant names will be checked with the set naming style. -# const-rgx = +# # Regular expression matching correct constant names. Overrides const-naming- +# # style. If left empty, constant names will be checked with the set naming style. +# # const-rgx = -# Minimum line length for functions/classes that require docstrings, shorter ones -# are exempt. -docstring-min-length = -1 +# # Minimum line length for functions/classes that require docstrings, shorter ones +# # are exempt. +# docstring-min-length = -1 -# Naming style matching correct function names. -function-naming-style = "snake_case" +# # Naming style matching correct function names. +# function-naming-style = "snake_case" -# Regular expression matching correct function names. Overrides function-naming- -# style. If left empty, function names will be checked with the set naming style. -# function-rgx = +# # Regular expression matching correct function names. Overrides function-naming- +# # style. If left empty, function names will be checked with the set naming style. +# # function-rgx = -# Good variable names which should always be accepted, separated by a comma. -good-names = ["i", "j", "k", "ex", "Run", "_"] +# # Good variable names which should always be accepted, separated by a comma. +# good-names = ["i", "j", "k", "ex", "Run", "_"] -# Good variable names regexes, separated by a comma. If names match any regex, -# they will always be accepted -# good-names-rgxs = +# # Good variable names regexes, separated by a comma. If names match any regex, +# # they will always be accepted +# # good-names-rgxs = -# Include a hint for the correct naming format with invalid-name. -# include-naming-hint = +# # Include a hint for the correct naming format with invalid-name. +# # include-naming-hint = -# Naming style matching correct inline iteration names. -inlinevar-naming-style = "any" +# # Naming style matching correct inline iteration names. +# inlinevar-naming-style = "any" -# Regular expression matching correct inline iteration names. Overrides -# inlinevar-naming-style. If left empty, inline iteration names will be checked -# with the set naming style. -# inlinevar-rgx = +# # Regular expression matching correct inline iteration names. Overrides +# # inlinevar-naming-style. If left empty, inline iteration names will be checked +# # with the set naming style. +# # inlinevar-rgx = -# Naming style matching correct method names. -method-naming-style = "snake_case" +# # Naming style matching correct method names. +# method-naming-style = "snake_case" -# Regular expression matching correct method names. Overrides method-naming- -# style. If left empty, method names will be checked with the set naming style. -# method-rgx = +# # Regular expression matching correct method names. Overrides method-naming- +# # style. If left empty, method names will be checked with the set naming style. +# # method-rgx = -# Naming style matching correct module names. -module-naming-style = "snake_case" +# # Naming style matching correct module names. +# module-naming-style = "snake_case" -# Regular expression matching correct module names. Overrides module-naming- -# style. If left empty, module names will be checked with the set naming style. -# module-rgx = +# # Regular expression matching correct module names. Overrides module-naming- +# # style. If left empty, module names will be checked with the set naming style. +# # module-rgx = -# Colon-delimited sets of names that determine each other's naming style when the -# name regexes allow several styles. -# name-group = +# # Colon-delimited sets of names that determine each other's naming style when the +# # name regexes allow several styles. +# # name-group = -# Regular expression which should only match function or class names that do not -# require a docstring. -no-docstring-rgx = "^_" +# # Regular expression which should only match function or class names that do not +# # require a docstring. +# no-docstring-rgx = "^_" -# List of decorators that produce properties, such as abc.abstractproperty. Add -# to this list to register other decorators that produce valid properties. These -# decorators are taken in consideration only for invalid-name. -property-classes = ["abc.abstractproperty"] +# # List of decorators that produce properties, such as abc.abstractproperty. Add +# # to this list to register other decorators that produce valid properties. These +# # decorators are taken in consideration only for invalid-name. +# property-classes = ["abc.abstractproperty"] -# Regular expression matching correct type alias names. If left empty, type alias -# names will be checked with the set naming style. -# typealias-rgx = +# # Regular expression matching correct type alias names. If left empty, type alias +# # names will be checked with the set naming style. +# # typealias-rgx = -# Regular expression matching correct type variable names. If left empty, type -# variable names will be checked with the set naming style. -# typevar-rgx = +# # Regular expression matching correct type variable names. If left empty, type +# # variable names will be checked with the set naming style. +# # typevar-rgx = -# Naming style matching correct variable names. -variable-naming-style = "snake_case" +# # Naming style matching correct variable names. +# variable-naming-style = "snake_case" -# Regular expression matching correct variable names. Overrides variable-naming- -# style. If left empty, variable names will be checked with the set naming style. -# variable-rgx = +# # Regular expression matching correct variable names. Overrides variable-naming- +# # style. If left empty, variable names will be checked with the set naming style. +# # variable-rgx = -[tool.pylint.classes] -# Warn about protected attribute access inside special methods -# check-protected-access-in-special-methods = +# [tool.pylint.classes] +# # Warn about protected attribute access inside special methods +# # check-protected-access-in-special-methods = -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods = [ - "__init__", - "__new__", - "setUp", - "asyncSetUp", - "__post_init__", -] +# # List of method names used to declare (i.e. assign) instance attributes. +# defining-attr-methods = [ +# "__init__", +# "__new__", +# "setUp", +# "asyncSetUp", +# "__post_init__", +# ] -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected = [ - "_asdict", - "_fields", - "_replace", - "_source", - "_make", - "os._exit", -] +# # List of member names, which should be excluded from the protected access +# # warning. +# exclude-protected = [ +# "_asdict", +# "_fields", +# "_replace", +# "_source", +# "_make", +# "os._exit", +# ] -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg = ["cls"] - -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg = ["mcs"] +# # List of valid names for the first argument in a class method. +# valid-classmethod-first-arg = ["cls"] + +# # List of valid names for the first argument in a metaclass class method. +# valid-metaclass-classmethod-first-arg = ["mcs"] [tool.pylint.design] # List of regular expressions of class ancestor names to ignore when counting @@ -675,123 +678,138 @@ valid-metaclass-classmethod-first-arg = ["mcs"] # ignored-parents = # Maximum number of arguments for function / method. -max-args = 5 +# *GRASS modified: default 5, (see R0913)* +# *GRASS TODO: Try to reduce this value* +max-args = 15 # Maximum number of attributes for a class (see R0902). -max-attributes = 7 +# *GRASS modified: default 7* +# *GRASS TODO: Try to reduce this value* +max-attributes = 25 # Maximum number of boolean expressions in an if statement (see R0916). -max-bool-expr = 5 +# *GRASS modified: default 5* +# *GRASS TODO: Try to reduce this value* +max-bool-expr = 8 # Maximum number of branch for function / method body. -max-branches = 12 +# *GRASS modified: default 12, (see R0912)* +# *GRASS TODO: Try to reduce this value* +max-branches = 44 # Maximum number of locals for function / method body. -max-locals = 15 - -# Maximum number of parents for a class (see R0901). -max-parents = 7 +# *GRASS modified: default 15, (see R0914)* +# *GRASS TODO: Try to reduce this value* +max-locals = 50 -# Maximum number of positional arguments for function / method. -max-positional-arguments = 5 +# # Maximum number of parents for a class (see R0901). +# max-parents = 7 -# Maximum number of public methods for a class (see R0904). -max-public-methods = 20 +# # Maximum number of public methods for a class (see R0904). +# max-public-methods = 20 # Maximum number of return / yield for function / method body. -max-returns = 6 +# *GRASS modified: default 6, (see R0911)* +# *GRASS TODO: Try to reduce this value* +max-returns = 9 # Maximum number of statements in function / method body. -max-statements = 50 +# *GRASS modified: default 50, (see R0915)* +# *GRASS TODO: Try to reduce this value* +max-statements = 220 # Minimum number of public methods for a class (see R0903). -min-public-methods = 2 +# *GRASS modified: default 2, (see R0915)* +# *GRASS TODO: Try to increase this value* +min-public-methods = 1 -[tool.pylint.exceptions] -# Exceptions that will emit a warning when caught. -overgeneral-exceptions = ["builtins.BaseException", "builtins.Exception"] +# [tool.pylint.exceptions] +# # Exceptions that will emit a warning when caught. +# overgeneral-exceptions = ["builtins.BaseException", "builtins.Exception"] [tool.pylint.format] -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -# expected-line-ending-format = +# # Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +# # expected-line-ending-format = -# Regexp for a line that is allowed to be longer than the limit. -ignore-long-lines = "^\\s*(# )??$" +# # Regexp for a line that is allowed to be longer than the limit. +# ignore-long-lines = "^\\s*(# )??$" -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren = 4 +# # Number of spaces of indent required inside a hanging or continued line. +# indent-after-paren = 4 -# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 -# tab). -indent-string = " " +# # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# # tab). +# indent-string = " " -# Maximum number of characters on a single line. -max-line-length = 100 +# # Maximum number of characters on a single line. +# max-line-length = 100 # Maximum number of lines in a module. -max-module-lines = 1000 +# *GRASS modified: default 1000, (see C0302)* +# *GRASS TODO: Try to reduce this value* +max-module-lines = 2000 -# Allow the body of a class to be on the same line as the declaration if body -# contains single statement. -# single-line-class-stmt = +# # Allow the body of a class to be on the same line as the declaration if body +# # contains single statement. +# # single-line-class-stmt = -# Allow the body of an if to be on the same line as the test if there is no else. -# single-line-if-stmt = +# # Allow the body of an if to be on the same line as the test if there is no else. +# # single-line-if-stmt = [tool.pylint.imports] -# List of modules that can be imported at any level, not just the top level one. -# allow-any-import-level = - -# Allow explicit reexports by alias from a package __init__. -# allow-reexport-from-package = - -# Allow wildcard imports from modules that define __all__. -# allow-wildcard-with-all = - -# Deprecated modules which should not be used, separated by a comma. -# deprecated-modules = - -# Output a graph (.gv or any supported image format) of external dependencies to -# the given file (report RP0402 must not be disabled). -# ext-import-graph = - -# Output a graph (.gv or any supported image format) of all (i.e. internal and -# external) dependencies to the given file (report RP0402 must not be disabled). -# import-graph = - -# Output a graph (.gv or any supported image format) of internal dependencies to -# the given file (report RP0402 must not be disabled). -# int-import-graph = - -# Force import order to recognize a module as part of the standard compatibility -# libraries. -# known-standard-library = - -# Force import order to recognize a module as part of a third party library. -known-third-party = ["enchant"] - -# Couples of modules and preferred modules, separated by a comma. -# preferred-modules = - -[tool.pylint.logging] -# The type of string formatting that logging methods do. `old` means using % -# formatting, `new` is for `{}` formatting. -logging-format-style = "old" - -# Logging modules to check that the string format arguments are in logging -# function parameter format. -logging-modules = ["logging"] - -[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", - "CONTROL_FLOW", - "INFERENCE", - "INFERENCE_FAILURE", - "UNDEFINED", -] +# # List of modules that can be imported at any level, not just the top level one. +# # allow-any-import-level = + +# # Allow explicit reexports by alias from a package __init__. +# # allow-reexport-from-package = + +# # Allow wildcard imports from modules that define __all__. +# # allow-wildcard-with-all = + +# # Deprecated modules which should not be used, separated by a comma. +# # deprecated-modules = + +# # Output a graph (.gv or any supported image format) of external dependencies to +# # the given file (report RP0402 must not be disabled). +# # ext-import-graph = + +# # Output a graph (.gv or any supported image format) of all (i.e. internal and +# # external) dependencies to the given file (report RP0402 must not be disabled). +# # import-graph = + +# # Output a graph (.gv or any supported image format) of internal dependencies to +# # the given file (report RP0402 must not be disabled). +# # int-import-graph = + +# # Force import order to recognize a module as part of the standard compatibility +# # libraries. +# # known-standard-library = + +# # Force import order to recognize a module as part of a third party library. +# known-third-party = ["enchant"] + +# # Couples of modules and preferred modules, separated by a comma. +# # preferred-modules = + +# [tool.pylint.logging] +# # The type of string formatting that logging methods do. `old` means using % +# # formatting, `new` is for `{}` formatting. +# logging-format-style = "old" + +# # Logging modules to check that the string format arguments are in logging +# # function parameter format. +# logging-modules = ["logging"] + +# [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", +# "CONTROL_FLOW", +# "INFERENCE", +# "INFERENCE_FAILURE", +# "UNDEFINED", +# ] # 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 @@ -803,6 +821,7 @@ confidence = [ # no Warning level messages displayed, use "--disable=all --enable=classes # --disable=W". disable = [ + # *GRASS: The 10 following rules are disabled by default* "bad-inline-option", "deprecated-pragma", "file-ignored", @@ -813,204 +832,278 @@ disable = [ "use-implicit-booleaness-not-comparison-to-zero", "use-symbolic-message-instead", "useless-suppression", + # *GRASS modified: The following rules are added to the disabled list* + # *GRASS TODO: Try to ignore less rules* + "anomalous-backslash-in-string", + "attribute-defined-outside-init", + "bare-except", + "broad-except", + "cell-var-from-loop", + "chained-comparison", + "consider-iterating-dictionary", + "consider-using-dict-items", + "consider-using-enumerate", + "consider-using-f-string", + "consider-using-from-import", + "consider-using-generator", + "consider-using-get", + "consider-using-in", + "consider-using-max-builtin", + "consider-using-min-builtin", + "consider-using-with", + "deprecated-argument", + "deprecated-method", + "eval-used", + "expression-not-assigned", + "fixme", + "global-statement", + "global-variable-not-assigned", + "global-variable-undefined", + "import-error", + "import-outside-toplevel", + "inconsistent-return-statements", + "invalid-name", + "line-too-long", + "missing-class-docstring", + "missing-function-docstring", + "missing-module-docstring", + "no-else-break", + "no-else-raise", + "no-else-return", + "no-member", + "no-name-in-module", + "no-value-for-parameter", + "not-callable", + "raise-missing-from", + "redefined-builtin", + "redefined-outer-name", + "self-assigning-variable", + "simplifiable-if-statement", + "super-with-arguments", + "undefined-loop-variable", + "undefined-variable", + "unidiomatic-typecheck", + "unnecessary-comprehension", + "unnecessary-pass", + "unneeded-not", + "unspecified-encoding", + "unused-argument", + "unused-import", + "unused-variable", + "use-a-generator", + "use-list-literal", + "use-maxsplit-arg", + "useless-import-alias", + "useless-object-inheritance", + "useless-return", + "wrong-import-order", + "wrong-import-position", ] -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where it -# should appear only once). See also the "--disable" option for examples. -# enable = - -[tool.pylint.method_args] -# List of qualified names (i.e., library.method) which require a timeout -# parameter e.g. 'requests.api.get,requests.api.post' -timeout-methods = [ - "requests.api.delete", - "requests.api.get", - "requests.api.head", - "requests.api.options", - "requests.api.patch", - "requests.api.post", - "requests.api.put", - "requests.api.request", -] - -[tool.pylint.miscellaneous] -# List of note tags to take in consideration, separated by a comma. -notes = ["FIXME", "XXX", "TODO"] - -# Regular expression of note tags to take in consideration. -# notes-rgx = +# # Enable the message, report, category or checker with the given id(s). You can +# # either give multiple identifier separated by comma (,) or put this option +# # multiple time (only on the command line, not in the configuration file where it +# # should appear only once). See also the "--disable" option for examples. +# # enable = + +# [tool.pylint.method_args] +# # List of qualified names (i.e., library.method) which require a timeout +# # parameter e.g. 'requests.api.get,requests.api.post' +# timeout-methods = [ +# "requests.api.delete", +# "requests.api.get", +# "requests.api.head", +# "requests.api.options", +# "requests.api.patch", +# "requests.api.post", +# "requests.api.put", +# "requests.api.request", +# ] + +# [tool.pylint.miscellaneous] +# # List of note tags to take in consideration, separated by a comma. +# notes = ["FIXME", "XXX", "TODO"] + +# # Regular expression of note tags to take in consideration. +# # notes-rgx = [tool.pylint.refactoring] # Maximum number of nested blocks for function / method body -max-nested-blocks = 5 - -# Complete name of functions that never returns. When checking for inconsistent- -# return-statements if a never returning function is called then it will be -# considered as an explicit return statement and no message will be printed. -never-returning-functions = ["sys.exit", "argparse.parse_error"] - -# Let 'consider-using-join' be raised when the separator to join on would be non- -# empty (resulting in expected fixes of the type: ``"- " + " - ".join(items)``) -suggest-join-with-non-empty-separator = true - -[tool.pylint.reports] -# Python expression which should return a score less than or equal to 10. You -# have access to the variables 'fatal', 'error', 'warning', 'refactor', -# 'convention', and 'info' which contain the number of messages in each category, -# as well as 'statement' which is the total number of statements analyzed. This -# score is used by the global evaluation report (RP0004). -evaluation = "max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))" - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details. -# msg-template = - -# Set the output format. Available formats are: text, parseable, colorized, json2 -# (improved json format), json (old json format) and msvs (visual studio). You -# can also give a reporter class, e.g. mypackage.mymodule.MyReporterClass. -# output-format = - -# Tells whether to display a full report or only the messages. -# reports = - -# Activate the evaluation score. -score = true +# *GRASS modified: default 5, (see R1702)* +# *GRASS TODO: Try to reduce this value* +max-nested-blocks = 7 + +# # Complete name of functions that never returns. When checking for inconsistent- +# # return-statements if a never returning function is called then it will be +# # considered as an explicit return statement and no message will be printed. +# never-returning-functions = ["sys.exit", "argparse.parse_error"] + +# # Let 'consider-using-join' be raised when the separator to join on would be non- +# # empty (resulting in expected fixes of the type: ``"- " + " - ".join(items)``) +# suggest-join-with-non-empty-separator = true + +# [tool.pylint.reports] +# # Python expression which should return a score less than or equal to 10. You +# # have access to the variables 'fatal', 'error', 'warning', 'refactor', +# # 'convention', and 'info' which contain the number of messages in each category, +# # as well as 'statement' which is the total number of statements analyzed. This +# # score is used by the global evaluation report (RP0004). +# evaluation = "max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))" + +# # Template used to display messages. This is a python new-style format string +# # used to format the message information. See doc for all details. +# # msg-template = + +# # Set the output format. Available formats are: text, parseable, colorized, json2 +# # (improved json format), json (old json format) and msvs (visual studio). You +# # can also give a reporter class, e.g. mypackage.mymodule.MyReporterClass. +# # output-format = + +# # Tells whether to display a full report or only the messages. +# # reports = + +# # Activate the evaluation score. +# score = true [tool.pylint.similarities] -# Comments are removed from the similarity computation -ignore-comments = true +# # Comments are removed from the similarity computation +# ignore-comments = true -# Docstrings are removed from the similarity computation -ignore-docstrings = true +# # Docstrings are removed from the similarity computation +# ignore-docstrings = true -# Imports are removed from the similarity computation -ignore-imports = true +# # Imports are removed from the similarity computation +# ignore-imports = true -# Signatures are removed from the similarity computation -ignore-signatures = true +# # Signatures are removed from the similarity computation +# ignore-signatures = true # Minimum lines number of a similarity. -min-similarity-lines = 4 - -[tool.pylint.spelling] -# Limits count of emitted suggestions for spelling mistakes. -max-spelling-suggestions = 4 - -# Spelling dictionary name. No available dictionaries : You need to install both -# the python package and the system dependency for enchant to work. -# spelling-dict = - -# List of comma separated words that should be considered directives if they -# appear at the beginning of a comment and should not be checked. -spelling-ignore-comment-directives = "fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:" - -# List of comma separated words that should not be checked. -# spelling-ignore-words = - -# A path to a file that contains the private dictionary; one word per line. -# spelling-private-dict-file = - -# Tells whether to store unknown words to the private dictionary (see the -# --spelling-private-dict-file option) instead of raising a message. -# spelling-store-unknown-words = - -[tool.pylint.typecheck] -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators = ["contextlib.contextmanager"] - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -# generated-members = - -# Tells whether missing members accessed in mixin class should be ignored. A -# class is considered mixin if its name matches the mixin-class-rgx option. -# Tells whether to warn about missing members when the owner of the attribute is -# inferred to be None. -ignore-none = true - -# This flag controls whether pylint should warn about no-member and similar -# checks whenever an opaque object is returned when inferring. The inference can -# return multiple potential results while evaluating a Python object, but some -# branches might not be evaluated, which results in partial inference. In that -# case, it might be useful to still emit no-member and other checks for the rest -# of the inferred objects. -ignore-on-opaque-inference = true - -# List of symbolic message names to ignore for Mixin members. -ignored-checks-for-mixins = [ - "no-member", - "not-async-context-manager", - "not-context-manager", - "attribute-defined-outside-init", -] - -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes = [ - "optparse.Values", - "thread._local", - "_thread._local", - "argparse.Namespace", -] - -# Show a hint with possible names when a member name was not found. The aspect of -# finding the hint is based on edit distance. -missing-member-hint = true - -# The minimum edit distance a name should have in order to be considered a -# similar match for a missing member name. -missing-member-hint-distance = 1 - -# The total number of similar names that should be taken in consideration when -# showing a hint for a missing member. -missing-member-max-choices = 1 - -# Regex pattern to define which classes are considered mixins. -mixin-class-rgx = ".*[Mm]ixin" - -# List of decorators that change the signature of a decorated function. -# signature-mutators = +# *GRASS modified: default 4, (see R0801)* +# *GRASS TODO: Try to reduce this value* +# *GRASS justification: Matching only larger chunks of code, not the default 4 lines.* +min-similarity-lines = 50 + +# [tool.pylint.spelling] +# # Limits count of emitted suggestions for spelling mistakes. +# max-spelling-suggestions = 4 + +# # Spelling dictionary name. No available dictionaries : You need to install both +# # the python package and the system dependency for enchant to work. +# # spelling-dict = + +# # List of comma separated words that should be considered directives if they +# # appear at the beginning of a comment and should not be checked. +# spelling-ignore-comment-directives = "fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:" + +# # List of comma separated words that should not be checked. +# # spelling-ignore-words = + +# # A path to a file that contains the private dictionary; one word per line. +# # spelling-private-dict-file = + +# # Tells whether to store unknown words to the private dictionary (see the +# # --spelling-private-dict-file option) instead of raising a message. +# # spelling-store-unknown-words = + +# [tool.pylint.typecheck] +# # List of decorators that produce context managers, such as +# # contextlib.contextmanager. Add to this list to register other decorators that +# # produce valid context managers. +# contextmanager-decorators = ["contextlib.contextmanager"] + +# # List of members which are set dynamically and missed by pylint inference +# # system, and so shouldn't trigger E1101 when accessed. Python regular +# # expressions are accepted. +# # generated-members = + +# # Tells whether missing members accessed in mixin class should be ignored. A +# # class is considered mixin if its name matches the mixin-class-rgx option. +# # Tells whether to warn about missing members when the owner of the attribute is +# # inferred to be None. +# ignore-none = true + +# # This flag controls whether pylint should warn about no-member and similar +# # checks whenever an opaque object is returned when inferring. The inference can +# # return multiple potential results while evaluating a Python object, but some +# # branches might not be evaluated, which results in partial inference. In that +# # case, it might be useful to still emit no-member and other checks for the rest +# # of the inferred objects. +# ignore-on-opaque-inference = true + +# # List of symbolic message names to ignore for Mixin members. +# ignored-checks-for-mixins = [ +# "no-member", +# "not-async-context-manager", +# "not-context-manager", +# "attribute-defined-outside-init", +# ] + +# # List of class names for which member attributes should not be checked (useful +# # for classes with dynamically set attributes). This supports the use of +# # qualified names. +# ignored-classes = [ +# "optparse.Values", +# "thread._local", +# "_thread._local", +# "argparse.Namespace", +# ] + +# # Show a hint with possible names when a member name was not found. The aspect of +# # finding the hint is based on edit distance. +# missing-member-hint = true + +# # The minimum edit distance a name should have in order to be considered a +# # similar match for a missing member name. +# missing-member-hint-distance = 1 + +# # The total number of similar names that should be taken in consideration when +# # showing a hint for a missing member. +# missing-member-max-choices = 1 + +# # Regex pattern to define which classes are considered mixins. +# mixin-class-rgx = ".*[Mm]ixin" + +# # List of decorators that change the signature of a decorated function. +# # signature-mutators = [tool.pylint.variables] # List of additional names supposed to be defined in builtins. Remember that you # should avoid defining new builtins when possible. -# additional-builtins = - -# Tells whether unused global variables should be treated as a violation. -allow-global-unused-variables = true - -# List of names allowed to shadow builtins -# allowed-redefined-builtins = - -# List of strings which can identify a callback function by name. A callback name -# must start or end with one of those strings. -callbacks = ["cb_", "_cb"] - -# A regular expression matching the name of dummy variables (i.e. expected to not -# be used). -dummy-variables-rgx = "_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_" - -# Argument names that match this expression will be ignored. -ignored-argument-names = "_.*|^ignored_|^unused_" - -# Tells whether we should check for unused import in __init__ files. -# init-import = - -# List of qualified module names which can have objects that can redefine -# builtins. -redefining-builtins-modules = [ - "six.moves", - "past.builtins", - "future.builtins", - "builtins", - "io", -] +# *GRASS modified: default '# additional-builtins ='* +# *GRASS justification: Translation function is (unfortunately) defined as a builtin.* +# *GRASS TODO: Find another pattern for translation that allows to use _ as a discard variable and other* +additional-builtins = ["_"] + +# # Tells whether unused global variables should be treated as a violation. +# allow-global-unused-variables = true + +# # List of names allowed to shadow builtins +# # allowed-redefined-builtins = + +# # List of strings which can identify a callback function by name. A callback name +# # must start or end with one of those strings. +# callbacks = ["cb_", "_cb"] + +# # A regular expression matching the name of dummy variables (i.e. expected to not +# # be used). +# dummy-variables-rgx = "_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_" + +# # Argument names that match this expression will be ignored. +# ignored-argument-names = "_.*|^ignored_|^unused_" + +# # Tells whether we should check for unused import in __init__ files. +# # init-import = + +# # List of qualified module names which can have objects that can redefine +# # builtins. +# redefining-builtins-modules = [ +# "six.moves", +# "past.builtins", +# "future.builtins", +# "builtins", +# "io", +# ] [tool.pyright]