Browse Source

[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 <markus.heiser@darmarit.de>
Markus Heiser 2 weeks ago
parent
commit
cd062d7349
4 changed files with 7 additions and 45 deletions
  1. 3 3
      Makefile
  2. 1 1
      package.json
  3. 0 10
      pyrightconfig-ci.json
  4. 3 31
      utils/lib_sxng_test.sh

+ 3 - 3
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

+ 1 - 1
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"

+ 0 - 10
pyrightconfig-ci.json

@@ -1,10 +0,0 @@
-{
-    "venvPath": "local",
-    "venv": "py3",
-    "include": [
-        "searx",
-        "searxng_extra",
-        "tests"
-    ],
-    "typeCheckingMode": "off"
-}

+ 3 - 31
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[@]}"