summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-12-24 09:49:45 +0100
committerMarkus Heiser <markus.heiser@darmarit.de>2021-12-27 08:58:59 +0100
commit3c77412d335bc50edaf575a797e8c43a22fb5996 (patch)
tree8c96f550ba79b09f4bbec560d379dc327956a583
parent54bce130f9074c3d63009237b014c727a1443cc5 (diff)
[mod] replace pycodestyle by black
"make test.black" checks for the code style "make format.python" format the python code
-rw-r--r--Makefile7
-rwxr-xr-xmanage27
-rw-r--r--requirements-dev.txt1
3 files changed, 20 insertions, 15 deletions
diff --git a/Makefile b/Makefile
index 89e32ec9..334b3d35 100644
--- a/Makefile
+++ b/Makefile
@@ -54,8 +54,8 @@ search.checker.%: install
$(Q)./manage pyenv.cmd searx-checker -v "$(subst _, ,$(patsubst search.checker.%,%,$@))"
PHONY += test ci.test test.shell
-ci.test: test.yamllint test.pep8 test.pylint test.unit test.robot
-test: test.yamllint test.pep8 test.pylint test.unit test.robot test.shell
+ci.test: test.yamllint test.black test.pylint test.unit test.robot
+test: test.yamllint test.black test.pylint test.unit test.robot test.shell
test.shell:
$(Q)shellcheck -x -s dash \
dockerfiles/docker-entrypoint.sh
@@ -88,7 +88,8 @@ MANAGE += node.env node.clean
MANAGE += py.build py.clean
MANAGE += pyenv pyenv.install pyenv.uninstall
MANAGE += pypi.upload pypi.upload.test
-MANAGE += test.yamllint test.pylint test.pep8 test.unit test.coverage test.robot test.clean
+MANAGE += format.python
+MANAGE += test.yamllint test.pylint test.black test.unit test.coverage test.robot test.clean
MANAGE += themes.all themes.oscar themes.simple themes.simple.test pygments.less
MANAGE += static.build.commit static.build.drop static.build.restore
MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs
diff --git a/manage b/manage
index 8eb347f4..58c82fec 100755
--- a/manage
+++ b/manage
@@ -24,6 +24,8 @@ PY_SETUP_EXTRAS='[test]'
GECKODRIVER_VERSION="v0.30.0"
export NODE_MINIMUM_VERSION="16.13.0"
# SPHINXOPTS=
+BLACK_OPTIONS=("--target-version" "py37" "--line-length" "120" "--skip-string-normalization")
+BLACK_TARGETS=("--exclude" "searx/static,searx/languages.py" "searx" "searxng_extra" "tests")
pylint.FILES() {
@@ -31,8 +33,7 @@ pylint.FILES() {
#
# # lint: pylint
#
- # These py files are linted by test.pylint(), all other files are linted by
- # test.pep8()
+ # These py files are linted by test.pylint()
grep -l -r --include \*.py '^#[[:blank:]]*lint:[[:blank:]]*pylint' searx searxng_extra tests
}
@@ -89,10 +90,12 @@ pyenv.:
OK : test if virtualenv is OK
pypi.upload:
Upload python packages to PyPi (to test use pypi.upload.test)
+format.:
+ python : format Python code source using black
test.:
yamllint : lint YAML files (YAMLLINT_FILES)
pylint : lint PYLINT_FILES, searx/engines, searx & tests
- pep8 : pycodestyle (pep8) for all files except PYLINT_FILES
+ black : check black code format
unit : run unit tests
coverage : run unit tests with coverage
robot : run robot test
@@ -617,6 +620,12 @@ pypi.upload.test() {
pyenv.cmd twine upload -r testpypi "${PYDIST}"/*
}
+format.python() {
+ build_msg TEST "[format.python] black \$BLACK_TARGETS"
+ pyenv.cmd black "${BLACK_OPTIONS[@]}" "${BLACK_TARGETS[@]}"
+ dump_return $?
+}
+
test.yamllint() {
build_msg TEST "[yamllint] \$YAMLLINT_FILES"
pyenv.cmd yamllint --format parsable "${YAMLLINT_FILES[@]}"
@@ -646,15 +655,9 @@ test.pylint() {
dump_return $?
}
-test.pep8() {
- build_msg TEST 'pycodestyle (formerly pep8)'
- local _exclude=""
- printf -v _exclude '%s, ' "${PYLINT_FILES[@]}"
- pyenv.cmd pycodestyle \
- --exclude="searx/static, searx/languages.py, $_exclude " \
- --max-line-length=120 \
- --ignore "E117,E252,E402,E722,E741,W503,W504,W605" \
- searx tests
+test.black() {
+ build_msg TEST "[black] \$BLACK_TARGETS"
+ pyenv.cmd black --check "${BLACK_OPTIONS[@]}" "${BLACK_TARGETS[@]}"
dump_return $?
}
diff --git a/requirements-dev.txt b/requirements-dev.txt
index c80afc46..0fef51f2 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -1,6 +1,7 @@
mock==4.0.3
nose2[coverage_plugin]==0.10.0
cov-core==1.15.0
+black==21.12b0
pycodestyle==2.8.0
pylint==2.12.2
splinter==0.17.0