From a0cc7472ebac6c505c00118ce8a4abae78b52705 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 14 May 2023 10:08:31 +0200 Subject: [PATCH] [mod] CI - add py-3.11 to github workflow Signed-off-by: Markus Heiser --- .github/workflows/workflow.yml | 2 +- .pylintrc | 633 ++++++++++++--------------------- requirements-dev.txt | 14 +- setup.py | 7 +- tests/common/test_utils.py | 4 +- 5 files changed, 249 insertions(+), 411 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index c4cae5f..ee72967 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ["3.8", "3.9", "3.10"] + python-version: ["3.8", "3.9", "3.10", "3.11"] name: Python ${{ matrix.python-version }} QA steps: - uses: actions/checkout@v1 diff --git a/.pylintrc b/.pylintrc index 0508104..101e2da 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,13 +1,22 @@ +# -*- coding: utf-8; mode: conf -*- +# lint Python modules using external checkers. +# +# This is the main checker controlling the other ones and the reports +# generation. It is itself both a raw checker and an astng checker in order +# to: +# * handle message activation / deactivation at the module level +# * handle some basic but necessary stats data (number of classes, methods...) +# [MASTER] # 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-whitelist=lxml +# run arbitrary code +extension-pkg-whitelist=lxml.etree # Add files or directories to the blacklist. They should be base names, not # paths. -ignore=searxstats/data +ignore=CVS, .git, .svn, searxstats/data # Add files or directories matching the regex patterns to the blacklist. The # regex matches against base names, not paths. @@ -17,16 +26,10 @@ ignore-patterns= # pygtk.require(). #init-hook= -# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the -# number of processors available to use. +# Use multiple processes to speed up Pylint. jobs=1 -# 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, +# List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= @@ -36,10 +39,6 @@ persistent=yes # Specify a configuration file. #rcfile= -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages. -suggestion-mode=yes - # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no @@ -48,133 +47,71 @@ unsafe-load-any-extension=no [MESSAGES CONTROL] # Only show warnings with the listed confidence levels. Leave empty to show -# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED confidence= # 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 +# file where it should appear only once).You can also use "--disable=all" to # disable everything first and then reenable 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". -disable=print-statement, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - use-symbolic-message-instead, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, - deprecated-operator-function, - deprecated-urllib-function, - xreadlines-attribute, - deprecated-sys-function, - exception-escape, - comprehension-escape, - C0114, - C0115, - C0116, - C1801, - R0902, - R0903, - R1705, - E1701, - W0511 +# no Warning level messages displayed, use"--disable=all --enable=classes +# --disable=W" +disable=duplicate-code, + missing-function-docstring, + consider-using-f-string, + missing-module-docstring, + missing-class-docstring, + broad-exception-caught, + broad-exception-raised, + global-variable-not-assigned, + too-few-public-methods, + unspecified-encoding, + no-else-return, + invalid-name, + use-dict-literal, + no-else-return, + super-with-arguments, + no-else-raise, + fixme, + consider-using-from-import, + useless-option-value, + condition-evals-to-constant, + use-implicit-booleaness-not-len, + inconsistent-return-statements, # 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=c-extension-no-member +enable= [REPORTS] -# Python expression which should return a score less than or equal to 10. You -# have access to the variables 'error', 'warning', 'refactor', and 'convention' -# 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). +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). evaluation=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= +# used to format the message information. See doc for all details + +# HINT: do not set this here, use argument --msg-template=... +#msg-template={path}:{line}: [{msg_id}({symbol}),{obj}] {msg} # Set the output format. Available formats are text, parseable, colorized, json -# and msvs (visual studio). You can also give a reporter class, e.g. +# and msvs (visual studio).You can also give a reporter class, eg # mypackage.mymodule.MyReporterClass. -output-format=colorized -# Tells whether to display a full report or only the messages. +# HINT: do not set this here, use argument --output-format=... +#output-format=text + +# Tells whether to display a full report or only the messages reports=no # Activate the evaluation score. @@ -186,187 +123,52 @@ score=yes # 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 - - -[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=yes - -# 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. Default to name -# with leading underscore. -ignored-argument-names=_.*|^ignored_|^unused_ - -# Tells whether we should check for unused import in __init__ files. -init-import=no - -# List of qualified module names which can have objects that can redefine -# builtins. -redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io - - -[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 -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# Tells whether to warn about missing members when the owner of the attribute -# is inferred to be None. -ignore-none=yes - -# 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=yes - -# 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 - -# List of module names for which member attributes should not be checked -# (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= - -# 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=yes - -# 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 - -# List of decorators that change the signature of a decorated function. -signature-mutators= - [BASIC] -# Naming style matching correct argument names. -argument-naming-style=snake_case - -# Regular expression matching correct argument names. Overrides argument- -# naming-style. -#argument-rgx= - -# Naming style matching correct attribute names. -attr-naming-style=snake_case - -# Regular expression matching correct attribute names. Overrides attr-naming- -# style. -#attr-rgx= - -# Bad variable names which should always be refused, separated by a comma. -bad-names=foo, - bar, - baz, - toto, - tutu, - tata +# Regular expression matching correct argument names +argument-rgx=(([a-z][a-zA-Z0-9_]{2,30})|(_[a-z0-9_]*))$ -# Naming style matching correct class attribute names. -class-attribute-naming-style=any +# Regular expression matching correct attribute names +attr-rgx=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*)|([A-Z0-9_]*))$ -# Regular expression matching correct class attribute names. Overrides class- -# attribute-naming-style. -#class-attribute-rgx= +# 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 names. -class-naming-style=PascalCase +# Regular expression matching correct class attribute names +class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ -# Regular expression matching correct class names. Overrides class-naming- -# style. -#class-rgx= +# Regular expression matching correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ -# Naming style matching correct constant names. -const-naming-style=UPPER_CASE - -# Regular expression matching correct constant names. Overrides const-naming- -# style. -#const-rgx= +# Regular expression matching correct constant names +const-rgx=(([a-zA-Z_][a-zA-Z0-9_]*)|(__.*__))$ +#const-rgx=[f]?[A-Z_][a-zA-Z0-9_]{2,30}$ # 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 - -# Regular expression matching correct function names. Overrides function- -# naming-style. -#function-rgx= +# Regular expression matching correct function names +function-rgx=(([a-z][a-zA-Z0-9_]{2,30})|(_[a-z0-9_]*))$ -# 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,_,log,cfg,id -# Include a hint for the correct naming format with invalid-name. +# Include a hint for the correct naming format with invalid-name include-naming-hint=no -# Naming style matching correct inline iteration names. -inlinevar-naming-style=any - -# Regular expression matching correct inline iteration names. Overrides -# inlinevar-naming-style. -#inlinevar-rgx= - -# Naming style matching correct method names. -method-naming-style=snake_case +# Regular expression matching correct inline iteration names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ -# Regular expression matching correct method names. Overrides method-naming- -# style. -#method-rgx= +# Regular expression matching correct method names +method-rgx=(([a-z][a-zA-Z0-9_]{2,30})|(_[a-z0-9_]*))$ -# Naming style matching correct module names. -module-naming-style=snake_case +# Regular expression matching correct module names +#module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ +module-rgx=([a-z_][a-z0-9_]*)$ -# Regular expression matching correct module names. Overrides module-naming- -# style. -#module-rgx= - -# Colon-delimited sets of names that determine each other's naming style when +# Colon-delimited sets of names that determine each others naming style when # the name regexes allow several styles. name-group= @@ -376,64 +178,56 @@ 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 -# Naming style matching correct variable names. -variable-naming-style=snake_case - -# Regular expression matching correct variable names. Overrides variable- -# naming-style. -#variable-rgx= - - -[SPELLING] +# Regular expression matching correct variable names +variable-rgx=(([a-z][a-zA-Z0-9_]{2,30})|(_[a-z0-9_]*)|([a-z]))$ -# Limits count of emitted suggestions for spelling mistakes. -max-spelling-suggestions=4 -# Spelling dictionary name. Available dictionaries: none. To make it work, -# install the python-enchant package. -spelling-dict= +[FORMAT] -# List of comma separated words that should not be checked. -spelling-ignore-words= +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= -# A path to a file that contains the private dictionary; one word per line. -spelling-private-dict-file= +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ -# 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=no +# 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=' ' -[MISCELLANEOUS] +# Maximum number of characters on a single line. +max-line-length=120 -# List of note tags to take in consideration, separated by a comma. -notes=FIXME, - XXX, - TODO +# Maximum number of lines in a module +max-module-lines=2000 +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement.No config file found, using default configuration -[STRING] +single-line-class-stmt=no -# This flag controls whether the implicit-str-concat-in-sequence should -# generate a warning on implicit string concatenation in sequences defined over -# several lines. -check-str-concat-over-line-jumps=no +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no [LOGGING] -# Format style used to check logging format string. `old` means using % -# formatting, `new` is for `{}` formatting,and `fstr` is for f-strings. -logging-format-style=old - # Logging modules to check that the string format arguments are in logging -# function parameter format. +# function parameter format logging-modules=logging +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME,XXX,TODO + + [SIMILARITIES] # Ignore comments when computing similarities. @@ -449,122 +243,132 @@ ignore-imports=no min-similarity-lines=4 -[FORMAT] +[SPELLING] -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= -# Regexp for a line that is allowed to be longer than the limit. -ignore-long-lines=^\s*(# )??$ +# List of comma separated words that should not be checked. +spelling-ignore-words= -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= -# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 -# tab). -indent-string=' ' +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no -# Maximum number of characters on a single line. -max-line-length=120 -# Maximum number of lines in a module. -max-module-lines=1000 +[TYPECHECK] -# List of optional constructs for which whitespace checking is disabled. `dict- -# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. -# `trailing-comma` allows a space between comma and closing bracket: (a, ). -# `empty-line` allows space-only lines. -no-space-check=trailing-comma, - dict-separator +# 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 -# Allow the body of a class to be on the same line as the declaration if body -# contains single statement. -single-line-class-stmt=no +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn not trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=no +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes +# 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=yes -[CLASSES] +# 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 -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__, - __new__, - setUp, - __post_init__ +# List of module names for which member attributes should not be checked +# (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= -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict, - _fields, - _replace, - _source, - _make +# 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=yes -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg=cls +# 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 -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg=cls +# 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 -[IMPORTS] +[VARIABLES] -# List of modules that can be imported at any level, not just the top level -# one. -allow-any-import-level= +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= -# Allow wildcard imports from modules that define __all__. -allow-wildcard-with-all=no +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes -# 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=no +# 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 -# Deprecated modules which should not be used, separated by a comma. -deprecated-modules=optparse,tkinter.tix +# A regular expression matching the name of dummy variables (i.e. expectedly +# not used). +dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled). -ext-import-graph= +# Argument names that match this expression will be ignored. Default to name +# with leading underscore +ignored-argument-names=_.*|^ignored_|^unused_ -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled). -import-graph= +# Tells whether we should check for unused import in __init__ files. +init-import=no -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled). -int-import-graph= +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,future.builtins -# 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 +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__,__new__,setUp -# Couples of modules and preferred modules, separated by a comma. -preferred-modules= +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict,_fields,_replace,_source,_make + +# 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 [DESIGN] -# Maximum number of arguments for function / method. -max-args=5 +# Maximum number of arguments for function / method +max-args=8 # Maximum number of attributes for a class (see R0902). -max-attributes=8 +max-attributes=20 -# Maximum number of boolean expressions in an if statement (see R0916). +# Maximum number of boolean expressions in a if statement max-bool-expr=5 -# Maximum number of branch for function / method body. +# Maximum number of branch for function / method body max-branches=12 -# Maximum number of locals for function / method body. -max-locals=15 +# Maximum number of locals for function / method body +max-locals=20 # Maximum number of parents for a class (see R0901). max-parents=7 @@ -572,18 +376,51 @@ max-parents=7 # Maximum number of public methods for a class (see R0904). max-public-methods=20 -# Maximum number of return / yield for function / method body. +# Maximum number of return / yield for function / method body max-returns=6 -# Maximum number of statements in function / method body. +# Maximum number of statements in function / method body max-statements=50 # Minimum number of public methods for a class (see R0903). min-public-methods=2 +[IMPORTS] + +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no + +# 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=no + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=optparse,tkinter.tix + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +import-graph= + +# Create a graph of internal dependencies in 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 + + [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to -# "BaseException, Exception". -overgeneral-exceptions=BaseException +# "Exception" +overgeneral-exceptions=builtins.Exception diff --git a/requirements-dev.txt b/requirements-dev.txt index 5942723..18cc4ff 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,7 +1,7 @@ -pylint==2.5.3 -pytest==6.2.5 -pytest-asyncio==0.14.0 -pytest-cov==2.10.0 -pytest-httpserver==0.3.5 -pytest-mock==3.2.0 -flake8==3.8.3 +pylint==2.17.4 +pytest==7.3.1 +pytest-asyncio==0.21.0 +pytest-cov==4.0.0 +pytest-httpserver==1.0.6 +pytest-mock==3.10.0 +flake8==6.0.0 diff --git a/setup.py b/setup.py index 2345e1d..e15524f 100644 --- a/setup.py +++ b/setup.py @@ -45,9 +45,10 @@ def find_version(*file_paths): "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Indexing/Search", "Programming Language :: Python", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Programming Language :: Python :: Implementation :: CPython", ], url='https://github.com/searx/searx-stats2', @@ -81,7 +82,7 @@ def find_version(*file_paths): ], zip_safe=False, - python_requires='>=3.6.*', + python_requires='>=3.8', install_requires=requirements, extras_require={ diff --git a/tests/common/test_utils.py b/tests/common/test_utils.py index 2b00557..d4dcbc4 100644 --- a/tests/common/test_utils.py +++ b/tests/common/test_utils.py @@ -35,7 +35,7 @@ def dummy_raise_exception(): @pytest.fixture -async def task_list_with_exception(event_loop): +def task_list_with_exception(event_loop): tasks = [] tasks.append(utils.create_task(event_loop, None, dummy_coroutine, 12, second=42)) tasks.append(utils.create_task(event_loop, None, dummy_raise_exception)) @@ -43,7 +43,7 @@ async def task_list_with_exception(event_loop): @pytest.fixture -async def simple_task_list(event_loop): +def simple_task_list(event_loop): tasks = [] tasks.append(utils.create_task(event_loop, None, dummy_coroutine, 12, second=42)) return tasks