aboutsummaryrefslogtreecommitdiffstats
path: root/build/conf/python.conf
diff options
context:
space:
mode:
authoralevitskii <alevitskii@yandex-team.com>2024-09-12 09:41:59 +0300
committeralevitskii <alevitskii@yandex-team.com>2024-09-12 09:53:26 +0300
commitf3fc9bb5ecb70b4b2a340d935ea06c92307da3b1 (patch)
treea705eae6ae543a0f75fe061412fea9e91d59e842 /build/conf/python.conf
parent7bd81dc2f1ea38b950587f937d2f886cf011e60e (diff)
downloadydb-f3fc9bb5ecb70b4b2a340d935ea06c92307da3b1.tar.gz
Python linting macroses
Init 93a5052a4192d230f52b4b27c41c9c77bf8d5880
Diffstat (limited to 'build/conf/python.conf')
-rw-r--r--build/conf/python.conf54
1 files changed, 46 insertions, 8 deletions
diff --git a/build/conf/python.conf b/build/conf/python.conf
index 29c1f712fa..30b1fe2d04 100644
--- a/build/conf/python.conf
+++ b/build/conf/python.conf
@@ -179,6 +179,24 @@ macro NO_YMAKE_PYTHON3() {
SET(YMAKE_PYTHON3_PEERDIR)
}
+FLAKE_EXTRA_PARAMS=
+FLAKE_MIGRATIONS_CONFIG=
+FLAKE_CONFIG_FILES=build/config/tests/flake8/flake8.conf $FLAKE_MIGRATIONS_CONFIG
+when ($DISABLE_FLAKE8_MIGRATIONS == "yes") {
+ FLAKE_EXTRA_PARAMS="DISABLE_FLAKE8_MIGRATIONS=yes"
+}
+otherwise {
+ FLAKE_MIGRATIONS_CONFIG=build/rules/flake8/migrations.yaml
+}
+
+when ($FLAKE8_FILE_PROCESSING_TIME == "") {
+ FLAKE8_FILE_PROCESSING_TIME=1.5
+}
+
+when ($BLACK_FILE_PROCESSING_TIME == "") {
+ BLACK_FILE_PROCESSING_TIME=1.5
+}
+
# tag:python-specific tag:deprecated tag:internal
module _PY2_PROGRAM: _BASE_PY_PROGRAM {
SET(MODULE_LANG PY2)
@@ -186,6 +204,7 @@ module _PY2_PROGRAM: _BASE_PY_PROGRAM {
# Looks like we cannot avoid copy-paste util ymake supports multiple inheritance
# We need to attach coverage.extractor to every py_program target, except pytest targets
ADD_YTEST($MODULE_PREFIX$REALPRJNAME coverage.extractor)
+ STYLE_PY2_FLAKE8()
}
# tag:python-specific tag:deprecated
@@ -247,25 +266,39 @@ multimodule PY3_PROGRAM {
}
# tag:python-specific tag:test
-STYLE_PYTHON_VALUE=no
-STYLE_PYTHON_PYPROJECT_VALUE=
### @usage: STYLE_PYTHON([pyproject])
###
### Check python3 sources for style issues using black.
+BLACK_CONFIG_FILES=
macro STYLE_PYTHON(pyproject...) {
- SET(STYLE_PYTHON_VALUE yes)
- SET(STYLE_PYTHON_PYPROJECT_VALUE ${pyproject})
+ BLACK_CONFIG_FILES=$pyproject build/config/tests/py_style/config.toml
+ _ADD_PY_LINTER_CHECK(NAME black LINTER tools/black_linter/black_linter FILE_PROCESSING_TIME $BLACK_FILE_PROCESSING_TIME CONFIGS $BLACK_CONFIG_FILES)
}
# tag:python-specific tag:test
-STYLE_RUFF_VALUE=no
-RUFF_CONFIG_PATHS_FILE=${ARCADIA_ROOT}/build/config/tests/ruff/ruff_config_paths.json
### @usage: STYLE_RUFF()
###
### Check python3 sources for style issues using ruff.
+RUFF_CONFIG_PATHS_FILE=build/config/tests/ruff/ruff_config_paths.json
macro STYLE_RUFF() {
- SET(STYLE_RUFF_VALUE yes)
- SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${RUFF_CONFIG_PATHS_FILE})
+ SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${ARCADIA_ROOT}/${RUFF_CONFIG_PATHS_FILE})
+ _ADD_PY_LINTER_CHECK(NAME ruff LINTER tools/ruff_linter/bin/ruff_linter GLOBAL_RESOURCES build/external_resources/ruff CONFIGS $RUFF_CONFIG_PATHS_FILE)
+}
+
+# tag:python-specific tag:test
+### @usage: STYLE_FLAKE8()
+###
+### Check python3 sources for style issues using flake8.
+macro STYLE_FLAKE8() {
+ _ADD_PY_LINTER_CHECK(NAME flake8 LINTER tools/flake8_linter/flake8_linter GLOBAL_RESOURCES build/external_resources/flake8_py3 FILE_PROCESSING_TIME $FLAKE8_FILE_PROCESSING_TIME CONFIGS $FLAKE_CONFIG_FILES EXTRA_PARAMS $FLAKE_EXTRA_PARAMS)
+}
+
+# tag:python-specific tag:test
+### @usage: STYLE_PY2_FLAKE8()
+###
+### Check python3 sources for style issues using flake8.
+macro STYLE_PY2_FLAKE8() {
+ _ADD_PY_LINTER_CHECK(NAME py2_flake8 LINTER tools/flake8_linter/flake8_linter GLOBAL_RESOURCES build/external_resources/flake8_py2 FILE_PROCESSING_TIME $FLAKE8_FILE_PROCESSING_TIME CONFIGS $FLAKE_CONFIG_FILES EXTRA_PARAMS $FLAKE_EXTRA_PARAMS)
}
# tag:python-specific tag:test
@@ -302,6 +335,7 @@ module PYTEST_BIN: _BASE_PYTEST {
.DEFAULT_NAME_GENERATOR=FullPath
.ARGS_PARSER=Base
SETUP_PYTEST_BIN()
+ STYLE_PY2_FLAKE8()
}
# tag:python-specific tag:test
@@ -344,6 +378,7 @@ module PY3TEST_BIN: _BASE_PY3_PROGRAM {
.ARGS_PARSER=Base
SET(MODULE_LANG PY3)
SETUP_PYTEST_BIN()
+ STYLE_FLAKE8()
PEERDIR+=library/python/pytest
}
@@ -565,6 +600,7 @@ module PY2_LIBRARY: _LIBRARY {
}
SET(MODULE_LANG PY2)
+ STYLE_PY2_FLAKE8()
ADD_CLANG_TIDY()
when ($TIDY_ENABLED == "yes") {
_MAKEFILE_INCLUDE_LIKE_DEPS+=${ARCADIA_ROOT}/build/yandex_specific/config/clang_tidy/tidy_project_map.json
@@ -611,6 +647,7 @@ module PY3_LIBRARY: _LIBRARY {
}
SET(MODULE_LANG PY3)
+ STYLE_FLAKE8()
ADD_CLANG_TIDY()
when ($TIDY_ENABLED == "yes") {
_MAKEFILE_INCLUDE_LIKE_DEPS+=${ARCADIA_ROOT}/build/yandex_specific/config/clang_tidy/tidy_project_map.json
@@ -749,6 +786,7 @@ module _BASE_PY3_PROGRAM: _BASE_PROGRAM {
module PY3_PROGRAM_BIN: _BASE_PY3_PROGRAM {
# Look's like we cannot avoid copy-paste util ymake supports multiple inheritance
# We need to attach coverage.extractor to every py_program target, except pytest targets
+ STYLE_FLAKE8()
ADD_YTEST($MODULE_PREFIX$REALPRJNAME coverage.extractor)
}