From cd062d7349b857d25e54db91fd5821b1a4a2d004 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 16 Jul 2025 17:47:57 +0200 Subject: [PATCH] [fix] don't install pyright twice and do some clean up Pyright has been installed twice so far, once via `package.json` and once in the test script via `npx --no-install`. Separating the type checks in the CI and on the developer desktop is also not necessary. Signed-off-by: Markus Heiser --- Makefile | 6 +++--- package.json | 2 +- pyrightconfig-ci.json | 10 ---------- utils/lib_sxng_test.sh | 34 +++------------------------------- 4 files changed, 7 insertions(+), 45 deletions(-) delete mode 100644 pyrightconfig-ci.json diff --git a/Makefile b/Makefile index 860b91704..914b27510 100644 --- a/Makefile +++ b/Makefile @@ -47,8 +47,8 @@ search.checker.%: install $(Q)./manage pyenv.cmd searxng-checker -v "$(subst _, ,$(patsubst search.checker.%,%,$@))" PHONY += test ci.test test.shell -ci.test: test.yamllint test.black test.types.ci test.pylint test.unit test.robot test.rst test.shell test.shfmt test.pybabel -test: test.yamllint test.black test.types.dev test.pylint test.unit test.robot test.rst test.shell test.shfmt +test: test.yamllint test.black test.pyright test.pylint test.unit test.robot test.rst test.shell test.shfmt +ci.test: test test.pybabel test.shell: $(Q)shellcheck -x -s dash \ container/entrypoint.sh @@ -80,7 +80,7 @@ MANAGE += node.env node.env.dev node.clean MANAGE += py.build py.clean MANAGE += pyenv pyenv.install pyenv.uninstall MANAGE += format.python format.shell -MANAGE += test.yamllint test.pylint test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean test.themes test.types.dev test.types.ci test.shfmt +MANAGE += test.yamllint test.pylint test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean test.themes test.pyright test.shfmt MANAGE += themes.all themes.simple themes.fix themes.lint themes.test MANAGE += static.build.commit static.build.drop static.build.restore MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs diff --git a/package.json b/package.json index a85c5f910..c26fa2742 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "searxng.org/devtools", "dependencies": { - "pyright": "^1.1.391" + "pyright": "^1.1.403" }, "scripts": { "clean": "rm -Rf node_modules package-lock.json" diff --git a/pyrightconfig-ci.json b/pyrightconfig-ci.json deleted file mode 100644 index 9082b0790..000000000 --- a/pyrightconfig-ci.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "venvPath": "local", - "venv": "py3", - "include": [ - "searx", - "searxng_extra", - "tests" - ], - "typeCheckingMode": "off" -} diff --git a/utils/lib_sxng_test.sh b/utils/lib_sxng_test.sh index bd3e19651..a15358d53 100755 --- a/utils/lib_sxng_test.sh +++ b/utils/lib_sxng_test.sh @@ -6,8 +6,8 @@ test.help(){ test.: yamllint : lint YAML files (YAMLLINT_FILES) pylint : lint ./searx, ./searxng_extra and ./tests - black : check black code format - shfmt : check shfmt code format + pyright : check Python types + black : check Python code format shfmt : check Shell script code format unit : run unit tests coverage : run unit tests with coverage @@ -49,15 +49,12 @@ test.pylint() { dump_return $? } -test.types.dev() { +test.pyright() { # use this pyright test for local tests in development / it suppress # warnings related to intentional monkey patching but gives good hints where # we need to work on SearXNG's typification. - # - # --> pyrightconfig.json build_msg TEST "[pyright/types] static type check of python sources" - build_msg TEST " --> typeCheckingMode: on" node.env.dev build_msg TEST "[pyright/types] suppress warnings related to intentional monkey patching" @@ -75,31 +72,6 @@ test.types.dev() { return 0 } -test.types.ci() { - # use this pyright test for CI / disables typeCheckingMode, needed as long - # we do not have fixed all typification issues. - # - # --> pyrightconfig-ci.json - - build_msg TEST "[pyright] static type check of python sources" - build_msg TEST " --> typeCheckingMode: off !!!" - node.env.dev - - build_msg TEST "[pyright] suppress warnings related to intentional monkey patching" - # We run Pyright in the virtual environment because pyright executes - # "python" to determine the Python version. - pyenv.cmd npx --no-install pyright -p pyrightconfig-ci.json \ - | grep -E '\.py:[0-9]+:[0-9]+'\ - | grep -v '/engines/.*.py.* - warning: "logger" is not defined'\ - | grep -v '/plugins/.*.py.* - error: "logger" is not defined'\ - | grep -v '/engines/.*.py.* - warning: "supported_languages" is not defined' \ - | grep -v '/engines/.*.py.* - warning: "language_aliases" is not defined' \ - | grep -v '/engines/.*.py.* - warning: "categories" is not defined' - # ignore exit value from pyright - # dump_return ${PIPESTATUS[0]} - return 0 -} - test.black() { build_msg TEST "[black] $BLACK_TARGETS" pyenv.cmd black --check --diff "${BLACK_OPTIONS[@]}" "${BLACK_TARGETS[@]}"